diff --git a/.editorconfig b/.editorconfig index 4c55167..278e8c7 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,3 +14,6 @@ indent_style = tab [*.json] indent_style = tab + +[*.md] +indent_style = tab diff --git a/README.md b/README.md index 4a2175c..b0cbd35 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,12 @@ npm install rtp.js const view = utils.stringToDataView('foo'); ``` +- CommonJS is also supported: + + ```ts + const { packets, utils } = require('rtp.js'); + ``` + ## Authors - IƱaki Baz Castillo [[website](https://inakibaz.me)|[github](https://github.com/ibc/)] diff --git a/babel.config.cjs b/babel.config.cjs new file mode 100644 index 0000000..777085f --- /dev/null +++ b/babel.config.cjs @@ -0,0 +1,10 @@ +/** + * This is needed for Jest tests only. + */ + +module.exports = { + presets: [ + ['@babel/preset-env', { targets: { node: 'current' } }], + '@babel/preset-typescript', + ], +}; diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js index 38f85ce..00b8ec7 100644 --- a/docs/assets/hierarchy.js +++ b/docs/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJydl99vmzAQx/8XP187/8bmcW03aZqqKJWmSVUeKHgKCgFmyLStyv8+kaipCdE454UH9P36c3f4zuaV+KbpO5I+yxUQ735ULu/Lpu5I+krk8KizrSMpeXK+zKryb/ZSOQJkU9YFSRk3QHa+IinJq6zrXPehzfKN67vbUH+77rcVgaOGpKTvipthgZvjCyD5uqwK72qSPisKyhqwhgKnjK72QBQN4lgc1sdEcFTGsBmTIKQFKczAZSwswLJv8eyTeAa/ByKkHVHyKEyO45yV2IA2CgxVYKwGRrUAZjkFQenwMHJIXwoTBHbXbNtmVxf44MaO+UIoGvKWLnflL+eXrm18H1GSCz4E256z26ELjotgsYFlnqiNGnVXXcTnOnXNcw0NuR//ODzuJEZQrA6zK1wXkdVJPc+xhp5x7ta7eoPFHMTzlKFBAswn54qXLN/gUxo74kaSNsC4pcBEYoApaoEpmwBLmARmOD9OKh3u38eo4B6xgQ0gbkcF90v3M+LLvssRKJGEOT3kNR50EiMwiobzd1GVESfMmxiDsUlYuBjMUwQmGZ9ZbRfBeVcjQIbzAPTZ1c6XeXxnXDQi8JaH+/C7xxPftPOQ4f4R7sDf/TBvC/yhMHbEtD2niQHOtAbOlQQuJAcuqQEukwS4FhS44Ry4ZXZ1CHXULF995eLDnboQNWI6nPT3V4GnLgSYq3CnL3wfz52YEFghw32/vAY7MSGwcnQ5uq+8v6LMExcGnIzmVhePPfcgoFqEjfdtGw899yCg44n2kNdXNPy5CYG1zE4HaTz6ohHx90HppRn3pez7t5tlxNXtP3ZMKEZOKxF9lOBw+/0/fO3sVQ==" \ No newline at end of file +window.hierarchyData = "eJydl02PmzAQhv+Lz7Nbf4LNsbvbSlW1ihKpqrTKgQVXQSFADanarvLfKxIlayAq41w4oPf1MzN4xuaNuLruWpK8yDUQZ3+UNuuKumpJ8kZk/6jSnSUJWVlXpGXxN30tLQGyLaqcJIxrIHtXkoRkZdq2tv3QpNnWdu29r7/fdLuSwElDEtK1+V2/wN3pBZBsU5S5sxVJXhQFZSSYOAZOGV0fgCjqxbE4ro+J4KQMYTMmQUgDUuiey5hfgGXX4NkX8Qz+AERIM6BkQZgMxxmVWEOkFWiqQJsIGI0EMMMpCEr7h5Z9+lJoL7CHetfU+yrHBzd0zBdCUZ+3tJktflm3tE3tuoCSXPEh2EaO2E3fBadFsFjPMk+MtBp0V5WH5zp1zXM19bkf/1g87iJGUEzkZ5fbNiCri3qeY+J4xHnY7KstFnMUz1P6BvEwn6zNX9Nsi09p6AgbSZEGxg0FJmINTFEDTJkYWMwkMM35aVJFfu88BwX3jA2sB3HjD+OVW9qfAV/2XY5AidjP6Smr8KCLGIFR1J+/i7IIOGHOYgzGDHZqCGYVgImHZ1bTBnDe1QiQ5twDfbaVdUUW3hlXjQi84f4+/O7wxLN2HtLfP/wd+Lvr522OPxSGjpC25zTWwFkUAedKAheSA5dUA5f9xSgSFLjmHLhhZn0MddAsX11pw8OduhA1YpE/6R9vAk9dCDBX/k5fuC6cOzEhsEL6+355C3ZiQmDl4HL0WDp3Q5knLgx4eMK24dixBwGNhN9433bh0LEHAR1OtKesuqHhxyYE1jAzHaTh6KtGxN8Hpddm3Jei6843y4Cr23/smFC0nFYi+CjB4Q6Hf6ct7Fk=" \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js index 4f59cd9..2363f64 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -1,9 +1,9 @@ "use strict"; -window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse"}; +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; "use strict";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,"default",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,c],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){ce.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!ze(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function H(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await H(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ye(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Je(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),re(e)}}function ye(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ne(t.substring(s,o)),`${ne(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&","<":"<",">":">","'":"'",'"':"""};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var A="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,Le=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Le?"is-mobile":"not-mobile");Le&&"ontouchstart"in document.documentElement&&(Xe=!0,A="touchstart",Ee="touchmove",B="touchend");document.addEventListener(A,t=>{ie=!0,D=!1;let e=A=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=A=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(A,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var Z=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await H(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',ke(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span"));r.innerHTML='',r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await H(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(Oe(e,i,n))}function Oe(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=Oe(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var _e=document.getElementById("tsd-theme");_e&&Se(_e);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})(); +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){ce.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!ze(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function A(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await A(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ye(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Je(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),re(e)}}function ye(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ne(t.substring(s,o)),`${ne(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&","<":"<",">":">","'":"'",'"':"""};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var H="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,be=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(be?"is-mobile":"not-mobile");be&&"ontouchstart"in document.documentElement&&(Xe=!0,H="touchstart",Ee="touchmove",B="touchend");document.addEventListener(H,t=>{ie=!0,D=!1;let e=H=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=H=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(H,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var Z=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await A(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',ke(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await A(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(_e(e,i,n))}function _e(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=_e(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var Oe=document.getElementById("tsd-theme");Oe&&Se(Oe);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/assets/search.js b/docs/assets/search.js index 11a0598..9a341ba 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "eJzsvVuXHDdyLvpfOK+5y4k7MG8aiWPLRyPJpDx7nzXLi6vUVaLa0+xudxXlme11/vtZEQFkVUYBmchLyaZYTwQbWUBkJC4RXwQ+/Nerl6f/PLz6/V/+69Vf7x93r37vlfe29c2rx+2H/avfv3rz+ouv/vT6VfPq48vDq9+/2j3dffywfzwe/oEqNj8fPzy8al7dPWwPh/3h1e9fvfr/mtSW7Fp53t79dX88dM18eNp9fNgf/iH+vbKVj8f7h8s28K+DLQh5ep+3+5f77cP9/93++LDvmoq/6sQ5fyjTcvPqefuyfzyevdiZuK0+9bb7+OG5vpffxccHu+r9rNTv+/3xz/f7/5zQ9fv98Rf6xSq9/+Hvx/03+8f3x5+nyfDj34/7h/S75ZI87ve7Q/fg8f7pcYI4+OMD+/FymVKLE4bf785/s1yCu4enxym9p+dn9hycMDI7Ab86nx7Hvz8XpIDHpk5D0Urd9fnj5Wis6O13797BUzOHJDZDLRSWou/xV8XvQNXXW37O2q9beKK85Un//Xa3u398X9Xj+/3xuXt8Sb/P290PTxrWm0NVx8/b3fFJ/xifX/jGg4sse92L5fV42P2v+8P/un/8ef9yf9zvZklQsdAyOQrjebk0Exbbc5FGltnlco0vuOfi5Jfa5VIML7rnElwutzN77y+89MDAknt6YOqiY09L7f3hzfHUwU8fH+/gi546wfrJi/nZqvnm+DyycHZPTO3GiJO27p4eD8eXj3fHp5fKjn7X/8nwynJ6izlLN+u4avUe7bFuMWFdTzPZRmUYn6qs/3rDaLTv4QnKv3WVSVSj8++3f3942u5+ADuhXunP9Ksj/Wqx1udIcVhZivf749v9f3zcP97tv/344cd99bx7vz8e4g8f0w+Xa2SeLIf1ZXm/P/5w/2F/OG7rV4T3++Px7DfLtTFZgsOqEsDYOLzcTRkR9PgK42BCv4e1+n2/P355eLkrW7SXL3wXn1/+xpN6PqzW8/v98U/bl79Omvcf0g+Wv/W0vg/r9f3z9vDd4x623td/O+4fD2Au1Yrx8/bw9Ige6v78t8sl+uE/n9ClmiXS8T+f0L9aU6b9IzjVsxVFP7+Crqjh+eqi319DY+/3x+nivN8fryXDHBFWmdmTJTisKsFu/7A/G7LVRj3+bEU57h7225fpIwJ/dq0x8aft8/MQYjQwND50P11xhEyU53ANeWAfvN/NmTYf7nfrzpw5chzWluP9/vhmnj5e1tbHHDkOa8sB+tg/b+9f9ru5eok/X18/C+Q6XEuu9/vjFz8e3u4fd+DEzNHX9sfDYf+4A39mXX0tketwLbnA33zZPh6en16O//t+t3+7/w/ygeeo7pha+s/73f6w/w9yitfV4krSHn4FaaMf+8XH3f3TN/tf9g9zdAou5hZaeIAW1tXlQukOV5QOwy27/dN3L/f7xyMGCuZo7xdo4+nUxrr6Wyzh4aoSprn94f4ADX73009z7OM0r2MrT9jKFeb0MikPV5byhN1Ox23XxGyn47XLe385/u31493Trhosfjn+bZ9+sLzvr/YT+97t1+m7Isid++aXce6aiN6oNDWhbyZOKfq9ijxjAfHcYjwjJj4qx4RANBNphVh0Xrp+KLZ7ZiAa23tmaiSzFy7tVs5edAfiE73eeo9NjtDarsc/ff3VlE5+9+G+akHqv0W25zc/fP/u7Q9vXn/xp3cTZXg5Pr87HF/22w/vVpXmzevvv/j6zeuvFoiVnKLV5fviD2/fvX397Vfvfvj6LMGzRqztj4d34Hi8A89jJWl+ePPFt2+//+7ND+/+99dfvX739vW/vPv2X//0h9dvJknWGfDvwIJ/d9j/x7v6MFyFlG/fvvny3Rf/+tXX37375vWfX38zSTiwjN+hafwObeOVZPrz11+9/u7dd2++fv3tD1/88PV3304SCo3Nd2fW5lrf87s//vHt6x+mfT2y0ZZIkFlpi+DexXrLn1yQBvNy1tq/vtz/8NRbey/TYrLPT8/9Y6mWI84cy4HMP70o8fKXp4ePH/YzOoy5l93vhwdEqaXL9Mu+cPd3i2Sjn68kGv94455kX+Li84s+4N32w/5lO6vLqKauhWE9ldsa/og/PdyXLKgq8eLvryPcy9Oxb37OEPCsjdWEPFuoYAv/0+GHpzMocmCZyjy9MFfwbixZ8G5htuDdeLrg3bkPcJVca9ZHbcbeXY07Cg+M5G3dXbqk8N/KvK0KKb58+vhYrWHMVok/WEUDYw555vXneuRj8tS55Hcr+uQVGhpxyi/UM9Mrr5CkKsH0Qp4FGevjUk0CC+7WRwvG5KtJie2LNT+DfVyasSTZviTzMtmzUuSW9EE84/yhBWjG1/9c38Pv7v99wpI24GWWnd7LPg81vu14n2+m9PmyTp9vv3r9dsqb7iqO7NT0+4f/t4x3XHb749+nbJIDeMv330/odfs8xUAYRKH++Icpn/b4/NOPq/T8/dtJHT8fVur3/0wZyX9bMJIvsYb04CCse/7QEtP2y6cPz08fH3cj5m3/sWsficn0NulcDHupObZ2ToQqe7uu7zorJifEtLMyddJMsF5yIs044lwn17jVkhOn/jRPnRTD1kp2rFad66keKd/HCTVxmDx3P1vnW8yS47C2HNvdjLXqd9vd7jn9aqWvMugPFT7JLJ9oQKL+1tF/cGD7uHxwETqyv9vf/7J/ebOHmMkYTpJ5+OonLEt9TjtsmXvNWTBOUZw6QGeCHJXOclGgiQczJ0g2xWEuijdj45kiY4XTXBRtwpHSCRKNOM7lcV530HTayBo+0zY0puqOt036UnOlqT5sN0039NgAejeknpfux6tqaL5Mh+vItN3t6LEZIm13u5f021W/XA0UPvTxCqB4FWQ1TdIRuHxIyEvg/AryjULqw2qcCa5PkLEKZi8KuQhwn6bJYeh9SI3zQPgx6RhikXl8CLsoPL7UBH2G/b9iPTl77tcwPHl3k23O8/eaa25eCFFtaVb0Xm9kXogx3b6skKfObLuQZZrFViHHuLF2OTaq7bS67zJqFOW+SLU9VPUtZsgwxSar08MfX7aYFPDN02Ha4gD6+Cn++IF+vJZe5st0uI5McKzj6bh9mKWkI/xyZQ3NlOZwBWne74//dP/+5/3h2B0Nm6yin6mB7kTYippaJtvherK93x//+f54nKGtf08/W0tHc+Q4rC3H+/3xm+3h+PZNBRVOQTEP28Px8DKBFqdaQ4skO1xNsvf741f7h+3f394/3u1JxslK20EDB2iAhFxRa8tkO1xPthrHIaer2T5DhUwTYb8L8dZIlhmQ9NKxOXtyxKdhTy5xZyArshJPv3z02k5NocdJfk3mBee4NiVRKhmwa2WoZaLOCzOVj7pWqkms1HnRZnFT18pXw1CdF2sKT3WtNGNs1YUxXclZPWEkDbpDA2OoyiOa8nXmSVLrm03SybfH57f7u6fHXRmHG9DM4/H50P16Rf0skOpwJalIV8lznKmsn04/X1dbs+U6XEsuiMQcn8ct2gGFvRyf6y3aSRpbJNnhapJ1MZDh+MKAyuiRuuT8SRpbItfhWnK93x+/uzsuUNcT/PoK2log1eFKUlVERoemYmUMctosnCnPhJhovTzjEdGSOPXx0BkrwWA0dHQhmBULnSTl7Kk3Lw46UYPDUdBB9c2LgdbLVxMBLQm4JP45SYMjdxAV1TcLxxiRjN9Cwx8evIsm9/ASmOAPf9+PoAPdE9cGBfodTcICTm8xBwJgHVd5/qM91jn8rOtpfv6oDOPuM+u/3mse7XvYWebfuspHrtH520HK8Et1H6oowys0Pa3nw2o9b3e7QSecdbzd7ap87xpdv9kD6fcEZb+kHyzX9rS+D+v1XWfQXL77AjumRqZh8+VSnHlWS512ho2VnGrm2Sij0tSYJkycJRZJjXYGDZFL1cyyP0blmAD7MpFWiJ3kpesbRd0zA7ZQ75lFkZLd/jAWIekeuXpkpN/TtIjI6UVmRUJY13URkNE+KyMfrPOJEY9RKaZEOpgocyIco/JURDaYGBMiGqO9j0Qy+Bisi2DUjIQvf/74+NcBP/FyFNylXyzX+NTeDyv2vt3tsPfqzre73V38wQp6r8FgLnW/BHupGg3DmEtmMMzDWuo0NIKx5NQzE1sZlacKU2ECLcJSajQ0jKFcqmcedpKXhGEm3UNDWEnvoaUGwvjkxSd+DfPg1NFk64DeYq5xcNZxtW0w2GO9aXDW9XTLYFCGuo34rP9p+/Bg3+Pb8Pm3rt6Fx3Q+HLS/0HZdrH5cz5P6rc4RqHjfr4/7D8PraP+F7+Pzy994Us+H1Xre7nbQc23HsI3R48t1PbpJ9FU9e48YlGOisX8m0gr+bV66yw0MnxnZv7pnpu4r/c0LBsMARdX5I5P3yRPdzZffflGkb77o4nd3+KuaIddJn+11Uqcr9fn6T198XWJcvux0/2F7P06xPN7r9//03bf1r/r8c+12MdzrN999Wd3nw1Pdgj3c4w/ffVev3OPT0xq6/fa7HyaMoqfjGpr9/s3Xf67/nC/3v8zu88yW/eN+v/txe/fXEcCr/9jURaHerMz0U2dbsvcob0h/2h8O2/f7Qdc3JwXcYkc/rSInrZaHQriDplBBnAP+ssoqqpPmMFuawxWkwW+1u9/OUc0H+OG6mpkny2F9WerQm4JiFiA41dINozgFweYhORM0NozmFNU1D9Gpk6sG1ckJtgTZqdbYoOFeUNcs671aogpooCDXApreOukmOBg5EVfwMmrXsTFwI7+IzaXtrZNqGPbISTSPvrcozRnpw/E5PZUzFC7uCsk8vMBj+vaLL/+f6X397nF7Nx4WKLxZVo63b969ef0vMyQ5vLx72f/HqrK8/nLg2piiIPu7qutihqU4DYvvD/WjIvvsgkHx/TdfT+7pd88P96Pvn3+p/ICYI8NhXRnefP92hhAvz4dVpfiiSB08IMS2gkB4TAYOGfUXswHc6PLBJbGPb8d9xW/7i/UVox/f8m1hQvjj29FtadBR5V1XOanjfdaZObzzaSGQcSnGzQQuQX0QZLz3YXPg4ptXhUGqND+MzmeUXgfP1+h7Yt/VoYHxvsdiA7zr2uBAlcZrwJiM3ktATI0RWCVXBQySEasAgawjVR04kxkoV5WqCqTJfsEcKLKapqbLVARqVtNTBWiTUdQCwKZKqmGwJiPQPKCmUkPDIE1WPfMAmnF5asAZLtASYKZKQ4OgTEY9swCZcUkmwB1cqBWgjoJ8ffP49NCAadx/aKq1enZf3PP25bCH1npb6eW1cb3nFvR397LfHms67D+4KOnp5c3+P8bSok/PXD3xiXU1LfXp7F1mJT/xzuvSn8Z7rUyA4t1PTIEal6MiCYrLMCENarz/kUSoi29flwpVpf8akzT3AZbYpHWSVZh/OcEW2H9VI2WWXMvs0tovOWYE5r/jXCuwTlszpFpkm9bpqiYfPKOsBdZpnVwjGeEZkWamhFdqaSQnPKuimUnh4xJVZYVzkRalhVdpaTjlL6OieUl/47JMSfvjYq2R+FeQkKX+nZ4aSv7rP7XEkHt99zhixnVPXNuI63c0yYQ7vcUcA451XGW+jfZYZ7yxrqeZbqMyjBturP96s22072GjjX/rKpOtRud4m/huvzvxFX/cP97tR0iLLz/DPrZzoi3Gdiq5iyu+zDqSHq4uKej07tji1jtNg3fH9q771Qr6mi7FYWUpSBdili7EyrqYKsVhZSlQF49f7uco4/Fuv642pstxWFsOIE58enx9d5yukMenx/3dcU2NzJLksLokwEX+dEi3Ok5XDPDrx9o1tTNfpsN1ZAL+8Y/PD/d3aFpO19Pu9OM19TRfpsN1ZKoEZC4VtASOqZGqAvS4FGoB5FHz9abLtAyGqft6Y3BH7tvNBTtqtDRZokXwS42OKsCXSyUtgF5qZBoGXi7FmQe71GlnGHTJqWYe5DIqTQ3gwsRZArfUaGcQbLlUzSyoZVSOCUALE2kFmCUvXR9k6Z4ZgFh6zywBWL5/uB8BWLonrg2w9DuaBLCc3mIOwMI6rgJYRnusA1hY19MAllEZxgEW1n89wDLa9zDAwr91FcBSo/MaA+xS6UsMsBqpKoydS6EWGDsVI2OGTMsMsLqvN2bu5L7dXHOnRkuTJVpkgNXoqMIAu1TSAgOsRqZhA+xSnHkGWJ12hg2wnGrmGWCj0tQYYEycJQZYjXYGDbBL1cwywEblmGCAMZFWMMDy0vUNsO6ZAQOs98yiVKVRA+xtTwnXTFOab4C9HfvowylKMwyw0R4r05OWGGCjMlSkJs01wEb7HklLmmOA1eh8hDXoQt2VrEEVW/Wknuv5isZ6HuUr6ndczVe0krF7qfFFyV/rGLuXQi1JsFrH2L0cINeUqS7la0Vjt0ZLkyValuy1jrF7qaQFxm6NTCNpXisZu3XaGUnxWs3YHZWmKr1rPWO3RjvDqV3rGLujckxJ61rd2M1Lx1K6Kozd3jNLjN03z4cxa/f0yLXNXdbTJHv37EXmGLy86yqLd7zPOpOXdz7N5h2XYtzo5RLUW73jvQ+bvRffvMrurdL899u/Pzxtd4N7VUb1z/SzKp6uGt3PkuOwthwwEu+Pb48vQ9tTbiDeHw/pRyvoYroMh3VlqDTSM5pYYqVXyVVhEmfEWmATV32xGVIts9Qrv+GYYZz9gnMt4ypNTZdpkbVeuQaOmuvZJXC2vV4l1bDBnhFonsVeqaFhkz2rnnk2+7g8NUY7F2iJ1V6loUGzPaOeWXb7uCQTDHcu1AqWe0G+vul+emjAdu8/tMR4/8f94/7l/q6ShDX79LVN+nKnk6z7/JvOMfQHBKqy+SdJUmf+D4g0zROYJNu4UzAgV71/MEmmYVdhaCxVeQ2Tv93T7u9zvxr9dNXvNVuewzXkqTSkh9W0xKaeKm2FITss7AKbduqXXibrMvt7+igYM3vHxsBcC3iqVhdJushWn6rTCrN9WKkLLPipsg4b88NizrPrp2tz2MQfU+U8a3+SlDWG/4CYS3yAqdocdAeGVTnLM5gk3wQnYUDUFfyFcan7rkP2+QEvovj8Eofi/7yM+BDpgWu7Db1+JnkK3SvMcQ763Vb5A2P91bkA/Y6nWf1jEkyYEn0xZtxUOibLuNPRF6Hezxjredi1YOOtypuo+PKDtsbFN6+65WFcw1N6rb0XreJd3+yfn16O5d3r4nVfuh8sfuNpfR/W63u721HflV1vd7uX9PxijVcYiRdKX2AXVkg0bApeCDPP+qvSzLDBl1HLPBtvTJYas64vzBJLrkIzg8bbhVpm2WtZKfrGTnpkwL45f2SJSZNYM0amaf+xqR1OoI657KeSP6b/HmPr8PBx0IwQ3YJcFW+ulmb4gGFejnmnDGslqiHZycu14B6YOummHITMiLjGacgqOStogjLizb8Hpk6qEQKhjETz7oEpSlNadAZu+7h8cPJad3a34ptvSrcOFvr53cPLw9TJXr7c4qvp/e/W7P/7Nz9M7P65whCr7f3N5N5fVuz9q2/evJmq+4eXCoqNyv7fvp3Y+2Hc+K7t+89/mtj3L+PJ/rV9l+8XKnVec7fQYO8Xp9N7Dw8dUb94cIlh9c3Lw77SuLp89Nr4UaHHSUhS5gXnWHwlUaqsvnoZ6iybkjDTEKd6qcYthZJE9chPvTTDFkJxzFShQZO+1A8/3z8+DjmoA9/pePrtel9pvkSHq0g0hp0N6KcKz5qkm1mS1CJr02b4/v3941u8Im/6/IbfHiqu15ukm9kSHa4iEZAMPu5mamj/uFtdPzOlOVxBGsDnfv74+NcyEjWgm7v0yxV1M1OawxWk2e52KM1kYba73V384YrfqQLDGfhWBRynxredJOUgtjMg3yx8p16yCShKScgVkJQRefsm/OXDA2Z8/uElpvxX9ab85aPXNuULPU4y5TMvOMeUL4lSZcrXy1BnypeEmWbK10s1bsqXJKo35eulGTbli2OmypSf9KVGDeeB71RtOE/5SvMlmmLKT9LRoAE9oJ8qA3qSbmZJUmvKT5vhY4bz0PyuNZwn6Wa2RFNM+Uk6GjGeBzRUaTxP0s9MaepN+Um6GTGeB3RTaTxP0s1MaepN+XppRk35kjDVpvyk71Rhyg98qwWm/CQpB035AflmmfL1kk0w5UtCrmDKj8jbN+UvHx4w5fMPLzHlv385MlFLCrt48tqGfL7DaayyF283x4wvCFLHMlsrQSXbbF6UiayztTJVsM/m5ZnAQlsrywgbbWGs1LHSTvhGo8Zy+QtV28oTvs9seabY7lP0M0y0WtRNlb08RS9z5Ki12yfN6TEjeWBG19rIU/QyV54pNvsU/YwYyWXtVNrIU3QzT5Z6e32KXt7s7/b3z8cf7j8Mcc8WtfNCPz/Gn6+noyVyHa4lF2ZVd3JNFQtzrDuxVv6Ko8b80DecbctPkXGYUbgo3Txm4Vq5pjAM50Vcg2l4UFrGOMyfHWIezj27xIh/U23EXzx5bSM+3+E0prZVjPiCIHW8besa8QVRJrK4rWfEF+SZwOm2jhFfGit1DG8TvtG3x+e3+7unx90AaU7xGz0enw/dj1f7RgtkOlxHJtLTH1+2d8PUOUOK+un061U1NVeqw5Wkqtvqy6pasNVPkXGYmGndrb5arik0TVfb6oelZaRNE7b67LOLQu8PLy+1ofeLR68ees/3OC30fvmCs0LvBVHqQu/VMlSG3gvCTAy9V0tVEXovSDQh9F4tzUjovTRm6kLvU77U248/0jMDgafylzp8/LH2FPCUL7VEqsOVpNrudp1Uk4Xa7nadUOt+v5rQWPn7LQmNTZFyODRWlm9eaKxasimhsYKQa4TGhuVlobGLh4dCY9mHpx/MvRThcipc9tw9M3lvb6U+rQbnoPVYJ7979w4fqco06f2aflgSgk55TZKh5mDYFBF2M2SoOp02JsT5rU6HSjOLP3htIyvb37SrnvirzTGw8mLUXfxU2X/l/U9ZQSZeA1UpUcVtUFlpJlwKVSnJyN1Q+TFSd0VU/dcZvmim9F2qVqz6LzJHitpI35SROhZYK4/T2rjaBJ3MlGZKlG+CbkYCa0XNVMbVJuhlliT1Eb4JOvnm6RAJeQau2ykp5uHpcHzufryadubLdLiOTO+Bz+X54f5ue9zPVtYutXAFjS2U7nBF6YBp9f7xn++Px/1UYwJIVu8f/z39dDVtzZXncA15QD/bv83Wz/ZvV9DPTHkO15AHmXq38wfQfnuNETRXosNVJIL1af/LXBXt9r+sr6G58hyuIQ+tQT8cH757+aen52/uP9xP9KPiUnQ8Pjy9/Pz0/BBbWHNFIukeZi1JJNeotzdxTVqqr+3frqevJN0cfSW51tXXfrt4gO23VxxhnXxzVNZJtqrOvtr/slBlu/0vV9NYJ90MhXVyraqvCuC5qKkFsPMECYdvyizJNu/CzEqpptybmRVwjeszh2Rlt2iyR4cu08w8uiSm++cPlVAjf/DaUGO2v0lQ48WrzYEa82JUQY21/ddBjXlBpkGNtRKNQ415aeqhxlpJhqHGwhipghonfJ1BkK/4XapAvvovMkeKWqhxgi6+eToc3myPU78J4UaHF/rlajqZKc3hCtKAaXN/uNu+7OapZ0c/XltD82U6XEcmWO0+vhyOX+0fD/fH8hVR5fUOfr3rfr2aphZIdbiSVO/3x3/cPs/W1Pvt8xX0NFuiw1Uk6sbTx5dhQ29kQJ1+vvKImifX4VpyxTE1W1vwCa+gq/kyHa4jE7heTx8fdz+83D9/tX/Yzph/L/D748v98y7+fjVtLZLscDXJYrjt74fj/sNMnUGwC3+/us4WSXa4mmRgX96/f9w+fLP/ZV9GHcpmJv74If54PWtztkyH68gERwKe7g/7mWp6hN+urqXZEh2uIhHCRYf73cftw+u7n5/e7I8fXx7BRp6xdsV29nc/P71gOw9PFTTYU9awNSQ9XF1S2C8/3M/ZKOlX6+2Q06U4rCwFjK8/bmfANjCgftquitoc5spyWF8W2Pf+dty/PG4fZutnHxu4gp6WyXa4nmwQQnk6fPMv07X14enwMJ4SM0FHc+Q4rC0H6ePLefq4W1sfk+U4rC1Hd28Y7AxfPj3e7bcPH/YDt3YV9UMPwMZw12tmNX2tIefh2nK+3x8pPv+Hjz/9tH/5Yrd9Pt7/MgOsolD9j9jK9tTKatpcQcrDlaVkupwH+p1LuDbyt1C6wxWlY7r79unD/eP2YabHeC7lI7W0uu+4krSHX0Fapts/bf92/+HjXG/8XNoP1NJVdbtA2sOvIC1fP388PD18PO7X0/E2tvhr6HoF6fkae03p61IhBvzZ2akQEyQcTIUoyjYrFaJWqgmpEHkBV0iFGJS1nwrBHx1Ihcg9uiQV4vXdY2UuxMWT106GyHc4KRvi8u3mpEMUBKm7FbRWgsqLL/OiTMuIqJap4hrJvDz1ORHVsoxcHlkYK1VZEVO+0WBCQvnrVGUkTPgus+SozYyYoo/Xd8cWL5UeyH8uq2V/d2zvul+vp50FUh2uJBXpSizSlbiSruZKdbiSVKirxy/3S5T1eLe/jrbmy3W4llwYJnp8fXecr7DHp8f93fEaGlsk2eFqkvVPBM5X3NkpvGtob7mMh+vKeHZi8P7pcb4ed6dGrqHH5TIeritj5cXwRf0t8PWmyDh8XXxRunk3xtfKNeVa9ryIa9zMPigtuxGYPzt0KXDu2SUu3z/uH/cv93eVbl/26Wu7fuVOJ7l/+Ted4wIOCFTlBk6SpM4VHBBpmjs4SbZxl3BArnq3cJJMw67h0Fiqcg+nfjtYwN8+7+/uf7ovu2jDXw9XgFMTq36/xfIdrikfjP2nXRmTHRn19NN19TVXnsM15KkzE4a1tMBUmCrroLkwLOUsk2GSfBPMhgFRVzAdxqXumw/Z5wdMiOLzU/fxCzum12L/Vi9mxVw+OdmGOWcsw4vAenOgrr9IXoY/v5gBWbMu09AwmdrLx8f5gr18fLyeWMyimCpYLbw8WbQf749/3vcMwkmi/Xh//GVfFw+oEc2eBHvevhz2Q4P8p4+PyGx9krX0k6mj/UyKu5f99sjafJO+5pg84z9eWbI/pI85R7L+jxcFtmK7FP2l1g+EpJSdw/Jvrh7sGul6Wthr4N1nBcDGhKsLhU2XqjIoNibexPDYdDkrAmVjMk4ImU2XbyR4Njr26sJos74vPV1Oga/5uP/etXGFL7tcwsNVJdzudiP8Q6MCbne7Sh6ied+YHhgGNis+Mz07D+KcJTcixYtEvost/BrSfr/d7YYuJqxTcWrj6hI/b3c/PGlY3hdMreft7vikf4yN/BpaHgbAK1Q8DwqfLusUUHxM7DXg8co3yDuYmV8NQebDv1oBPB8xJHtP/Upg+Vxjsf9GC8DxyQZhVc+TwPD5Rl+VLNXg9zzDrkqGKrB7uvFW+f4jW2L29TOb4KLRUAHH8nEwAYYd1cDU/ifCwGsYU3ktLDCfamWbPDpmm0j12ho2ikqqmmcGVUlVY/hkxFpi6tRqqwauX8OcqZJnOjy/sslSljILx4+aJRfPLUDecoPoBLF9PN4/ABTZPTPcEz6e7+fxabenoxM/PH21PW57I4R3mHt4ds+72MAPT992zRZ7zj28yjt/8fKy/ftI54XnZ/e/PbVR9fKF5+e//8cPME7xVWq+evbxJb3/WDfa2IMrjLS3x5fzzaI8yujBdb7wSKeZZ2f3e8CfV+iWPzi7R0iZx7YyRjzvNPNsVb//1ry6f9zt//bq9//16pf9ywHW+t+/khu1Ca+aVz/d7x92h1e//wuJ1Ly6e/oQDxjvnu4+YvHf4mMUe4CH6el/aF81f2kbKzdCqX/7t+Yv6cdYgX9IbZz+gj8Ur5q/iEa1Gx1k74fi4oei90P5qvmLbHS7Cf0O5cXvZO936lXzF9UYsRHa9X6oUBK90UE3qjEba32jG71RzjSmsRvvTWMbsQmtalwjNl7Yxjdyo1vThMZspG1E28iNt7oRAgrONEI2cqOEa4SKTQjdmI3WthEGGhOiETZVuUZtXGgENNtK04jQ6I2wqv8+qvc+GvTQNrLdmGB7L6TxTT0IJttGbZS0/YZ0ryEDDYlG6o2RotcQ1MCba2sbB+9jVeNBA0bBm4qNtaaRshGbVrhGqkZurPON1I3YSFCFaSQ02oCKNj6YRrqm3QSrGumbduPb0MiAD5tGtdATqAJ02AbVKGjZhdAoFX+uNFQJ2yjQoZeiUdCy06FRLhVAQtOaRkHLTphGt7FBDTKrEBoNLSuogpadVI1GmZVuNLSsvWl0almnlrWndvrKND1l2lfNX0AIAcOnp0yoEaAQETx8abGxKkRdaQ26EhuvPOkKVQT9auXo9eEv9GpekJDGisbA9w0hNAaUprxuDAw8L0Rj8NWUaozGv5jGYO/wF9vIjWwMfFPhbWN8eiJghQWFaWMaK2KFlTjgZQNy0V90/DEMAfoLfmQZGuvSX1K7NtDDfc3Znubcq+Yvrs0NQ6wBXTgcfUG7BsbURpL2tIoDTHlJSmth9sGjsnUwwORGtAEGmNwIGGn09SUMJ2wVR5OS/kzBgmpwoIDqaXwER6MBvpMDEay3jZPxLR3oxlnRON2ojZCmcemjOpueocEkGpd040IseJDPeddXkuspycPwko0wG93qnpI8ztV247XGuSpAJQKHiaMlxxlH487bTnOSNAcjAWdma0lxoCYZmnZjAyquRQmVQJ1GDQpnaGiaqEGnJc1Hqy3Nx7Z1MA3bTfBRl1J50qWwgqYYPKPTw9rHHoyCX+kAg1RsRHAw4GKBfiVhVNFfXBt/5XQqmNigF3EJ8tC70bLxKsru4WHAEr1JVTYVXCqgPFY0HvpqQxNwlTKhCSI+ElLDQaVCGishNRxSwyE1HHwqwOdvQVttegvRiq6UGhetwhEpGtEmuUWL7cOQb233nIsvLFrf/S2kkmi7kki/FbGP/rjzvXEXYPESKjc7oUrjzHe4TVojcZsMmsafbAWNNmVokZM2jjrtJe0Dxisabd5Z2gdaKePyryQMMrlpbZyvxsXl3xlFww0axOGGBXjr1sflXyoHyz/oi+Z028bVHzrH1V9qnN3txgdaV1sXRyY0Zyz92NKqLGhkBSdoJotgaEBph59SbIJU+CnlRpmAnzKWQHuxBMtDC1MR5hRuUUKg6hx8GFQeTDWcrFQKUcFCtulvkjbgRuAGTH9SXUlTqf9NQ98CA4MMVqmM9YZ1YEO0zpARIY1sYE0Bu4QtUYJZdmjawWjItJux7vrmnUD7zjcBBnv/tzIaakqhfQZGQ2gsrqYCRISFDtQNXwbWZKniJmphGknfuI1lo1z0bUShikYVVmGzRvpoV4m4jrawGeIOBZsNTjv4FNLCQ7Dawaa4kfCIahuNG7ZQAmph0VCyMRsPg1speo4J2Tf8BJhvQulGuU3LVIRVaJzCJokTO1gSEu0wR6OZNkcbYJmVG+M92AZqI7yGnV5tDKyEyoCStWbC9I1HYVAY2yi70Z59bJNMHi1QiHbjk10jTKC5H5wiG1CnCW69hgkuN62LJhv8BTcNtMtw7oPI+K2VIJNHWkdv41pLlo7WCpZttYE1UYAdtfGwioKNtXGw6qmQ/qbbrgSfRYLGYDeLf1MwumAQabKlmAko+jagsEWLGqtuJvWISS36lqFwRaMaq25WdU95fYtR+KJdTVWfq2Et+haOCEXTGqtutvXNtl7LthZ9Q0y2Zesa627m9SdhXsu+HSzRDtZZ+5rq0K4W0WrVsDhgX7BiYBXY3mhfahP3rVZH+xIGJVnjMP7JqoTxQFalSlYlmEdkVQrB1j/JYFW0rrXNSitxAZQb4chqaR1BoPC1oGth7JkljPOarBAwn5xAdBOXaLnRFuYw2cU4Pw0Iq11jNgKWBu0bvbGSWQSyb6dLNMZ1yAqrSLUwGKNRJFtJSyXoGMbjRpoAe3oLW5HAMe1w7YfV2MJyhju/dL4RhpDc0Ajc+wM+h0YTLBgGxquFb4BD2QnVCFxWqeS7Ukgl2+KeCCWcv0I3wsrubwrnV2iE1bhF2EZYAyUYABZ3Iax13S98XBGFxVeEQY6LNrbiRHrO4b4Cc9Kp7m86SYDzjmpt6tfBtoXN4aSHV3W4VMNA87iiwkv7rgvcB7A5j1sMrI24E6iL79l3aST5LbDnbVrdd7ywDk2riLt78vYUrFK4A4GhjEpIq5r3ybzzHhYduZE6Dj+wYmnYwauA2UtzCYedg2Xdw6zyms+WvtsjTdFRxCpBFqSgiQwqQgm1VXHato6ZbbLvQ8gykCxvSDK3eWXfYZCuaMth1c2Wu9lya9lysu9uST9gy/mbLffJ2HJ971AiAO5dY9ymlWxJCd2CD8sCbkDpQwLGBjaZhm2tEd6DJXaxevXdAYXugA+5vqiu62ugi0YE0Kxh8J3q26gK7dAgcoaUEiPvZQGFhbFrASnUfMtUfQNToYEZZLYrmX+tix5Kb8VC/WgCBpXtSvW2Z3wrHbsMZGLZjTas/b65otBcCTrbvu61z9tNLxB4D337QqEREUwmz0GZkRcAUFNL3n7fvFBoQwSba98WXiC2W3yD/h6sEJkL2SgA1Q2MLCcbj9ASWDh2E4xnffUXXYWLbsi6A1QHfWkdIAkDzLy408P6i53CCkFoNOFaAnFZRd5YWlWNTasqrY/wLy7WPqJP3hLUFMA7QjtFGtjkKGRASx70iyCyhdd2snEbtP5xvwSHIIAhqsFwbBuDvcOukEoSbFPYClvV/S29EhocGwewF0DgUMu01l/TVEAbNv+FRtY02frGbyyEGtpAJdZXf03TLULi2UwhXVjT4kwf70v31zQtsK/smoZ1JqD/6cE6VRunHLioetOCEQP4N3mAzkMlujCgaw/ZNAJ8agiXSEzrgVpwdyD0IRpA3N3GeTYvdH8Z1BjfElk/G+swiGFVVrr5MjWAM+Sk66+cGgNgwmelU8nvkDLGDWB/hrFKBTRtLNr+agNrN04CsKJJrWC0oveN0TENW7tRSdPoheFbGRjL+FYSrB4RGrdRfAXQLBkKs6FkfnzpWrlB8zqoM7lniOtI3KLg/YVeoyMp84PVnMEuEEGEMA0F9cQJblHozcLOIkDvAJOD5643EqwtFBYiYSSsbn0UFowZcJjdxjvdSKm6Eo0d2YC2sE/2Av2dRGOwS+bHM9WdRyFV8F0UEk16C0snSh7AXkTJ0dxGycGxJcnB9COJULnSUZiSydbfg7TD/vOjuYsctZ3zHGKEFPAzMqlloDU/qLjoYwH+AvMMx4mVit4Etgx6EwMzFAeMVISjwGaa3gn0T++EBhuu/AG/hoHsQzB+8e2E5XO1v+tpj2+X3fWwjjACCOokEJGCfXHst3HoQzgQ3wSGDr6JhrUG38SCa4aTQIFfie8EYyiOsDatSRAhonfCoDi+CWhTtbDoKP4i/Y1I40ak8nMA6jB6DiPBxEAvTWKTJrGJbxLfI4CHgEJb2Olp5oYkqgHfEEW1uFTCZACwRKHNwXMbdH8fM7iPqaxlaeI+pjfaxExQRemegBVqyu4EiwhnhE7JCcokLAHe0AEQCrAazUP4scIJCYuTwnRUACGURaltA15b+pun5/ovYPqbo8HNUWUHjRHpBXD/FWhZqqj1iDQ56WIo0NoYcQ4mmkw6RQB98j8hwitiATEi1SqCcKCAYb2Q5lEbgWy1cTINMB3tABE3OIzIAxYkweiBlAnQjkE/FLQDOgmoHU3ZH8p1f/PpOQ1vaMEI0yLVakzBgIAjxvqdZKu26W/iBjdxnXUATOfL2DjzwPA85aGoFoeejK+Y1jLfQucmk6Ni+lu0wS06D9QbNdx37JFMK4Vrzkjf/W3W4Darsyaj0QveO5ebY1iaMu6UeczfmAXvne27v8kZ3MhM1rwwdv57GwEpVoEPtv4uZnAXM1nH2bj5L17ovL/JGNxkTH7B61yrNsV/8luoVrF3ClRZ2Eq6TREk0htAcKTRmM6lGmnQ9IDsEGPTpmhc9zfwkQIs2ga2Blh4pG3Tb62gv7H36u85Bvccm1dqdH4khuIoKT+ZCCnTq3srwDoJpAq0eUp4T3w7b13a3mXa1FuAvfE9jdTx7TDPwsBK5cGhw7dzLr0dbAv0dvgLfDv6G5hs4CSDUGYjJANFTH/rsrh12Ww40rbzx7C1uWFk+9uOxW3HZhcOK+aP4ULn/dXa4mpts2agXbBa25DtvL9cW1yuXXbpsAuW60Ln/fXa4nrtspaVXbBeIz5z2Xl/wba4YLvs0mEXLNiFztk5DFyxXXaHtgtWbIiHZDrvr9gWV2yX3aLtghW70Hl/xba4Yrv8VPPJITuHDE+hSQSPlWRYuO0vnRaXTpefTiH5HUokaE2f0k0johaiAQ/4pkgFcrMicgZRAzLcrSVQ26BPSmqRhkvYX+ocLnUuaypgXWeTk2ckTgY47VkmuX3J60tOX4JlZJDR+7PJw4A/RQcPvqxAgA73jTaVPHhDEP6QXiSr3cuupKjUfzXXX0gdLqQ+O66xjoBNyhyhaCQBmxgkAu9JUTBShwRnhhjvwYKOWSYY/IUUWAz+QrAJQ7nW+Ih1ehMxTvB1EHmEhNWIbULeA6Ip8GICM/IA0YLvSH4+qAc2ORnNcReV4jYWAlweMS1FSkklGPwKn7Pd39AkgMGEI7dVbAt0/Y3AyWLmNFVdNXPa9TcGp8qZ066D2n7jmdOuv185XcycdvqWOT2eOe36W7Az5UN15nNO/nV9a8GhteDzG4ZNqIhVKZ9HqLhpYgAZkoiCZ7uyY6cb0SQIWTPQudSDg5kpYEfQ3CN1/V3e4U6eD9xiHW1FAFfCxqQxkCCDasKmbQGwARcEEBLIy9tAYFwG21U6KjEJ+maAQzMgZM0A14WPDGI54L2EDo7GEAVCuRiiCOC94DQMJgUwQmjCxra+UW3beNz6VStyAQzX3/o9Hlxqs36d7wA6cGhJKifVGS5IUgE8RlLBkCKpIJWFpILUKJJFwyLQKoING9XqHIDo+/u3Fyhf1gvDOnAJI9Jv8DNgLghgFAoGN4plFHRsI2KvWngO1qoWHgMsHrzSWBItlZhU/Y3Rw9ak8iEzrIMspLBpIZHCYvYmHl+HFTX4NGIdDSu90VI3sBDA6TFYQSHLA9WrMC4FoxCWu4ApXkrYruRinE9BACo+F6jExO9vpR7P9uejP1gXxx2sZDjwIQqCn9XDpgVZTxuHaTQQD7Gw4Un4rBZWNd24TVCBCdDftzweuc8fpcO6rlslLbXXKAmfzYGupE+dhVSp2iSdEt3fZFaU/pLvYWVTeYQa60gX3hCOYjAJhsSD8DKpJcAzCsazB/mU6Uq2KzkqMWH666q3KIzPpbL4bl0FQBHhcjijR+iKatByQAIFCMBTCoLB8APOWIcIkEAkGMKfEQj2YL8g/As5oAT64t+06Urpbwr9PAXGk4IPAKNOKTxR6MD+b+k59oL9Zd3Dqqx0fuJ0y7qFtG00KVU0SJSNZkMQZ+momLytjYlhAB3ShLdgJmqcUTz47dkBcY8C5T9/h9c5sCcwoQOMndNWAVPBbbSgqWA3OgicAR6BL0jZxhKToL8v+IAS5OcC7gs4FTAIhoc0DdmsSqZAIOyzkICtybsKHjUgUTq7gWURpDMbjZ8J5pNtRaM0zid4K+27EnxOcyFxf88IuGeYNjdKsY4MInKlBK5LXUieZIK9DRqgULtCZBX3LCO7kupKmkp9mUJ/nwi4T5isFsM5YAYLCoICuKCkUkglXEdoOovubzKV8INeAAqhvzkE3BxMFs0Il6wrob82B1ybTRaOCOry1/2FNeDCarILCNXhiVzAcRGEBePciBS4xJUDA+IG/RCAOHANgUQTaBX2JdgkTaAwZaNs25VELnQZ+qttQIwL0qeh+b545hwdp+Bfl46J+WAJwz5HuB2ixrAyW9xHTwg3bPOEcMM+n0ohlUTCv2FBo9CyQoQY5gUEb1PJUIm9Vn/dDrhu2/wntwOHQbrz0dc8DBL6a3DANRic2EtuH6xDcAMSqzESqRsMcTs6bAPwEvqB8AD6gZAAgsFjcNIMHZrweHxcbhxgPOQF437UxhZozAVLx0U0phTQmDNexjGHBcAKcOAZPBsOzcFyFku+K4VUwix5C6koDl1ASHnG4xgaT22kV8HTGACdKMyUh4xZZUP8qXIIWUFEBt0rF/ja099Dgi8ebsCq/55T8IExUuA24yCLGTCovpQhSalcNnut891S3izrihMl4AbhVK4vqoS3ALlJNW0keXJ4eAZGAZ6JQSANNjSMDZFcYL+QRQDDKqE5eHoCksMxwRkSpzsITRLDgcABodFuAJVK9B0V+siAtwB5ldoEACUgCXxjEZVAniks+SiVciE951v6bV8X9H7nyhBl+gGquy7/QMv4Ilo5wEBAlZ8BkEZveq4WVSYhwLobljbGQtAy3o1Wl3kI2i7J8HYoq9Mfowppy2hkrPtc4Uh6/XNV2TIbQWtvR9huR9jWpCNoGd9K68qH2KjydortkzjFRh/r/MsiPORFzp+mSrRgwQ7osgIAT7OQVMvbZgQqLVrkPgu9U2XXpAJPBbcx2NPgiBf8Dew9c2nvMWOcqMnglDYEfH2/m8hpFukUzvpzmMLcKIxAc4dSXDCYIfoCR/AuXUoR+c0u+6CmGwVRnk3LnSzBic6Qe0wBwgaZ1GyWEdnZ9BdhViBSh4EjqR0k07I+OkqzODEFhTSCpOAGb5uZQ8gEBq5bbiwRE1mmbYpAXcjNTAVk1FL5E3ZUeXLvkjMHm73bAKeBoqAWlgBcEa3n/bH9FhmnVP60GlVe9nc6agkrisHFotgfW2GRpAnOQuiwEVx1rvDpT3Mm/+3ZXEeCI5U/FUeV2InzMarZ6pQK1HZRTdh2MCghHV9aOH8SESi1WRSVKk/ddb04AHjgVFuLCTECSgiZKm4hMc4cQaQ5ecoIqgRrTCEyBaf6sHORjB5MRqJdRhEUZc+Po9h09AQBKA/GAiadtIAXoKjC8uWQsb8I5FcpcAlK0RtR5Zhy7O3iAKRg7C0CCVIKvomUN9/k4muxhRIJSQq+CdV9tr4J42oRSIVS8E0iWcvNN7n5Jiv5Jox4RxC9TsE3wcqbb/Jp+CaM8UgQ5VGbDV1TJaKtoCrEWJEurSUbBfcZWDKAKivAFCDKKkGYr6MoD3zKwLiiIM1Bwa/g7AV+JojN0CkwZxpk6zIuKhYQdIEhR8DT6Tg+RpDaJIAkiBvyhvB8CEDzuPmhi4M7ADwG2QWWYHfrYiMK4zoQRAIHTeFxYrSnMDFD48eDbnXXmca8W3rOdiXXlXxXwlOpEDAgzjn4GxiSGMLGcH/8m+pKuit1feB9FRo4OSioge35rhTSc2jP4N9k14eU3d9UV+r6kLEPPkKY1Rx5nbJhSaokAj0ZDy268yQDilHJaONiiA3ntI/Z6JD5Rudi25iN7qyPB2NFOvsKCQWUg450EHCgBRMSNHI0QJICfBOIuF8YHMw6JzKgAku29BGgx1PDGL+iwQ3HjTWNaWCZoKNWIuWvQxaEjFFCyl9vbUxghwJFNgSFWGAJ8CpOKHxLCEtC4Htj8bYSEaNG9OICY4sQmA3ax9dVnIZFMNYcgcw2hSCEDLcgREUQgpEDCSTw0fkz7VRZ5dV1DhfrjvEDCSTx0flD5lQpIGaOvHZQ0NGEM9ZH7kUbIuUiMCzAM5BOFsCW00ZE8sXWuEi+qMHmgb9vnHWRfBHO/BH5ojMUTRc4WI1JVCG4MUovI/cilXxXCqmEnIoa2WxwyYfPajEEaCJ9IpIrOqyEXRDJEHU8ut9uYIGEoDvQIhIHIt5fhBmQLVK6wKrfbizG4cGWCBh/bYHHRCEpIgZmvY6vqtDWgzQOQHZaDJ2De9+i0a5QTbAbtVEgcDXAINUNGM3pb9CuA2dBkUkLtcgZCY4EjmGw28CfazG9RCvoAf4N6S8aenCQVofDGA5Eay27WugBMjg1GSf4t6QkuNMoyqQdlfigYs4q0T0VfHeVyEZhXfURjMQxHY+cC2RzJDtMJlpHE01YpMkkWkc8QoRnKeHr+pRvozCWjnM5tJhowoEuxiYl1NCtALGu6MATWCMQG2oJJeLdMf9KDYQZ1S3MeOHKM+osoQbCjOrzDjMyFjChBsKM6hZmvLnyq7ryjCFOqKEwo7qFGT8dV57x8YlIyJejL6Q6yskD5mhLhEkyhrY0P/8qGGudIGq6LHVhrOuaJE/NGlVunFnXSCWn4YjART4v1XWCU7gS1iWNSeb+Il7GaOkEEsFpSDPPtC26c9MmLobg+qFHIol7KhboWHJMK2thaUX/DI53xcPRkFGLwoHbBMLh6SouHDPJkAcODPKccHKBcCIxkXVikgEGJzCKwjEDDMneCrmeVLkg2VMwKjmBDG2lbE8ik/vtZnsyejqhzcBlU+ZXuG2KWSzI8FbK9tQdM/pvPduTEd0JYrrLAy3a3YCWCqCFsesJJKnTedolqiSgReNtHXAQMp4PgqWD/D8PuCb6fxA4Jv/P8Xs4BGPDE0g5p/OUS1TZ5eh0OSe0BzlOeiQYfZ0wQ1HzE1XcqQFGHyfMQFQ71dGFB909B+NSMnY1YQaC2eYWzL7wgBlDnEDWtoJbZ9TNrbu5dWu6dYwjUBARYMGtw8qbW/dpuHWMgVGYMis91eXcOsyGlJxQUzCGRWHKjPSxLufWlRpn5hGSGgIra25LJX7FJDkg544+Kua9ios8O8aQKAwZCvl7dIkjsRO4onVmDRiyBvIxT2IxTKLjkWlUYaltZg0gSZ/On82lyq7J81fIN84Y/4QldzcfqDpx/vX45TMXPmiVvQFAMI4/YcmBzQeqTix/0N3AtRLl7tgWi0R72mYpJ6jyDClAilokKW7pSmXeOFtBkUhP2yyrAFWeIxujrbNZjEx5Ok99SZV0WQWg2p1eCEBB7uUuoAGhIrvhxggj4hPIjQcBwmx3dnF3bKojGx4kKWS766a6swq2aI2nbKk3JO0kax356ATR8GD0y2zM5ZBg6wDS5Ok8wSZVdh3Se1IAcFbXbJGwA3F2e4uzV105zNZG5N0rRJGo7rONIjFKQoEsezrPFkCVp2z25B2O+oSMuk8ge57OM8hSJUTG8Zw5eCFAjSUo2yC6LDCr4m2Q8YA/MIliRgKwSmNIHjlE2pijAI5RS8QzKo1zSlJQVsQkBXgNgSQBFj64oSQxG5MUJP4NU9LAVDMYJ49ZCqnku1JIJcxSgASCePMjWGiWMhxEzFdwwsaEBXgM8xUsGPmYa4A/xXwFIImifAWgjKJ8BWCAoHwF2GEoXwGC+ZSxgH6yw5w5yIej/IeYugCcn5S6AAqA1AXy1yh1wVsbUxcsgL7oC4JMlKhAJUwjwF0WLWjI/sdEBYO16JUCSIuJCha+ESreiBBTFfBvmKqACWQakyGA7gdTFagW3wcHlu7+lvSjbUx8QNXBZTwaXUJkm8GrMuEiDDDO4y/pqkxI60KdYBuobZh2IO/F3GB2AjE5FgAXp66d6oAQcDwygkkPXFxmeRABYx7eSXUDqQ4XmzbvjpkiSMNXutnd3ICei6vdmW2FJIOlTcp+3psUswtd+U5QqrthYjdMbDVMjLF1CjdwLShV3jCxTwMTYyyogqhO85iYC9NSHRiXqSDC0jwmRnUTUh0YEalAClDtsleaUuUJE7Noo8NAcD6LMTA+UYEEncDPl21c9jGx8daZUYXsm9rnj5p6VYDzUje8cWYCIZ+mLhyR97oE55VaZxYPEmTqwiF5bxJjJBCUnsYNwCMm8NA449oUSE2pfR5oObFtwsqWWjwNG9422z2RZVLnaedFIrpkN5J2B5cdIFT6IobNmCsF8kiCz57tw/f66G4sSHeRlnth8xW5H7XPO6s+5N6kaxq9AA83vPBO2MRFMkeAd3KdhPa8k8wbFLthHJECiRoL2UpBTMtWYqSPIshytlJYkhA0J1uJcUoKZIksZCsFtUC4OdlKjLJSEC9lIVspdLwIM7OVGAGlQObGUrYScVD+drOVGG2lCLacrUR1181WYsyUgugnC9lKobuB8reercT4JQURTObh6uBvcHUFXM3YMEWgbS0fbTvxYY5nKzlkPpWnvCXecX+rky1tddm4G1Ui1ujbeBEN3MlE6CvsW+gKq3gKDE9cIcAa8LQjYSnpFBjepkZX9IK6EKTB+z0JpSFOVYnorkCghkq+K4VUcnReKR3qcnhhW0jILYKkSIZtfby/SKGzjOTN+AvYtzGMg7/Q6NbCKq7Rr6WS7Ero2cL+ga4t/c10JUulvpYlI92UkVgzCyNS5ZXYTuA17eUtxpKxcEqkn8wDh1RXxXZC1EPCad6bZL2pIm5IdTfcsK8/xfRXpvCguhsYdgPD1gLDJOMBle0AhQdV3sCwTwIMk4y2VBJtaZ5GjSozaBgs0w72KN64ZY0jBpG/cIgqF7uktvtb55yCdHYj+SFhyZgVJbIh6jzbGlWu55Oe5KTLIS2/pUQybkaJJIqmzaYrUSV9dbhXO+DVN5zfTDIeRomciabNJilRJSkRyDNKbTLeRUm8i3nXWQqxzHWWjIBREgFj3nWmyt+u6ywZU6QkMsis6xzrruo6S8YuKYlAMu86x8rPwHWWjBhTInFl3nWmupvrPOI6S8b9KUU5iB7rPtcgumS0pRIpRk3+dj154i0dI58hN6/ll4dJxmAqkWIUZngmFCMTgylYebBs4pCzNFBTgpeKCV4uIgzgBtCtLS2s5DjPAQmhm4LgHi9CGOCKYkIY4B52Qhjgg6E/B5fpEMJAJd+VQirhXS1oiiNe4PH+lhDHOV3W0kobEQYgxEIHBPhjgA9Y4qVEBu304BqDZjpsF/hr+pNNBZcK+H4XH5DZAcTDWsARRLgmjgB7svHcgmS0rhJZVAs4Qqqbz7UiGUmrRBrVApAgxQ1I4CYUo52VSKNaWDup7rNdOxnDrJTlQ3lUd8NcbpjLapgLI+2VcuBQHlXeMJdPA3NhhLgSaVRNGzKxcKo7SwJo8fJgjbux2XDzixGySqTfNCKXAkB1a6YA4PXX+Mnp4k+OBjEuUIl8mkbkUgCobsUUgCQSmmJ6EzhromTknhJ5MEs4hvQLcQzGsillGMAxsPI3jGMwfkxJFJh5HIPqrotjMAJNSRyZBRxDic8Fx2AUkBI5Fgs4RmSAvOEYwzgGo6mUyCMJlkXOOVeq3jmHvaHliw5jqZTIumhENtuQKrvbX+Jug6unAVJS3jTb0ZQZcFJPFIZnDbCNC4nmCk5kqrsgKUEhgSWWxDQ8gVYy+jpJDHV531G5m+94MYLYJql82SFS/uYQ3RyiNR0iRiMoiSqw4BBh5c0h+jQcIsbhKHVbPJEhzzgcdQyj4uUDo4s/I3OURNiYPZoR67rGzzK8x7thZhIyIYIhnPFyiJbR4dZ68vGynh0jVJSaTAWTbVadmj1nWsm2y4wCTUaBzbaLadHYnoxuVjAlV5TREEo9EPbSt7BXjbnImBSlHgh76c877MXYFaUmrCGf1qL71/V1BAfjc53ZQ8gDaEQ+v0X3QAPUK4R86G5OuKiE+hMRpDAbrXjKJuMZlMgNCGfrs/2FNFvBMiRn1+LdCG3j8HaH5Cc0RrZN2Ai4CFIKKvGe2QqNpIJGytwygXX0flada1FKOhPTGAnJJP7CQ2FUhRJZBY3Mnlmiyk6NZ8qTpgkbBQWbCg4LvDe2UiMHn5E+G6vEyu6liHbIaN17PZ9/KbZyI9mayd/HQZXZl8L0GwEHhdr4Vkpk34ot6MgAZiCMmnsrJASguW6abrCcDQwI8wbYvOKdjo1RKne7o2RMYxLZwQCpzL6mOdtJOucSbhXZXPiWjGZMIjOYUdnjX1TZfSYgybAbJXtzWcFgMPz0lGSEYxI5wozKz2XjUuTaBZ2uS4lgj0ZODESWFMWuLWw9uEo6MMkpPx5y5gnd8V1+vOry44WN0WvjbMqPNzKGr+FaVApfU8l3pZBKFo0/uEAlXo6i0FaCZPiUM+8SnUiAS08CXsQFVi3lzMNtVEinEc+jUv6/Qr8B0ScVImWKQUOWSqIrya6E/BsG3FpNf+OKZ4so0qcVXH/TraFg2OJKDf7b6WIovE0pXbkKix2CIhL+DzMONzmhAKn2sPspBMJAEzBB8PYn8LfpOboJVomLkcJWYeRkMxqOl3U70Uni7uCGkhGRBeKqCCPIKMLp4tkW7mXSyM/mLqY2W4SJ3w023EzHtp10clky8jeJ7GwG8gByjZ/s46qjy5JxvUkkYzNg6uRal3nRYZCaS04SyZjdJJKxGdPmG1cF0YutswXVDhwOpMolkQFG9SbtwOFAqvwNRwYYEZ205cOBse66kQHGVCftwOHAWPk5RAYYjZ605cOBVHdz9cZcPUYPKJHbroBUY90Nqe7rj22VA1yA8vPmApSMC1ASF2Ae1HfiBurfQP01QX1GEimJB7IA6hOD5A3U/yRAfcajKB1Z5fnTRu4U3IbVFzExOIut0IPHc8UmFcD29LAxoZvUcuYbyRgRJVIWAueiBt+Lr2ipEhlMGwOXdmz0xX7CaA8l0viZPB15qiQ0ozHGpoLL4RuMEVAi7Z0xsFlsXPQBT02nSrMJPjQGlggMTBjbdiWRBTgYnZ5EgjOTJ5Gmyu57CI8dwjrefRlEN+AulJovwgxEZOACgEaHjeAfhOp0EzZtCwaFIX74xlgLwJO7WEGYqYQUXMbmveJYedFmA3ho7uMwOwIpuADqyUge6zShgLFthDsJcYXv5fLfhjF7SSTjMi7/bbAS5oPbKLD/lUo9ovphFDuV74YttsjKZVx+FHtZn28SkQveHVsBkKcLbmLPdqcSpBaMjJBaG/l+4RZygtSMJkgN4BaC1AzscQipuSAipAbQKEFqBJ8phMUSpAZrPV48HES6eBioVuniYSr5rhRSCXE0BI2IeRZ2cQTScCFFIM1HGM0DdCvIeFGRlRfOoxCOZgOtZrE2EGduQsrgbwZJNVrEbHHvAiYzRLYAUMM75gH/NHQeBUp4HoVKhNnx9YtRpEliQSsk6Hh9vVMk8G7mkgpNMpY1idRoBRSQSNZq2ChoYVcX2Z6MeE0S8VrevfL25l5dDCe2l/gyNSvV3XyGm8+wms/AaAelH6Bmpcqbz/Bp+AyM6lH6UE6eIaZHyHJx8MEo4OQidgrTCnHmFhZoMPeCp43V4ZA2HkpwWgG+rd24lgdbGCGkDG054Yb4IHGRxnOsZoMoN44PwGARYYTFCbcKIej4AvwFFxwI/tO5Rw2zmQgX6PCCguOuGKJojY3bGSybBuDqDRibBt5hozS3uRnTpER2yEJiT+iS2Fva2YAgS8UcBZNGugw0wJFZiwY4jdmQzmG4NjSRdMzQm1iZQGUkuNcYsLOR9AKi6PRKWur4SgrMV3wlYbmNwAguZZADgbcg1wu8MfJKiXyRpcBbUNMCb4x8UiI9ZCnwRuSTEwJvjGxSIt9iKfAWCjeAlUJjjLxRBjsQeAulK8CKrTMjAzkIS4G34BYG3hjDoQx+IPCGlb/hwBvjJpREP5gPvFHddQNvjLJQESthPvAWKz+DwJtiHIMKKf3ygTcVKQZvgbfBwJtirIiqLR+Pj3Wfa+BIMUpHhRSFJs/LTZVVaBJZBBebsGIMiAo56cCOyyS2USVMKbixiBAeMHsBzcBbpWCdbnDRasHDRItHpww4J2ngAGYDG8AGroQTuIQrTbc7Kbi1SbawcTlwwilBFJxWMFbxEiu4DUlvlCWzTW8cPO1VfM4AtfhGQwGvKwTgFihYocRfXLMXxy3c54xiqrMxWf0y2bTDQ9DGuriKTzE2OIUEbiZkSceoEnXZgq2HiF3ymCD3qkuCi9ywMgF1QSXmFo9YHA5T8FIo961jbgE2lZj7Bm9D4Aeyybqu5LtSSCXC25xNGW8wQyjlDXL1KNENth4UHS9YopQ3pfBGLIE2aMx5w5MFJj0X6L4sH+E4wIwNettADGuIMBbBGIXLqW0MEcbyFDLFiPEUcd/l4TiqvOodU4TaC3wZCysoF9cxccspelR3sruHYGPs18NgDIJSknm/nvVbzoKguhtM19cfM5uQrC8P01HdDaa7wXRrwXSKUUMqYn/Mw3RUeYPpPgmYTjEaTiUGgBiqXAeIUYzyUokBIIYq64EYxfgrlRgAYqhyAhCjGA2kEgNADFXWAzGKESIqMQDEUOUEIEYxDkElBoAYJRYCMYpRCCoxAMRQ5W8XiFGM/U+JMhAT664KxChG9qfkEBAjPxsghpESKjkAxMgbEFMDxDCeQjXAU6g+b55CxXgKFTLHAQCQ89plP9Nu8CYZ2ITBmCD/TPM0CsUo6hQSm8Gak+1Yxxu+4Y4bTPSx4Bc5vKs7sr5KsqY0Lk8Oq0SED9BWRfgALVec/IA7EHwguru7TbxaBpwIHxN9FHxzQ669iIk+VPJdKaQS3t0N5y3p7m6dEAU4yxgv7IbLwx3dta1j7g+cLRYesQWRjtNBI4pOCUL2D7aCpiW4JgArEMgAt6DB/+JjCDIYHW/TtjJeoe0guwflhTcxqBwPiYABJz8CEL4rhWhB22hCisa2IvYAC1kqqSiwbSnox9d7RlWn5ACxD1VeLW8IUhDFpYDM8pFl4iCqq8wbgt78hSXEKOyULBMIKXkjELoAJBjLnpJlAiGquwESN0BiNUCCsS4qOUAgRJU3QOLTACQYhaRCCkfb5i0gdToZ3dJ+r/GjIqcDuE6wQSvMd4Gt124CvztNMYpIhdyIts0bPkQRedlNZBXSNf0xY5j4Fdvszc9U2TEkGWJtJ6PA4sWAYBSAn887YWYk8gXaNsuHQZWnxk8MSePdMKMRuQNtm71omipP7yKRxdVWdMLsFuQXtCJ73zRVnhqf8i7M+kCCQSuyN09TZXqX0xmO1DRaaJjSzzthRgey8FmRD3wSbeHpDSZ0w/ZmIvATKt+NP3sXtORC8BX6YiswEn9ZCJnm+oDKru0pX4WtBsj8ZcHayfRCXGMYnw3dfdFge/fVxrpgZGIKWb9s/p4LqkxdnN5jvBM265EDzIr8rNc90gRqUTqL1r7b6IuoMiMUU0gEhgQzucZV79L0itbZJCdasQJCrPV6CDGjHVPaDCDEugCzljBcRsClkGWqhBDrEsxabJ3Nc+KsKiDEWDkBIWZUVYqoqgoIMVFVTUCIGTGVIu6pAkKsw0KEmJFRKSKcKiDEpv1tI8SMM0sZUUaIqe66CDFj1VJIf1VCiI38XBBixgKmkKargBAbdUOIKxBixnSmkIGsgBBT3WeLEDNyNmXIHM5y0FFlZaoeWJeO8xQqRtmmkFvNynwamTlLI0sHP51PaWQmpZGJX/mKccoig8wwAmWUPb9svLtiXCCeArCYpPObWqUcM927gJzyyYTvssgSNZqDo8LoasMhCEdQg0pJZGBtoUcM58ltt1niuYrLW8cVY7FTZiixzLgr4rUWjtVc3BamGNubGmB7Uye2t1G8FuTbaM4tpxhVmzIDCWTmlkB2gdcyxjllBxLI7C2B7IbXrorXMkpCZYcSyOwtgezTwWsZHaSyQwlkdsUEMkYVqexQApmdmEDGmCKVHUogs1MTyBgzpLJDCWR2YgIZY1pUdiiBzE5NIGO8icoOJZDZpQlkjI5Q2aEEMvsbTyBjRILKDiSQ2V8hgYwR8yk3lEDmPpsEMkbCp9xAApm7JZDVwAOMWU65gQQy93knkDGqNoUMajbPu69c/Uk+9Mqk49sBI2hTSK5mZT5a63THC6Wjj6BDggeEv+CFkokXyofECwXLEfFCiZQvZvC2b+SFsgknUG3KFwutT8RQ0iViKOkSMZR0iRgKSpgl5mC6RYqojiEqEUTZBBjAATQCDID7AQw+ghgSbZTsyKJkRxZ1oohqNE442XZcUcCfYHE0QkgMDTGFd1ygsYgKdV3Jd6VAJf5VmH3hhlK93DVTvWAhhpgfF5DZKG4g1cvVp3pZR/dv8N6YzeIGUr3cLdXrAjpgnH/KDaR6uVuq1w06WBU6YKSQyg2lerlbqtenAx0wRk5FrJtZiiiq4/erwZLiQEOsYcbBqYiDM0v4RHXd9dTCxculF1+iTZuRENxrYsSdiog7s2ROVEeyCTJIZRqJSEKp43l6FA0LpGhLjE0BT4njFdrRX1GYFUWUTeDalfZnRvepiO6zAOp4tR6ow8gtldcDoI7X00AdRkypvBkAdYiZcgKow4golbcDoI6300AdxtKokDevBOpg5RRQh7HwKT9wYzpVLgF1GDOc8gM3plPlbxjUYdx0KpRvTI911wV1GNecCgM3pqsT2dxvHdRhfHUqlG9Mp7obqDMG6jAmPoXkeQVQh+o+W1CH8QoqZAK0Kp+EEXQ9qAMmipUX3bF9ErkBrcrS/VMlgjpexzOAWkdLGq6di6COIVBHO8iXxkN2tEFAhkji/9YyXaln/SkfxEScRykdzwUGk/i/wbImnAfzcdE8dnh+0HUl35VCKiEy44SP8I6H1A5y2cAlcOQEpOOAFhl2EAiADRou+0MGT8J88KUR83Ed5uNVumjPtolqyHUX6AF3lCXbXEekB17L0pBUprE4b6mku5JB7zU0Vtmu5Lpa35UClfgnZcYJMTgWECGsvBoiFLLJJIwhUiGHYwERYgSRg4hQyCaTMIZIhSSJBUSICCJviFBPf8yEQ1LHAiKEdTdE6IYIrYYIMQpRTSyheUSIKm+I0CeBCGnGgqpbynLPHpOhypMPjd4mOGsCaRi1lbxxwRpHdMVnT6tRpUzThRoXSsfG4R7i7vQP70aybjACp7PGGlWmo0pdd7DbOyAgh80eCrwLxbpAe1BnDTSqTCASdoFJrNNApAQdRXwLBhxYGxthLQqJJS6lZlKaMohEleuASJpRX2qivsyDSFRZDyJpxveoW1cGkahyAoikGT2jRtrEAohElfUgkmYcjBo5BQsgElVOAJE0YyjUoi2DSFS5AETSjJFOI49ZAUSiyt8uiKQZiZsmnrYsiBTrrgoiacbtppGOrQAixcrPAETSjJVOI49cHkSiuhuINAIiaUbFp5E9Lw8ixbrPFUTSjFhQIxWg1dmL6aiyEkQKucwgzZgGNXIBWq3y3bkEIsHNb3RwyLqYGQSLKB0ckgQiYVIMqhgP8NAJIsR/aOFNmUHg0sYTRG0iokbohfxpGGToUAubiKip5LtSSCXK5YEbXMi1E90RIljm6QiRSEgQnGaKx4VaWNzJn+kODsHSj24XLEXI7iTgvsW2K4muJLsSQkIaThrp9DdDh5QaG2+euViFmS1BBIt5zIcqr8lMjTdLwmILcsOJc261MX5EjfyEeQSI6uqYqU/WIvYbuDepGQ+iRgLAPBakTzSINywo6Y8RJmpZvnRay9ul0zcsaE0sSDNuSS0HLp2myhsW9GlgQYwKU0vCUXJJPFR3AaPQdgCnVxEoCJyVRTPSSy0JR3HZLrIwyikcshhP0TaXiqMZbaOWQyiKXBFFYXSMWg6hKHIiisLYF7UcQlHkVBSFcRNqOYSiyIkoCqOe03IIRZFTURRGf6bVEIqilqIojPxMqyEURf3GURTGzKbVAIqifgUUhZG4aTWEoqjPBkVhpHNaDaAo6oai1KAojGJPqwEURX3eKAqjCdREE6h9FtZQfRRljnfKGAM1MQaCx3FpoqgORYHL7SMLt0rgiY/gCSTEEP2K6W7xMt0tXrDe4hwPeGMXOoo6pdtYm27xkrCpkAcKBN3Ev4Il35VCKkWmbYkrOaxCKckGPNwInlig0Pbx/JMKPs5Za1qUVDfWiK4Ei4W0prEEgTjXWKQJ9+ZiDWWWgBrCQJS/Xt4LvFIm70UzGkWtBlCPVAf7hzhZtzCc9KaF3S94uHzLc1OOsShqPQBx6BvEcQFxMIpIjWyOhfWR6j7b9ZERXWrkpiygQUSCeUODbmjQWmgQY0LVRHZaQIOw8oYGfRpoEGOh1UQ0C+gKkLexDzvtXJBmRLMauWEFBCwybU88FqQZ0axGalgN1tilAUc8s2iGmQb2LQdTDgoBLHeMj8Eih9eatDpuH8kXgTtMabMAVxfyhb33cTC16CiAiwVEv7jcxVVFw4hUaKPC6G6BOttLiffgpn4dJj9TyrPEe3AlurEt9IgbFTyndAun8YAB3dF1vHRBCoFRClcs19l50IJuwWTSUjQaFt1Y8qkk2q6EjqIIjYZ9MP5NdSXdlUxXCqkku9/K7jmZnkO0AGutwVt0IYkKLmVB69iaJBVYzak2IMM7rOltVxJdSVKJjwJmxiOHrzZtdhR0R9DhROLig4hESa9gyIJPCI4uF44ZyUgBDFfZ5ITzC4TDDD0YdZ2Y58JR1JGn0zE+Yj3ER6yX8hFrxkesh/iI9W+cj1gzPmI9wEesfwU+Ys34iPUQH7H+bPiINeMj1gN8xPrGR1wFiDE+Yo2ku9bmk1dM9YEr8s8vc2UYp68mTl+TveWAKjUahLoJcWdG1Acvrceb1rq712RMmXHw6rIj3UWnCLwUHI6tJn4dgZs3AEEKXVCBQAux6uDglsSvozYSeXhwnKckGo1HsVxX8l0ppBJiPgEsQo+dwR3uZFEI2qZEvLPFxINaGgcH6BAWMZKdMB8862TJVGxwyG7A77Bk7F58TmaDmTLdTFen0OfGcd/aaGppGNn4NRUMLoAQKONctZDmAlY0BtgUuFUKAjweFhWl4nO02wFNEOx2sO9dLHHMTiBeXwuO6MY6PhJOFwecb3Ld3nZ2Gw31dxluYhy+mjh8C2uHv60dNWsHM1gGiIr1jaj4EmxjRMUaqWMLYBvVfbZgG2PV1XYg9creUq9uYNuqYBtj/tV2KPXK3lKvPh2wjVEra2RDBjAkZ4/aPv0PHgaz0djRCBYR7qDwejwwQ9qLM3OMbllbsrfzUVWsjAYUHqY3aF75xuLZcn/ZOjOvkSHZuvyJPKw8td612Vj4mGBg8daZcYkMyfCJsq2jdZkid9SNVI11Kh74czp3o5tmtMsaiZGty/JsUqVExEqbUycqtPGyNePabJyQ0S1rZBy2gDbYTRuvBjn14k+Kcr6BxxygibxNZg4hazDES7OSh77ynW/8poXXdCHH9KUZB7FG8l3r858WK89a9yK17iWVWOuMylcjDy3clKI8HDNgrYv+sET9C/y4edkZq61G6lbr806m6zOnJydzyiRj1LCaqGFN9po4nahhW+RSxb1fysTmAWgHsnmoRNGquqtc8CgAGp6AXFAuQbrIBdcbQ2tOiMQdJvGzAlxEvB1U8l0ppBJdu92lFOCV3cTWAYIQWwdybyAzhydXsqWtwBPLLPqULTpMiKAj2mKI+BXmLJoVWCJqELB3PTkwrrFoCLSwzqMlQCUyTaDkuxLu2VCL5gCVBJX4V2FLH5HkFjIUTsSuZw2w1Q25VQvObaqjwXMGTKCjCCkW3eBBpYADa+MaeHmgmrG4auRZLXg6xOJ683R6+mOLOvHS5s13527m+818X9N8Z6y+GnlWS+Y7Uf7ezPdPwnxnjLkaeVYt2H2X8Tyso7aBjiqAHWovqBwYU6tGglUbckytVEfhRyfKTTKOVk08rPmAvhfnxztcXIrAHMBrkCkcrzkNumZUq5roVPNxfawbaLpI98GoUjUymAJnmIHDmew4gD8/pwL3iJtNC0siXiQORzttyJ9UYbyoGqlMbXD5XnS8pZy3frqwuNgPMyaQ1NTCDXe5fsz522DQzofse/FemOGA7KYWt/FML2g5DLVe/jZsgyXW1DabPOvTDXptArGBox9HhDJpLfJkIsC+hcF/OMVBBpN3tNJrvHoQrCkDxgyQGW8cpDR4uGcZg+oeM33b0Di8exlqHZijGwNsL7DvbbRRjWshbCAu3okt28imakQ2k8AnxB7Sa/FVZETY4Q4BfCWYnvhOvjX0ThC4wKAz3IkYaBEL9HLSu/hyKp5dopVQ4jehuxHpOmnXGPRHAu7e+OpKxNcE9wFeDnIsZONa+C1ch+jALIASf2O2nCFlqhHZ9AQf4htDoskpsmtiFPoUvo1hdjT1vFCnMDu+McwsfGN/HpPFwFhrogpa+JM1sQQq0BimBbfCYoiZVKC9jy8Jdgu+IxYgyQTi8K4FDmYAi1tYdKSBUqAS1wRbhpGstRQdwspl0SFGBqtD+SobqrtFh8aiQ4xIVofyVTax7rONbjCCWE0ksCKP7YQOhZSwbGNOmjQRH5EmJT8JlzKNYO9ED9d2KJ+8yIBhxKsamVGdyBNtJeLVzwIyyQIlTqCPKWYAJZgSgyCLQ4ZVKkXghX8VZqSEgett9In59KwBZn+EgXyAYOshkw4oQVXYjRcXA4pZJKF8FQ3V3SCTvv6Y9RPKV9FQ3Q0yuUEmq0EmjPZWh4GraKjyBpl8GpAJo5Q1bVuETKhuDDIxjMrUIPtoHjKhulHIxDACU0MEplnIhOomQyaGkZcaZBrNQyZUNwMyMYy+1BB9aR4yocoZkIlh9KOmNWXIhCpnQSaGsY2a1pYhE3PGNjoJMjGMdtQgUWgBMqHKWZCJYQSkhghIs5AJ1f3Ph0wM4z01xHuahUyo7lOHTAzjYjWiLUImVPdbhUwM44k1SJVagEyochFkYhgVqxHli2Ko7gaZjEAmhrHJGlG+KCbWfa6QiWEMs0YQXpFNE6LKiZBJB5RED9coz0Vg2y6xrkLifk6E7vIY6eLZBbgHhWxf1WEnlrAT+GaEnQg8WAA+mInUFSKSWKDXibfHKPS6QkRPnEnoCd0yY6OnTPAJlXxXCqmE8AmctCL4BNxlgk90x/sJrrGhE14m4igOJhfhKCLCKMrKiKPASkXoCeb6ODoHRalfLR69tPhTONjgbSogwQZYIHQTjVaNQ3sYaB8c2cMBSiGV0B7GWrSHW3exMjK7RQxcCWNObK5nDTCTRJSvbDnVbYI3NN/gVB3BKV4mOCXBTgo5M0A3Fm1/0I3d+IuxxowVUb7GhepuaEpff8wwEuVrXKjuhqbc0JS10BTDiHeNHLjGhSpvaMongaYYRglsiPY3j6ZIUYOmMJpXg+SgBTSFKGBH0RTGL2qkKqMpfX7RajSF8Ysa4hDNoylYNwdNYQShRpoBNEWamWgKYwM10g6gKVg5D01hxKBGugE0RbqZaAojCDXI6VlCU7ByHprCuEINsns6mT0bQJXIR5+4C4w4nTs16TA5Ig7aRnzBKDpUTkdSATyx6MDRiQINjjUeKYCrBAFVoFpCFby60AtbkpEfFNy3nLyqTfIqH+UEnx3pHuBCQ5SzjfCA9CaiPd5HgeFPpDg4k0CACKy6JLqSUXJghSU8JCQ4xF2sOIzI1CCXp8MLFjOCYxo/En/IKKcJUc5OsRiURTnhT8RdgYy/mNfvXYJwIGZKEoPsgFE4eH0uH1u/kNuzBEMouRiGYNyhRpU5AajuBkOMwRCMd9QgaWYBhqC6zxaGYHyihjhDZR6GUB1nNdzFhj6it5E+QQFjCuERCAgjf02wCY8QMvqIcL8H+Yi25U4iY+w0yKgJ7AJZYWwCJLRO146ocLp2xKMFB17ApPtHnDEL7x/B58Bsz906YggTsZFEQQL+ihgCnN4g/MHA6oa+hSAgAhwk2WjyDGHYOGSyglmDwwQuxQVrM142gh6QCh3npmwcGStWN44OtIFBjtMc/4bz/OJSEsP4TA1xlhZQhxN751kDbOtGAs0C6tDVIepwAhtoDW+NysIOoCazAXiFzsmJC3idkXYaVT7iT3U33KGvP2ZmEB9pHnfQ7Q13uOEOa+IOjM3VIGVpCXfAyhvu8GngDox81hD5rMueW6fKjiVSY2ADKOl0OnTMG2cmNdGHuuz1sVR5IoesaJ1Zl8hJqSE0nGu9R3Cp8bZY+qyxG944s8eQk1J7kW/c9EUfb50ZWMh1WPJttF3s2zAuRYP0hQXfRrubb1Ph2zAGSIOkiwXfhuo+W9+G8VEaZIwEIsCcO3Hio+z7NnDofuMj61nZuSFLVAeBlqjdeH0xF5glhZSNsKnkpDFt59wIFW9ZTNcDKE1OjvFgCbSQt0Mujk2XBHj4CGhuIsc9XRLgVfRwLKzraHFq+NRocrb4N5vMADQ7W5U8nFYlDwdLaPO08IHJw0HeTOzXIJElIKYqOjgiBqfBEVLJwYEYYojWKnk6kCuD+faUxI67YZCRVc4CJS6ylUL6OdA1RmOOZo+Ijg7IZh15aTJ6OoC0OWwOUucdNqda1zgcuDqExpG1iLWOSuzDMW5NE/kz837QifjyrAG21yELZMEPSnVqA9t0zGGH1fVyrcWXtZtguBvNWCYNUiQWfB6jbj4P93kYpaRBzseCz0N0kzef5+bzrOXzMIZRg4yYJZ+nYxi9+Tz/830exm1qkEHUqSx1FlV2jgOZHDC/YQ9zG3e56DNTG+lCnQr5xl3PcahonVmdyJzpdPaAH1VSGCZ0JEdAtFRsnRlqyCtZcktMWOyWMN5Kg+SMBbfEtje3pMItYfyWxpbv3Yl1n61bwsgYDVL4QQu5uWQ7MjEJHSSAPJKJwSvj3IUA53k2nqVsPN4zMwyRy8/l75U3fbLA8zOUF+xlsUMv0hS/4M02jDbQWB0v55BggfEBckqw6N8KgrR4UvL1g7EGGuT5AxM/B5pYOj8CAmOkxYdILQcuRoaT0DDWQBNZA7NUe1QZgGPaeGrcbTxMNmzc4WWweDigvdAQW8CR4c/pfEDfdvfHQVwcFxSRgmBexBxcQTm47SaAiYSeIRy9oBxcG6+PExsI1FMOrgou5uDqlIIrQkrBRbsIrUIq+a6EVo6MGbgackUpA1ekDFykCffUv4+Jt3hhBzqGuNyhYwhZs5R5izd6KPQVA3ILthtMEXBoGyuNabbxbz7VOjIkfANqjgWbCi4VfCqEWCCXGQoiFWQqqFRILZvUskktG2qZf022YdqB2+zMiXjxrAG2J9rybXNdXdXBZ4cXzwFhpwvE/8l7ZrujK19BR3U397GnP0ZFaVyZ6pnqbu7jzX1czX1kVKXGDVA9U+XNffw03EdGCmvcQBasm5cFyxhOjRvIgnVzs2AZC6pxQ1mwbm4WLGM8NW4oC9bNz4JlzKDGDWXBurlZsIwB0rihLFg3PwuW8REaZBN0Jg9RYCWcGgVXHS+UglX9dLoY1w3YmrpjxjIe7yJfFjB/E3NKMaNTwEYAThpdaYzHT/GgMQQANmALU8DFoNMKN2vBRT/QoMGDvc62VOJvxSwaJDQEvy73VkSKiMddY64snG8l1cGdN1F1GiWAo618njK6RIPchnBjX7Y38d+oQ/AB4sHsUR0yhkaDZIouf88SVdbokI4mXoYwGFWjQVJFSFbL9qbShWbSpdPtPulORbMHcRJcYoUnlYEP2CU8g8oMGsikqAD3GIIHF91tPEDd6qgocK1IUVQCWntluSHNmCANMjY6m09nJCbIM0iOzlRrbD2XhsD4Hw0yNTqbZWunyv9WFXk8JX+hIrZKIw2ks3nUkuglsyryWc+dkUoaJGR0+dsEqPK/U0U4FTKjiC39yLHo8pcWUGVWRU7kRxFb8JG3EEK12dbDf7eKdF5FbH1HMkSXv3KBKvMq0lkVMWpFg7yAzuWnceguVwS4EFWkfLxcEYgjiJ8i3ccJ0AvqygUR13GpIi0FHmWAdRygRlSVgaPFcF0HxoZJVeALgqo0utKgqlQCKga469VBUhXmLTjnu1KgEn9VtsgTrWH+jgaqRDAWzHvSKOyJJCJAIxbykTR+OAep33AqxPmuFKjEZWBLP3EJ+vxmHdT/FHWDalu4PmKKutkGQZyFPj+1sXJY3aBaSGSYom22iyDfnsvfbGGC+R+ibbRbJg9uttcgwZ/zeZuCuASHtI13zEwe3GxHQpI85wsrlfufom49R91s30JGNucLy6YfVbeeo262u4WhwGJYHlhk3GS2LQcWqe4WWBwJLFpGzmbbcmAx1n2ugUXLSOdsS7t31iOgyqmUMhg7kFbF2IGyXALJJKC9OwsfUCXFsESIMSzjEpGMj0EsvJMZw0SgaQpnuZToiBmAFM4CeAPDWXBhVQxnOZvCWdaneBa4x4gLCp8YeamEB6NCopTBv1FACy7VpYAWALIU0AIJYkCrUZJgdZkiW9qmyFYbushW4uaFU2UphVHF64yMTjwzWPICsyolXnZFpZjNqGiXb9Gvdh5RVzjBFTokPYh4hbBDgBtu/3WIcFNJdyXTlWz3C9eVfFcKseTbtiuJ2K9vZfe31IdvdVcy3XO2+5vrfuG7UnoPL9quhDxB3jdedH0I1dXqrtT1ISyV+JBUbEgOXNpkT0SEZw1o1kD50qaurioQ50UKxHlJJd6zYT2XL22iulsgrq8/y/RXvrSJ6m6BuFsgbq1AnGX0nLYduLSJKm+BuE8iEGcZSalFCs98II7qJgfiLGMFtaItBuKobkYgzjLCTYuEmF7k7cUzwk1IMOpucgXbI3PXqmXsmhapIb3Im4JC9jC5itaZoYlsil5kcWOq7ETvmkRjycOY440zkwF5Er3MomBUeRK9onVmTyC5Hzhb2dZNX3RJ+bNo02UyaS1jCrRI/OfzLDZUeS76aOtsQ0VSP5/nnKHKM9FV13g2CdgyhkCLjHc+zwtDleeij7bO5iwymvk8zwVVZrVu8o2z2YqkWj7PW0GVea3nW2cUXRYJtnCfyLUu+qLrscbZNEWqLS/z01RKJvpo62yaIssW2nC51s9zFrosSXRQPJIzg4OCJd4Lm69Is+VVfr7K03yFsP6kftjMRaItnz9PaPv0XV0w/rw/n++FTWGk2fL5c4JUeRbqz75XoR82mZFoy6v8ZJa9yQweLx00Bv8wt8gx1i6L7Fpe5SezZEGr8dbZZEYuLK/yk1mGvOjg0GYbZ5MZ+arwbt1M46otiF5qnbFfWWSb8io/mVWP5Boou9xGSxtvQwI7Cjw6v7HCN14FKvEO2QRHuimfP7lBlacEh3kdsjmPZEw+n95OlR2lIOAJ/pL/zzI+J4ukRT6ft06VJ07BYptsMiP3kM+nW1NlN4YA7KB1z7f53YYRGVmk0gHPMtt4fxuuaJ3NXOTZ8To//NV5yhG1bSDlHdvGEkArG99eKIhNYWTS8bowUn1vVZ3UD5vMyDjjdX4HUqH/IWynKpefbmwyI6GI1/kNSLfsQ4y1zuhJLJJaeJOfW1qURPf5xtnERVILb/LzSMui6IXW2SxFUgvIJsq2rnqRER+h9LNVAfqkVcHo7KrASDMs8lzgTWS5/jDUmbrp1qNJ/bHpjcwX3uRXcawEv18nOkd4T4C7NGJm3riuO5/vjk14JL7wpjDO7Fl33dtN6o6tAEgK4W1h4LnUHXAiIhxgVewOTr+Dy+KR4wxwPbcJHEJllBMWeRV8Pn3ORs4J6i0G8vCuuvru2IKAxAk+nz9HlQOfjuwgiAkAkOwhvMO7Y0sEHvf3+cQ2qhz4dOPdMTYBi+QAPp/ZRpVVb0fBf762MuYBi8wA3uZnnZG171bojC0peIze59PdqPJiUOL1IHjjyGm8ULfGpAQHbflaxs7rWzxB7fOZcFR5OT5n9sxWGTzhW4gvU+Wi+LJlJ4gtHRLOx5ex7hZfHosvs3PTls5N5+PLVPfZxpfZIXBraB/IW2p0CHxifBlDYhhfxpCYtBdfi+0NhvaG/D5rKD+9RfMz3vaq422vkJtIgWYVb3uVFlQCsV2Trn3Fg5F47yqAyBQDS3w6SFJDQbCQbi4JIoWZg+oufsVgtetKviuFVKLrXmGY0HWvMp2WtDAFAxKaAtklXfzqUnQZQocKj0EabdIVsK1Od5cETFBvcewbQ9d4uMYQvA6uSEssoqKxGNANAPxiQJdKGOaBi18dhWcNBqFbCspSxKjxTsR/MTbFPxbbWfGMeCn0ejpAfmqAHSq3eHK6EHpNdTWhV4OkTsi8kD8DadkZbYsnpwuhVzqifQu99vTHbAE8/l0IvVp1C73eQq9rhl4Z2YAlsoFC6BUrb6HXTyP0ypgeLJE55EOvtm9vn04hQVxUwWoKDHMb5IBwdPE7742Z29aWo7BYl+mkc6TGe2OWKFII2DZLiUqVXXgBBgcSTsD2bvEwmMV7GPhxRct4CSzSDEA2WbYTuogrNX7C98a7YXYacgrYNsvASpWnd5F4rs9WdMLsCzx4b0WWiNVGpoLU+IR3Yef5LZ3ZF1lKVqpM70J2RvChaxptLbdRFwObHdu2eNjXCpnvRPbQ1indsH0ZD/xaofLdnAfkIN98E+Bc66i+2OqL530t3BWb6wPd8dT2lK/CVgI6RSyynC9UCcMYbvTrQox4fvNcbbwLNv3pCLGw+S7sWRdncbjRTtisp/PDIj/rXS8MRy1KOIkE5FobfZHhwY4NWzo2LPKz3fXDcBWts0nuBrLrqXIZ+sGO8Vo/kF3vb9n1NegHO6ts/UB2vf+8s+vZAWiLR5R9/qQkVU5EP2gZN3BvVD67nh2Ktni+GG44yUrQZddrm5LqdboeBTAKhZniIYEdEPuJ96OYxB4MKPj/3967LretJNnC7+LzYybic8jEHdwR+wG+Z5iYcFAkJLGbItUk5G2f6X73EwVgrbpkZbFoy/syrV+kSKoA1CUvKzNXLuzBhstpYg+u+xntMI2h24U9eO4fPbmedbuwB8/ver5b4103n54OXVGMJ1pXTgb9TP27dEXp6gXZaMtiaYZSGgk8tzYx/VanvV5VYAE2o7STw2V6zk2q3rwLpzLQUX0qK7yvl+5ZRoKUd+tVB4u+mtViu/ShMpvKHPCZdrnuDXBuHDPjiM/9SiYZV61Q6GpEoXmU5q7qwkBBUN/d9om8855559dZg831WlMSFl4v0HZ9Itu8f882F5BHUGze9ols8/492/wd8nhTyCNgCWj7VLZ5/55t/teBPAKGhnYiO+jj5Aatw9BQgaGhWaxacw5mGpl+av04mQDVROVg2ljOoneuDja5q3Pp7UT0MFkP5jNTUVdPpPomllDf1S36cq0KWDJNIzRLYLdPhAp9nEBh/tI+QfaNL+0pm/anPELAAdFORAlt3USa2s7fMeUf0mVWwOVssESIpNqAe6GdeBBaw5YRuUTp9PM0d9ytFiWxqhunwadRdKZ0brbcVo3T8rOdOpL2uZ0+LTGHuf/5s96kAtx1VegXBgwO7URzoPmF6+qH/cKARqGdmRLifuG6fvcLM/zCgBainWkh4n7h/N2/rV8Y0Eq0E8VD38Wj4uv2O+icZw+hD1V+wCXRToQLfRePhc9cElMw3Dh65VI8PYlF4zJNpdOTYVKiHnjqFXzXTV7e3DdzLrY27GDd5BdWd1OVcTNJz3pxC8up+UwzCd6KbTMLts0s2DazYNtMNstsezbLbOAMVh1bZJZskVl+bEwsfwq0m7xAYwS3H1ujMu6qVQ9n0Hy22OvriWysmIjo2/VsX/Qf29kyLEzj4inhsDYG6np5109rblSEwdtMf03zrpyag9Yf++n+2kIcnsAWm1goeuPOSLK+FswXxV3fzQJ7vei3xjTzNAL3bqIyMuntUwMcc6PtdMDNjc7vzI22k6I0tzd9Ft5UYEZMVBV9nHlk/nI6huv14uwak3Za8tVEKz1R1jXQFaVp725SD6ZeSOZm+ruyMzdjbt8Uuhs/2HSKFlrPtw26ie6hj3MWzF8qt2WagP7gzXQB10Q3ESr0cfqC+Ut5M7F7aKu5PKabVmdJ7bx+N0VwN1N+3qqMGATzd3P7po+Th2ByTyetX5rrrCbTY4EpqrZazqxpiTczBE7vuskAMP/er6b2qzWU73rOOZl/t5DFdNXyhGXTfDTegGmTNZ07E2GppzPW3lUmLX1dzO/CByyDB5xyAs2Y67uiDh4Qna8Ncc2kp02DiUmOTX2ippbfzeIMFP18klbVekYOimqRZvWUvzN1nOpmJnTT+LxYpFndQppVEzt6PZ/GCWpYTx2CW/5nx3c9363xbhJIXTmLtWLOP+qnqxpkq576w1frRcDVxhbt8R/1JNaMfT8LOOM2Nv1kdDRzS99ZwJl9XS9er3mKqmo/9v16Ap+aj/16Nb8Lp7wKpnzujN1Ep7y+ccr/d830VFRVBnNuwoemm3I/A3lmztcF57yMz3kdzPmUir6OAsfzl9Mcw9EukalWd0BvMcel8c1n3WzMnhmznfpXT3rEaPMFs8UcT2jpjNkW6GldTivV8V3Pd2u8m5u6GWhqQW/R8W1t0KR2wqCMnTZlqHVzcrlxjYniGux2UrkmeWxCXKZE9xlyMUp1xlymdx2/7ed34Xw2wXy2OnY7f9kuzzuZdB8n82tlzM7JBC3LBZOcWKbM6q+aWVA2RihOeG5jpnLCcycroTcuZL88cHVX9MganvTiJCi7dRfedhvcdqfiufN30kycSWC6yumP7XbFNnfQVmtrQ4Z30AV30KsI7/zdO8Lrz18fzN9aRXjn794R3neE960Q3i6ghOhmSog4wjt/+Y7w/iUQ3i7g4ehmHo511JHvCq8m2AjniT/bLR+bi/FnpWrehJcL/IqJS2O9ihaPzV9OeqA06nyu1C1n0MqYFFNb1unN9Gwfp76uazNvxta6a5jUU05pMf3iw853a+Afc7eLDzsx7AvPtQu4PrqJnmO9ipafzV9+3/0Wk0FbO3c+48fNhAvfcL+BjT0RflRTcNtcObjfml223BIv4qC2ChKAaHi1wLqcGECqyQaLXK1Z2OaNWp2uOlk207k1u3x+3HpRS+YsGQO6X27MhPkXrud+xjiNGT8pYSNdphNiTt6EFJsTP6GAhii1mEB3Y0+ZKS3vTKulakLhTG6Rqbio7tYG+Zzg/HaCPs29zCBov9xVZZzP+XeTg9quQhkZ0J90M8NJZf71bhWKyBaBBoP0TA/YrBd21Qnf7WYZM1uJ7eJOGwN2AreKiTjW3JnRUrOzELZt6ALClG7iOCmq9mPVGubs4IY6bN26mO5jNSVgTPcx2eIz92Flp36SvK2xPie6125Bg9t+2d4T5DstrrnraTGqYja5zOmYHqhbtbOlZardJv+xmCgXJ97VFTyNbgJ91visXvHdFImZTk3Jz6plYc1JMhaVOCGBITqRs8QB+/m7d8D+CmDfBfw23URJEwfsl+/+XQH7LmDr6SZ+nfUqWl88fzlJSkMmwUSupbl4s3hipqvc4omt4As2Cw3olOUV3EJA6dNNLDzrVRwSmL6cIYFqDUwAKV3N0gy+nWJm07no0exv3SGRyzzdAgpM8MAkycoWoIAxCmdQYMLk2wU2XECB6V3Pd2u8ayf72gQOZnhgjYbwk186gwJGik9ugfldvZptx2JJ3zK0r0v6Vhhw7QJeom6mHlKc/LIUCVrTkhVwn4z4/s6ULSU9qwuojbqZvSjuzpeVp+SRp2V1OxO2lOSsLqA46iYqIsV1nxmO3l13b/4CK2kiWVJc9+m7d9f93XV/M9c9oPTqZtYuxXWfvnx33f8arntAotZNvGfrVTQle/5y2iLrfvG6mrKfu36Z8MIsSMqlRH3KxuoXrT+L4bqY5aYJ2K+NVDSOmNl+xqMqFx0+pVZP/lZRzmlRxZS0PQmbu9r83+SDmcCLidU3k0NezgqPfpk5ELMPVpoN0xnFWJUf62IqcTFBvpLvqil5wbzrVstnJlegmYwhIwfxruO7nu/WeGfqtsy7cIYDX2HifotnXs3ficyrWc22auZVF9DJdRMDXDzzav5uUq7VcgrN1rBGxrS6JstqUlqmAKjAm3kHtQvkYMTPBDTYarTSHIspu2q9DoMeAStdN/HIaaBCtfpBUCFgqesmEjkNVKiK/92gQsCg180keXFQYf7u54IKAcFeN7HjaaBCVf27gAoBSWBX6VmA83fvoMI1UCHgSOwqPQtw+e7fFlQIGB+7iaPR9LaLGQIVswBNXzOSlsxieVU47CWz97kWFmVAAdlVKWBxpoA03F3rZQtP5enT8V5yg9v1bD2b5mNzInBrmj4ZMty7dWVM9Clvqfm4LibmvTDHISCL7CZSR1M0Fn38frmfwow/CZlFRK7aejkAhoJsNeceNZOdXt0ZF3Y18YIbUMH8f73qYZpUxoIwjTJNToTB89vpNBkqm+6uLM27icIrzKLsAvrJbmKMXMeZxOcv/zR3HpgEExvlOk5TPn9prmxIbyZbY36AKWdzssDryfCu7ox8nR9gPe2naeOs1svt1utmuV0j0OZbM1LGKND+rghJDbqAIrObWC3XcULy+Uts1Bl7KrhPzT3V886d7mlttMR0T+Ywz/fUleV0T91dEc5WQKfZTQSY6zh3+fzldJFqEVZttSjEwiTYT6Smxk8wt9JOatu0X2snh2Newz604ALGzW5ixFzH+c3nL+eh2/m6xvGyDXTn69b1erpaZ9oahZcL1OFEiLmOE57PX4rL2Yu0VbuEGdXLBapiIsRcxynQ5y/l000L3EzgobhweLlA3E6EmOs4J/r85Y89XSBuJ0bMdZwlff6ynNIhq+msmVS4yZZo14syLNbYVqtyTl+dwLKpYYPJ351uqBGZTwsR539//LA/fhnO47D7/4+74euHX/7rvz58+Pg/Hz7v5z/r6uN0ox9++Z9/fcSNffjlfz408yfr+aVo59dytbxWy2s/vzZ4XX7f1fNrv/zfulvGWVV4g0/KBm9avMFFqwJv8OMab5oaN4YfdyXeLPdSrHvcNO56tVyrLPgGvylrPFmJN8vIZY0fN8vVyxb/hYuWPSdk+apaFXizPFdV4JOSb2q8Wa5VNRXe4L9a/LjjG/xXh/9al3iz3GqNR66LGm+Wm6/L5cd1ha8wvXVd4c1y9Rr3UzcYGUtdtxinw28w8/W6wBtcYr3calOUeLMM2GBPNVWFN8vVm7rAm+UOmwY/xv00LT5p8RssSotJaLHrTD+W+Q2mt8WONXxB85se/4U1bbGmLR6nxX7uMLJJ3VzeLDdmcjWWN8u/d1j3Dlu9m5fgXx95cqc/zVFeuafUhGbixxQHsV8eA3fIA8czxK3K08C9z32NJ7Z7ljsUx6KqxA7lfuTu417jzuL24WbBHXOPNJgwuzW4EZpwke2S2gXEVziddgFzlmtenOhSFO5aVEWnrEVf6iP8938+jePL5ZdPn3abcTOeN9u/D+e7/TA+3J3Oj592p+2np/H58Gl33jyM/uXWN1+u8PdOeW3vQEj/tL3DN83b7B27Zb5vp+BNJ476j+2UwkCQztrVvbZ2a3WI3jv5VbtShliroqP0l1/T8Fh+6JWftvw/KijwFcRwRHRArjcr6pkfEyaRDVH+yM4o27vC5F85K1tpMr3HQuijdcEm0YZKbJJciXR+2FZtUfyfy7Ad96eje922qZXrLusZu3Dl705thN9NOP2xouiNBE9lLubOa6dpDcxr/jxq17tlAwW3Z4L28dsrivX1h506xrnbUBNxb79w+XIheudvcejaVntaPORyl9E7eHx58URHqZoXV6WQJ84MFKgsKdwnzE+4AzGDdivC/bBOHX7sbE44bDzt+HfHT5PnfyUEAT6xEgGmrhUN+I2VEXDGrLDAxrJSA5/YXQiXKWc7widsKjpIcIe+U8TAL8ryXvAbOi0V10+V7fWdfzDXml7ic4fnSBnVH9eULMbHXZ5IHeUNzp+pnPyui5f+I2gSMCE+plHe4hHUdUlf/C2kl7p0N24JbzZNwqUyqm4B1W8yl12hKp/UpT0ryJSYKijcLA2UMd7i9kttPZKX9kR/V6ljzIJKGeNNbl87jMlLN/7taw79Il6VMd7i9itNlycv3XpjNOrttwlB3b7F7Tfq7acu7fnIfaGN0abEafcWYrBovuPSTe/tnkZF0CPex1VfQ7li716x7LUrdkQc1bFumLam7JvYtJkQVsq3+OHr1s0qrrU0C3OxWmIXbnxvU1vw272i/63epXmjbsXGt8OK/hq0uEyEMtaNHmR8M6aR8R+/ctt266gls9KOQfKhfSuw0yZwWUNljDe4fUO0cPulS1/4FaooKukNLa8MOi2vCAxhyyPgRLAPJ0C9l9rHFAwbxO3iob4JxwivWammQ69esvUlkqb93iVSCgJqfUFUqZuZuAGmJqFo2zeRSFWnIvZvdGVjgsSu3NSqYs56+tKf1EYXrTq+NI3yFs/Sa7OYvHgVABClJp+WY6CO8gaP0JaacL9y8dIfRfNwlgOsjvImj6CZXFcu7rm3pqRMGWWti0kzyls8gopLJi8eIFmmz6mCbnYqSDGN8gYSpe40s/XKxb2NZHLBlFGqhJy9ESXRHqFW5y91cd/TWmkrmQhUtLf56crtm04L33FpT9XXa1XVr1Rfv73NT9dmf636PYlLr5qbzORV42uPtWoer3TpV7e3eIrm534wQ7smzI5eX63GGDIesKdCSzoy1k6dZ1wnQVVAMMgS5nbnm4rqHnw3FROmYu9PoipD3icxNYl9c4saMD/3DuZKDTgsN9qrcmjtr9/bxbX/ndZv7but6izqIYt1Ud9ijpmfe6Cl7p2rInnjSVJNji5zuGyjZRMsS48wMjJ5sQGwIxBC5jbAMi4TihA4xrHZy/yEacwrvEFmsk1sRkKyTWxmxBvjRDKcca1IqjO+6vDjSM4zguHYJrHkZ8wL07kjWdCMrot0aJsFjWvZdGiM03NqZV40zhNurMJkVkjeiqVM48eY1VjuNMZBbnAsiRrjYOpi2dQ4+shejqVVY8+URLpkfjV+QxSMMJjNr2ZaNcax+dWQLsyvTqXEMfWaCBryCFJJcszKxlfMyo6kIeDM1fgkkqcNsSfztLEEsTxtCkKRp91CEEbytPkJ/t0mbDPlgcIykcaHrGzMTyyFG/9eUuj6udxGauC/ahVs2dxf/EiUZiYmIlGb+8vny3DcfR73z4Ovba25/6GHTrCDKoOdDq+jN06ph/eCco8eKaRIQGqoyFSFsrm/mLsPb75s1YoU1U7e3F+MMvLypmvVZWOhyVLlEB1x+7Qfvng3VqgoBuQpxTITmpjHRBiSWUtMVoLyt6lJzEhiIhLzj3i6mW3EJCP82GbuVPrW2Y77L/vxm28UaM7TWrXNNrvNy7j356lX/ZQWmqNNTPxu5016rRmO+qRT3dZyGapwPSBo7MLQGOAKIVZh08mY/ZWzZj3Vib54DHcwQ6wXMprZXzh9HcbJWvLdbvv0evy756MXdnbtg4eXvi47drvBWzU1UEsrZZlHZgCy9Au2Dg2jJrR1rEFDq6UShkgvLAmaC7QJqPip3anCqaepjKmDoVatpqQWpM7DbVh9Ru3V04xnnqsKJmx2u/04PPsr1jorxo3J/ciakKsr9rf9OA5nb9UcJw17K2ekF+MG+LK3tCIA5zFnpPOwHfYvY6gSOgfWwTHIG+7ldPZvzKmjcuTD2j+GeWNfPA3elCo606he2Wa3u1zOWx+qWzsLvMq+n8vrvXzcrl45E9dkDvZw7z2YE6L+UOZaEw/B3irU0BTkOG3kMEAcDQgbiw4HCTJQ1Qd00agYmGcsNUS4JxxVkdAZKI+VysPqDDiftykP/2S7WmRFFwRTVtLh4CSysjNUMF3BN0KLwORPqZPDwZMdae8c12K0H9WKPm6iXOi03YyBglETJhfjOz7S5eTtySSkEB3BQ9VLtYgBe5mWJn3dlMl59C0f7QmTgAd2rwZ80KT54ClglnHTH1w2QFDGnQRAJO5BuOP7UI4EuKFjGm8PZegIRgqm0NGJFCiRwCJ0CCKBPLwV4JBAFRLQwZ8OKJD4QE5BdwINUECA+Pn23C3Vt0a9GzZ/cIKhaXAmcJvOQaTiw0GsaFXz2OE3PHbAw3jaSsyEPWQUH/ZsUd/hSLW07XmAeMs8QNjd9tzAXrfHBW/sKcFv7OHAZuSZKPmGGx+f2BOAk2T3O5PPuLtp7nObQ0Ta3U0HgI4Z9jv3cse9zC2Mfcqdi9twNix+gxnr8GO7B7EEy9aL7rig1GtdOcZvgY3qFd/pu/fl5bDfbkRgvNKznwkB6/avGdTX7J2a47tsT0wEtuuK2gaapOJOBiSP9S1JY2IjAPiEFhfsxgq/qfAkVUdhzOxGGDS4aM2ER4ixek0Bie2B89jAKmtaeox401BW4ROAax1LJCvdanp5OfjojgrlzZ9kBk4Ce6Gj8Hm3C97tgv/532cXvJnyP/sgt16vFuRLW88BN2nDOKUOiJ/Pm2++r6Jm41zzVcwpV7PMpgvdvz48BO6+mvbyjgBqCKDZP9haEEROKIkemS7z7VqMp+NpN8h1WTspqRjzOpjjjnsZz/vjoz9m647Z5I65/7LxIIRezY9zipIxCwF4Eb2Eh8+pNCqsNF/2DUzB4ByGMJO1u625TW2Gr2hlw1qxNjVNaVrQNJx7HkQIe1rHNIppC1Pu0vK1Bi85vLC7aeem4sdCzESixb4Eipeo4ysaxSTboQlMyxeP7ERnKWV1mXq5nLb7EBqqag2V6fVo7DJSYNyWlZY26eMk0SE9ILZVy3yWDUIvzN+FpD9YJbYdRCq3HawXuf8KZDTYjVjIHUmOP94N/kvs0RKS0/Hp5K6FGWN9OrmPGeHEjiRmyJ1dCZ8OI0e2OPcxN+t37kh6XlwT2AaVrhZfd3sPa6xUwNLPTHWI3FQc835z8QPTaoUA1hZzWtjEN8LBqvd4711EzeYNFTrMYyxskClgU6n+Ogo/IiQTslEXibqZ0MCub+DtNdgXTQ/7lwYg47Owvhv4ow18xGZNQ/gWA0Sv/LwfBr+sQg3yxyVZRHD9SdTk7yA6dB12PzycfNeg1Q7zMirOGwxn4m7+uWuEwrAHjpqDJ08eQeKDPItEVXgoiQ/ydBIf5DElPojzavFBHlzig8yEoS7hUSY+iBNsdQkPN/FBnnJ53IkP8txzQzBGRXyQkoD4IH0A6QwIr8Digzz3xAcpAEKf1sEHeXCJD/IEEx/kUSZQyDNNfFB1GO6Hx31AzqJSS0Ec1Ui2a1Z8Q8IivkGGc0ccNKFmHvfHz5fhH96N9Jp4SSVW65wT98PBpHN5HkGl8mImVO/eN+tUA9Eh4sX9Yr4YamjXXDS4NTr7zv1+9O5+vdIunRLi+/HLsB1Pnk/Y973jv63yfML7w2nrpRLVlRrgF4n4PytLXr1R3xNU1z1BWnh/8KD0RqfXS9zKaedhMq1aE1ezep5FQrYOgHAwM1HJ20B9owJD9+dh46+bWjKVkyZ57x+HVkW1Mpjp7sdf/dpdlWZk2TbaIF7dQa9WYyfqru7HXwN6KXXL6AUT9+OvPsmTyhucqCe7H3/1qZbUNKME39H9+GtAeKSm2OqsQ/fjr355nJrRk5LD469eTVuncqkl8p4lrKXNiZ8qsYgPJdIR+jFhqYgS+YCGi5SIMEIlQyJMi0nERhi8/b4gSRj7+s6wiYyYfV8ghXE2G1FhTOmW0Aqjc6kYCyN4iRIRxPRSURdmYyXCLxgwVSICdZcqERHxw6wQDa51W6wGv0kFbXB2EtEbG8bUwziMcCbiOS294ERgRwDqjPAEWeXmDX5T8zewFGBNtHCQWrg6Yc2C1yRAONGRIBIGTGWZQBQlwkqF9MpFhQl2y/WIQVyAni9+nqhKRmltLWziFhKhxY22pa40/Bi0WlA9f5IZg4b8CSRyWLR3Y0ya3vF7cPrPF5yOtCN5j1K/fZT6/ptfR+aIhQ9FpCAAH3otdrAXoalLnXLo/tsQKR7ovQz4vBIUjrR7ffY9tZWbvs5buTaaXwinlktfCx5SAsEaS6CgSHiPRW0ELlrQGiPkBvFgkVLKCRm1kZl4PPoEUZmUTqSNB53gvsjEK3isGbURSFvDN3+ZwGSL22gRqLL+t40Q8agRe2NdFsP3icMwDofh+Dg++cEdt5QmE5z5Ng6nh4eLf65Mt/L3nIwfr8oys+uX/qi1u/MnmF6eb19oaAi+1YLYXrg17CksE6F+Rou/C/Nn2JjFMBlRAEaUnToZEReglrAFMzJSQPNOhHxs7IBOpIgG6dEEJ0TNFE8RX7BB60TEgWFsJoaKGIQNbCeiEmExbyROweC3re0RkQuGw221j4xlMED+F45uOKI2UbwvIiAM2Nu6Jj8mwhB+XnODrY+aq6felhKohtZ2czgEaVRqobOPXsHPwDkM4Cs6SdhRUKOZVXX0ijGJSnVdCH85skfiXxL2otfFr5iFKPEvul961V6qLaQEwqjv1Fo/x2mj6UXxhq9sA5IEWJZRIZhoOFlLgSfhM/p8+CpRaRjB0ej8UfJJHI3uICWfxNHoDlLySRwN4+hVjRJZs76jLHiMQGzMGhK1kCms7Xq9ZBJ9o+uZwNp0iC2FrCUAtQSOloDPhMdpsa0EpKUjWdbj1OtJI9gWk6lYy0AB7INccfH5PJw3fjDXSUJdIy8rbSZv/XLOWq24DCNhyUSZ7eZ4PPnomspEEmFaiI13Ou63fq5so3btKHXC7G2QN1arOWk3PvDFt4d7LTL97mfc4mdsNz5IW6tByJxI7dazXgq1YSDb7qm5jVs/XUll9nPafyJTC6rcBu45VzqR7fZpc3wMdpiaTPm+w27ZYU+Dn8Shpv+8z+tt8xry7KjVN07/cdqFDAHA+MONlrAGSlgDJc2UjLbKMvGoXdPMhxa3qUiKq6U+sJ9cpdK3WyyUgCfhTYtqMjBCs5koCb6i00zokoglgUpOBmFJopEEIQXkKAFGi+zpZNXTHIzfXnwuLCeHBdMeeovKEkSvcdj4rDNqUdf8CXwgTGvgHNoGjHTDRDjMVoyzREG4RjZoRfkQ+iSOm0HMhO6BCBLZ4m0ZAILtHrG5RQTHFmYzD5GWMY6AtXpppGIh9Mrq7WHYeBkoZaVnCCUHGb6Ow/GyPx0v/nAOTxFHuGLOHk5Hvy7AIRXEVgi3QGTp/yQr/nuur5v7+T5PN52D03EIaGtUFsH3mb1lZqc59Jjf3LBorkw47YZP59GngSg01eyzeGrjeY5EqzZASnTXML8Ke+aoZJ1Z5sLPMg5k2M8J8vmxPeVBX06vPq9TrTpMbH3tcEkD8rTpKQIxrXToYLl8JMa+WrlRRbmZcMXrw/7nl/3wm++nXiFevT7m3eMwzu98a6dQW0znjhymB9ROgxtnKq+dqueX1zAIeGN98Xs9lLJax+2wOUyfeZCSGm2BuG7r1KAP+0cfQFCXS8873p4MDiEYcNTK8lIvetmejpfTYbg7nB7/83A+DJMVuBsWxkqz/cen/fEYhIhatYw4Bfw4l7rshos9YdJrq9V2WckDdvSBqqpWFQylWAZgZYY9v4bVKoWDLn6waXwQmCTWhwQnV75NTCKKgTgA2eotAT1Z5kklT754BLwt8zuDbIiK1SzDRESowXltEGFroIdaFga11DoMahJ+zYS0T8dxsw8aZKpth/TZS0zaG81V6hm1xwqOg7pZg9ioTAhlkJFxQ4YLGfhjUI/hOZF3aaNpDJkxLsbgFwNAjFUxDiUjSizoZZDIJiFiA3GXMLjDUA4DN0wMZORFT/pbJjeojdPmVq+NM+MEYru8QjqFBZpflPRfLFGIQcKPCNJmtAINJzDN/ZCo0GC+TE6pBsHPnJoNkVOTilkz3SanikPk3aTKOZiAk1PXITJxcgo8bG5OotJDZOskSj4iaTuJ2g+Rv5MoAokk8iSqQURGT6osRIDVqfoQkeOTKhSh5XZLxYhN/0mUjoiEoFRcOwTYk8UkAoRPxL5lhlEqGi6Sj1Lx8ZwcbT1lKRVDF9lMqai6SHRKVYzI/KZE6YhIdNJqSBKS3K+abbWoboK72Qx03t+/joHmLtR2vXrT7mmskx8FVw3NnH6329Pxy+DzpVeqgc1lyKLoQugE57BjDqctUkkYvufzcHk5HXfBrFVq/UyfHOz1xc8DVuPI71G+m6J8p9dD0KtEbQGw3DDM4Z9F96Lcpm+UVZ1a8S2xNhJQ9TTDsEt6msz4r98RmLsRhns9Bv0I2pUmOpy0BShzqKaq4ldwcERqQ4XdXkFAVNiBFQRERXJHghdMiCDJAd1DmFEtIZYgacK8wTiweltYji2UeYsz0uoN96aJCqWOSnXwx0KzWTFZj1SkV/sH2ypHLFGrU15uz8MmKA9SM55iqZiw30SFi6xnyYq9T7fjA0jk+RCZCJ3bGsyO6uWkXbuv3Ls4vx7nepbIXdTuXUQKy37kLo6b7d9F3xw3EL+sQXqpouMHzVqKTlOlJXEA7OjUmH7sVxdN+iCvz6+HTdiJq1aDMyEnS3zM8znw51XN4XvwwlWHiKa/LRxv6WZLX9raGjKlW1gfCd4C2iOC+ztioUi+AckuILkEJHOA5AmQrAAJDgDprVmTJ6zmj9TuRyr16TjhK1GFH6m5l3Xwsuo9UuPuG1Np32PedT55eaGHLOM77d1kVSb3Mp48ubhWiwJTGb//DAikNG8u7KoRG8x0EvajByrTJABCVT6bscJw5Fpt8xPz5RKem+pj4aoq6bIbuV+udRXJt4PGGJddJV5LJR4d8P70xZ9nTTn0asbSbjAJAJ6yUk2fTl+l4WEfZo2omoWKVE8n2A0Hn+y8rtUwFvUe7OwCNiddHYdwjMgPDlvJN7CzIdJaACzfQzWiPNUQtGOtNClYq4bBPAqTzLzhHNrYD5mN73ZmGL9taLe+0ro2zh0COVYkbt3br526RRwHGSvHiPU6Nfxn2QOxa9QyPJ3Vygw1jofPp/Pnp4M/mkognRhtbwRIYHkVarDrPa3qlrSq3f6y3Zz9jjNrVX3ZDcw3+nk9nH2EoXMqkmpImUWmBMeX31L0QFI0Ld/oGvRwPvuel0/25hBgWH63K+dcDBkmznROvSruMmtYpVGle5OtdAjjo13OvtjPpaCMjubzdXfayf3zox67k5+aVKgWUCg7cPilDGFCGoUJs5akVKGBTfECK9oGJHHplMDh7TAkSCOcIghAnA3u4TdWKOE3NkyHAJeNxTEfigE3fPITBZeQYMyFsKIMFmlCpp2Gy/E//POkWmXzJ0GoXQuthyF13X/PoTZMRMdlLDyDvzAW585hK5QxbB0HSBFqCWTA7koBEdjtKbACu08FaGA3rEAP7M4VMILdwjqeYDd1Igwso78h1ODEegXmYCO7EnxgHFegEDZqG8IRzkkS3rCNyAr/2J42gVTYaKuELChvBXZhI6m6RxJUYrQq8IwtvWyu9+TQVHLo7rx58ENZakKwXr66Ox/8tXEIgj/UrUSGtUESJlfhVe9k+udiSGFyFY7b30T6N0aHffUhYZU+eJn9+QUKIWAXEYCunmOVgfAmqG4l02IOsa1kWsyhsZVMizeR1lqkWOQrWahQVwwJQtoED22CfjbBOptDNpvDMWuhS5kNRDBT5v4QjJYsF1QMMq+H8LTM4qEakDk7BKxlhg6BU5mPQwhbZt9QMchcG1rk1zNrwiNdurIHh2DZWMuw7N3DWpCKxhK9GhpC3N3YpywixnqWSDCoVjROoBwaGh74hNldeNwa0r3G1NY4/TXTG6DPGnb/sf4s0DFIiJatT3tONsRLKR1BThNzlnHC/WnDE4jWR848cghMKHadM7PhFBdrGsmYa2pvO+mULSzhxm/sMtCy5HrgLNuFwSd2hZhrzaVipJFrBkliF49p2HIVmYzM5aT9x3WFTLALzNpyrjTsNi45KaUiWAY3AU067AY8l7MtaCrgN2vaDNwodJfIIqO7S68vnyPFRZ2uGhNY3evcFTmwKDRAqW45pbU6pTYlCA+uJ/fg+gG02660uLTNbknkoGRkiuxez+Kq3VrzOh0gDdfAirU4jq2e/j9stj4nplpsHUoDKzxDMehUlKs7Zdg+eaBQrybgtQBqWr0n3LD164Yap/KstCm3gHVkIdFHZ/Us7sEEJJGJZLusMP7ALCNmEIlUIt1yHrZH3ebtnb5VTmuNtHEqRgz1Y985Jez21q6OKiseG4fbBPOYP1J4X60b0quaPKdh2AZ3pO2mG1PQwoSzG5PJ/NSx6I0/PAzbMLmkefdpF9X1Qz7tcBi249kwfPn8XmpGmd5ydDj4/F5rNWsiEdsfnjf7gGrMyZyyV7+y1Z9fxqD/tBa/0pOahuPm/hC0zdaOjM9vqY+284dTc9qJpaWHOx0HQweskHg46MRyg9cnbhp2/O00sQwr43peQ6YkO8rIvbo71Py6eRQv6FKpAVO9UmzwK+ILtYsabCLZBpchCpIWs7MtbQAyCsMStfzBpAQm7y/JfcnguybCSjyVTjK2B0zSGke+WfENZAg7MuKeGwilBv68k2AQphNYFtuEZXHcyQZ6mnj+vgZ6w/H0+ugbYSqPQRBcuBJUyOrOkRUxyIgP5EQDcrD/COQvkP4IwC9xfRkvFyh+BLPPgeolQi+DVTJqJWD4CPouQPcI1h5C7BFkPQDU47tuPO/9YGat9j0MOTKiA76cfFeiUlvW6flGw+jp6lrV1Tll7sNX48H5bSUbtd9EglJg+PpyHi6XsBm6yuinJnkNX33DXp3wBFUCrHqfEk7NysLmKFjsK3pGOjYxzpVtLMFpxjGw7L0Q0IQ3WBmGXesAHvyEbjqO5ToUmo7jzpptIU8tOsJybsIkJAYgXoJPLHAiskFgqoZpIU53TIIrzVqiLDioFm4RuEvER8QnFokhhsoDj3EifTLwY8yYkxWK4HaEzp1goAL2pLbdnNc1u5QX6Qv2TsoarnTdgtLHDr3Dtdtzxt5u3vjStW6dLDKn2jKP/kMyi8zvQqbCtlGbkeYOLso8+s7FBIhi3TIPwvF2hAhO7o1Dyid3OqzUkdyj/BkwQ98dwgCjyrV7bdwwY7NQWbLYLxaCi3DS8gohA4kCmUW5BNkDQQNhsryyFhGyBYJkeSWIt7yyngpSBUIFMmV+hdnc6xpbca1UJhzPc4s0PqBo92cCFlRPcCLUQGUCKPw6DuejT9Hdq6q3JQ2y7vs+bESbZpVD1op1aJcW2iXvUvuDb2JdYe0I7HtYXdeShwQLS1ZbPsaIE4waCSKN0Cd478b3rx/vxvfehO9nNuF7uPd8gU6zmsteRQIftnufJ0EtU8zgSXgYht39xicKr1Sm8IKdaZhygWvY2GdDXxsnjbVYNiyKr7h9IS+qQvgEkO4VlrDCRqwgdyoMWCGoX7MUt+AsYGsyUIqVq/WAIiYoEnSo3BhPk2cA+cOJfoadC8dmRkQe9oNPVVCqTh3dkZ9EURDl1NQd9od90Kq2VnuXR3zGjoIh40qHjc8utlLDMxSj+lh7n3LVNTHXeUjww3OwlVRMIOcMP4+/Fv42UlnheE50e8cMV3o2rsr0VelhJTNK5Y2ixnUT1V9mFK+7faM2M14kiDZK74+iEtvqwZwH32SrOpWvlEUEBK1kNQFbqv68sgIbBL/Gq/G9vaYfTufnjU8Kp6JboXeRWPTzZhumH9R6GIGSoaHNGFb9Fdj2BTCNpuabxH345bQq+TXO1HJZcqdkIISPGz8LdH3dDwiq6/KyLB6H43AOwpAqDWBJqsuE7qQXksCLmMuDO3QqHq7n8iz3nEhLcNXlch9XRW90VJma0LvghizrSoysWwxt7eIbme2Ko6MK5KT2opE33a+8z/XKhdDKvKiwN5oAzdyk6S77/k6P583LU7Bt1ULZslEh60f/AUtNicC8pa8JSQxBvLxSiy6vTESAxF1eGS/EycDuh2hdJMby//CZnJbSEG6S3hTipoCgLtiRmurGdn2lbMQnVlrS12f5NPOyWUdNn5tVRfixFa0Y2bJJMUqIH69DPeh0mKXvjkmHy1VCtVldaVPB6NbzDcaxPbOZuYl/tz13+An+nd4LvMwSzkYJf9HpvS1SyPHIdGzKNV0dqnW4Q3xk28SWyAHTzLHV8KQVZLK1Cmx/W+5PhlGYY8QIC1PJ8O+WwopZg3S9cFHsn6omXIH/sp1zCWBgnJafYBzsKGvA2Ka6GAfuuHXqSEvMrKA+tH+cxrtAKTCZNc6O9Qmxx+oV9RpRE/yX7dJLHAXj0G+khseuqzHz1gyrJOjCNzQQKDiYt8TiUOIx0MUEZliQjcNYY8ac3AWm8zPaBS8OQqZBpKYBbOYkOjDln4Ew/BibrcG0NJgWJyuCZQHEogn54BNriTFGRuwHn9jQGLEfpmoxmM3Ei5/l3DpBN+JM+ATz41STkxeBBhvzY2mwydQQ/BhT52SfSiSYADB+bCnOCNLjx5hVh8OCqaPMEmbEkGgZwX2mGzLLkDFEZhnixzbJmOFFqkACBPh3G0ME2IbJ7JgjRM/F9n2mLqXnAofFOjXQs6zeqFUv+nEYN/eXy3DcjftnhVTDsZgXfybDiBnvh8f9MUzhWbthP+5PHkAepS4vgGkusx8lm0xbu+lkETI2bbDT7ps/jnu/3LbrwluErJFfz5cxQjXSOw1LcXjyx4tkrPcukU4baYOiDfhtHGZqO88BdaOd8z+/J8HGkmCvzq/sTNGs3O5HZai6FiWUNbbkQ3WO7J+O3eH684T8gYWDXH2ocj3IcWJRuuyP2+GwuYwBs4aTJQWTP2/MLxGKnc4TkdmHbjd8GcfD6fx0ejnsn/2Mqc7tCtJkZhqYMWc6mHNQwdO76f2Lus4aDuVAsfqi1qU46bPX1ynxifHYFu5iw2BalGvO8MP2uB2iAzuylh5BGylPUQceV1HiXfeGoX3b/D01bMciOq5bkQGhulgiWeMed0IBu4gJ7UIavjRhb5jt4+7y7TIOz4KzrHc7PrZltm4DSPW0f3waLuNl+MfrcNwOx9fn+3CCGneC8pKScAHJHeaRG9081vPm5UV0c3HFwu23F6TIuxX4N02myeM4R9IvXOumzRerQKoPpyCO1bgiNTM0+DiMj5uXqGXk1kllw4bTaFG7qHM3Y/aZf3z2ew/1LknU4pzkjGM3s9zHtVs3twBSOWMaRmDfpCjcSCphHqIFffYelDqubt3+epl8VhxpppDc3F9Oh9dxeN583T+/RiRG65zBtvm+a+w2L2FhV9+44+YfHndc/Z5dOD6zmCgY+3h63h83h8jYpXvf2YLfHVsYAu46tnX2uZrH9HvWr10W0CL70WdrzDicl3ETNC90n7jIpC4xQ54uF2nyuEf+hts7XWKtGjv3lC5wy43DRY0SV4fBd2nzHeDnzfnv/pClZ49k3+fz5mvEsm0718S74a6+Jixbl2cvM3fAjDlsjjHbe+XeYfZ+NqMlbtHV3Ov8xx52+80loFRvXC/aAutwwizGTbiZwHEvENt8yOF5uFw2j0OYG9y4Wt8C/0xJKgQcTmC7F4hyvlH3vN/FzS6H4XDJ3c0bLrYVXFHcZEdGzWD6TnA5L5t1thB5Pl2CVg2NJ3dvGejgD+RGPdv883087S/DYfgy+Dm9lWsEljeMdhy2Y1SgOUeH4ZYFLc0aeXyJ5kL0rv1B7DCzWHQe9zJsT8ednxnsJKDb+F5TZ+/E03aMIDC106ISIcGc0WZFERnONa3zhdw8nFGOahdaz8LIXqRYK2M3fl5EGtEnhwrFVOX0obARYsZ6AZrbKCkjoAxYAu2zsUOG8RiQ60UkjKEs/NjC8fke5stmF7a6Kip3CdUq4Jzi37eu+Y0U5GY84bfDaeNnYLpHqc3WU8tI4QYoemc0wJNLdDNn2POwuQRtjd0O4UucPW+k7bB/GSd71VMNpQt/5YvO8/Cy2Z+H3VlTia6maLLP0VK/5R1JV1XYjAmmrefDHEqdkWsd2lAtOcsZPmUgtBaxTUYXGYVj9CzfNDwPl/3udXMw9DbnYXw9G3DC91Uqd3PmY9FR3MRFJqpsE0hd79q1sbP12dm0gB/P+xfpNro0+G2EcUwbcXyJO2W965TlOwEmrDicpTnsHmwmnJD2j7kfTMNgQgUyImwmQ76a0WHEYu3iwtk747J/PG4OEYPK3R1ltqoOp6lwY6WWTpJ0bvgEp6W0zVMxS7RmmOrApAUGrxnKz/e1zZ1uXnf70/Ts8S3dujZqtlK5hIGf2g38lKv8xZ5CwvGY5rp07q3LB0DI8u4rAbceosmX1uPT/hh2/26dNG+b52IzVvJRy+gxLtaeZZ491mncHCTW69q3mdxYZrDz5nh53l/Mhjk9PFw0MN7Lcc2fVDO6WaLf9ruBUKuyQ12/J9uwMxrw8jJs9w9+fmbfucPl2/tf9rvhdDrvh+M4QdbKbLiYc7aCCNsGuQEESA8YfqKS8d+5n7yTGsukzuU3mDeSAZMDmCJasPlGmHoFPbtl2CWfLtlzWftDxgby4ErWW1LbYlItW63lpkX2A2ucyTJLTlkyyJIvluywOhfs4/7L4O1clQ/uCqEO5wnTtLwy8QBPu7yGNeHLeMwwZq6KrM9l1Ypk6GE+Sw5VDz6JcPbARY3U5+LBv5PFh+0kZDUunV9ZjUuiRVmNSwRSVuMy61tW45KmVVbjEreU1bikrfwuNiCmeIq2mpFqXCZ0in6kkfpcm77Jil3CQj+PXkjlGWpxkh1uESYiSQoilprI+lw9CzAMcqpkq05hPt+otWOPp9OjTxxRqf1qIW/0AqmnzcuLL10KtZ6RpfG+/HjvoajM7OUK65+bepBnhD5tLlco/wo33yLPRXjafAnwB22bzp8EWga7INQ2VMZYVOwWWkVSbUA3RNSG2FpWbeC/IvqD5oPUH9h+EfI3op9Sf+BppCJpExoFcxHRKAQbpUbBKYhoFEKuUqPgvyIaRRwZyyaXoJWjByz5HTBORLXQiJD8DuFhdPgdxPG0/A7iwFptAVssojYS/A4wXiOKhNlmUqPQ5E1olASXHSHq66R2TzvjZH3a3F98Ya+247wu7KcRf7nshssvz3sfZlaJGnRub3c4wK/+raodWtWKeG/M0S+OV/tdM21AHS6AgSq1SyLjm9pQ4+xge6NVKnmevhTDJiBILfRK+2UXrqlw2ZCAAQ5KPAjDRHU4Ttnb5ydDPNa2SlFwOJCwzVaQM/PfLyWPztuc8eXXc6vV87aLK9+UwUSpfIHRq58OYQRK5cdIjPEcUOOq9MI6x/rTyS/2VhkEnGIk+K62Kgny0pYnIZKQ0Rj1aRxffvn06bfffrvbD+PD3en8+Gm/+xRpvqSKAf3x7Ni/DffncTuNPnx9Gc5788PLJyEc1DOormYgAVV6zmtkaVCwulTb74bjaNAtkUFZql1xdbmL0UL5oRYzV7H7JN9x+hJ+yYBOMqTu972fGlCqpzXknOtVzbh/8MVvugI7brYGhTfCfGWB7vKqgCWwKyKsZQk7l/CIbvDa2mxRAJSiONNtYVt3TZ9MtY6dCmrCLLq9XEjgJWFBkyFNN6UlVVrKuCZck7CyYR0TwEnZ3RLSSVjiLN8X1VQp7jXCPglrnQAlgSDdfrfNvETlVoKxzYJFCRtfYMXfafWT1S1h/hNdTfgBBF51h8AW/eqega3+VV2En0htZYt+dS/E1s0m3BHaWTkOCn6DCe9WNMogxiwIpjsxtlyWsJji1iT56/Z/86S4Fw7PzCPZP4c8LrVqbORQ6PiAndo0Esswv5A7Y3kNNUqgQQS1KqGkZbjlb9JaRAg8hGqJKBKf5DyqPyS3h9QfUkkIvo2IbpDsGhGVIEk1hEqI0GMITSDlfoQMA0Z+RO5L6gsh7iMEFVLKSxYKIdwjDBNCpkvSCCnKJSGElOAR+gchuKW8FtI5Ioul5JVyNiJVf54wFTJUSsyIWJSeqRR5giogIul8pzXZgGN/3B5eA7r7plf5A1e67JwGCl1RlfDLl0zvRebJTkvTbAYNgFS8SKd82x93EX+vUdH1ktA0k48SDuXxwes4V6i8ir9X/0vuF5bD06OiLsB+SfS//LO0vcQnqf6XgAXeqJ2p0+4Ab25pV2m2hKFQDDdcrbHK5/CB7o9Pw9mv3SjUBl36ICa5ZwykVa1GLfMstcu4OW795GYVRwude8ai6JEzzkRPmuYcXWHGh+jL0hbhZqUxQSeShgKdPxl9kbF6elTCSSqFu2OjHYxtMJJBt4B4BbdUcm6HTdB6S2fT9eUKbS/rLyYuNA6PQbWRiuMxE8FmGehA7TKyn1SoNqKSaQ+R3AaRwNDpTd/2Yf1Or7Y8dfBwFg7ArSoSR2oczpvzef/FbyZQ1xoI6GDhpOTzgwbqdYKGBZU2jcuD4HCRjQ+HBNOGw0ekTOQPSDb/VKN3OiY8qXRDeGSpaARBf4KXX7Zsj3Rqp49AgjqmKPDE08gXDPuSWF/y6Sdo9CMd1mmuC678CEU+gRLY7YIQP8KDL+nvJet9hOyelhe5axIm2LztDt98jZHeeAG0G0r7yMYT4t9uPAmtSiBVoqUCEo3gnjrKKdWI3XgSnRQQZARnDMHEWEcHySmoY38RvcSNJ1C8SG8GidBJPI5KjBtPImIS/wpBrhhclYFJHUe/k7OWsvWeC3VLLtT++GVz8MNttRoGmj951yLiML9rkRu1iJ84c4WoufP2XRgmDM97GCbUcqkJWyyvFFN4MDyXv63hW67lNicsLMOKLDOQ0USBBtMHsqeEPpCMLzLPBG5+VlOlMGc/FmhkvgqLkMX5o1ZdUXDiNzb0KKoBZOiRSDxXK6ddE6sK7MnG4mc0cCqBLpY4W04wkuwQiRgk01QSoUdySiQijhhHBhqBx1Y95UpYGxGJOGJ1nNAj+StExBFL4IQeRY2FDD2m2nVKYYYbu63FFH6TCkZC4KWCkawC0YORrKNIBCNx839QMFJoe2l6NcIQiBhjhLYSMUiiXolgpAw9+q6xqxAK3wxx7T0cGcvdq1fb7C/nceunFrn8WZn9G8wofpmg0yzvA3trXBkkKA7MSnOB8A1q0Yi9avktmEbMKxUPyRRkYovM25Z+FM1g6hJpjDHoKFUIo49UGNJOY/SRykBabow+0h9jFEMmpEgPjZEOmZAik7zpvLEMjRJfhiEp6KVNyDAkJT6r2Cj6Jboo7UaGIekN4isr6CH+rH/IsjjalgKuhPhzrE2GciigdfvTxiNl/gh+Y8uPZP6IwANl/kgqbSSRLZJIEvlDckMSKSFS+DLSKVziSPdkAQtDUDiWNkOelKcMeTIsoRvh43/4+X8qCqt3HjWUjH6y588w5QMTPjTFf9gEz7Gz38qq1m3omyzmlH2M30hDGYZOCbKfErkIJfygEmKhxJOWeNISp69sftDy1g1uK4dJF/fHmuC3WN45BvdNdva/nzH9x5q8qZS6hBWbY7yG3LWF2pxwkRQ5NPayXsT2OsLpZaKW7VpEx5cxUZFOZWtK8Il1RkU+VA4LfmRGfOoTNXqdE3T+m9dxty80TWbreW2jFFW5/e1+43PHacCo035Fv0NB31j1akLkihrpWmjQs25w4KyZg/wHa+/gdFrDBwcleAg5R15XGfyXbS+DE2z7zNCW4fFisg9tGSW0yhSL6Fy++nVGazUf9Ps6XhrCXj92q+0nZ4Ho1kH5275qUP5cMmaathSN6sY5bL4F+0aNWLNzs+3KjFNre8KyB7OeZ3UYwgnoNIjWPpOe/3IYNl/CFBO1BeZSFRcfJ+Q2atS6/WXG6aQus0ChiM2G3TG/2jo++tYyEY/JV8zR5dXCEjbrJbMdHIv+6Bxbn5jSnB6wSOhjJ27r+DInjWvOXD+6uUz6oy/L7D96rkwDpJ8K08kmBtI9hXVGg8J6pTBD6JVaZ5RoIdMJ6YPCGrIJhvgvm2kI08mmHOL42NxDSDybhChSYTF1TloiRBYdO9yGk6goElZhVTE9rF3TspDQGT08CkNaFkwqw3akY0c3Tm9pNZ8Kv5lzo9au2eOvJ/8sI3b+iGrKfUqO+KSEZa+WMvPJE88ZMM9VaoNPLBWUHROKuc62ARtWzHZi0+WPJEtW+yD/tNrOw94XzZ1ae/09uVPRK558PkOXbdF2Y00DpodTJOFWTVdK9HgNeS6bVlOGMmu3hu3kyBZmilIC4I3t9Ydjbnv04RPbf4+ehL5/Q0o5tTY91eza9nEl2CBcZ9ZN256fMtWf9hv2vW3rpwuG02X8HGsVUGuP0rT6fPgs3yp5gkPBg1ut9b16PgSMKW4DoEwuOTOI3o+6dfsi1BGe75SfIocOmyh3hdvLL5MS9nD2UzVdkvMmwnQJrRgdK2gcVqumH7epnqV4+Ofun3/753h6+uf58mXn7xk1aqLvGb9Te6vdmV7y/LzZH3xhpib9N6p78Lz5u5/drLM8LRP0nouUk4v0vDl+892692l9k2n1BEypmk16xUy02ZfmweWzBcR6uahmJtFWfbQQYVFtg/eyq1vKrp43X310Ta1mWyUE79fPkQ4mtWpAJ5TA5uvncTx8Pp0/P3nCvGtUvonkaKbPlTdOq2ZASmRNmPXWXrkKjcXvx5OBhV42QIgVm5cZYMzMxH4kxEBAgR0hiBEQGiAiQCCAcQQ6+XTpG8J2fuRRebR7X3HWKuYLu5wZR8sr4xd/uYcfNkffd1SLNSRYG3iK2vixE9aoEdnEmTBjKUdMlfrp4QLtoeKJUOWQSgzoMliLFX8nIDYzu9t7MYpyrU4sjBuLIGJyYFVYBJGRJjKcEDZi9y5MsuNu4ljheSsE6myHL6DjFlykiqSxhavbLmDQng64SF3JiAQRO9ZxJg6LaIqgUsC+G5s3GZvD8+nsazA1OPNe+3lL7efS386vINa9V04CNhz3IkNCP9gDL3KH49PJc/JVAgXCWfHDxST9UP0T0cT8Y2NDeGKnYl4hQrG1GNeRNSki/94Wp8gke/Wox/LmhRSIpMsLARHJiaefwVxHfCWESCy7nYk0wuqxRS5YdytxhOiJZKUzLMRDxEwYrKDNhGECDBeXB01mk/+OQi2SwczADFM+qJMThp45BT5IrWKb8yeMDwengUaLv8uzWIYkp1AGg1CEL0iyA0W4gHh8uQ1D5p8IvU+EzIdSmZuOGbJUfFIDUmBTFdJ/ZniRIQDuo9+PYOf7aHAipDcBxY2y+857v6lQq5ZK1pEAKIynRo1ACX5ihy2d1JhpvPp5fzjsI90pKxWx0amTn/dRv0evYkw4KnvV7VFL1JKjSWRBBb1lFk8QQoxewle3nWpqLZFyZQzyn/qLcaUOFAjS/BLm8gaOnCCfv57LSyHHr2RVA5N6E+UNwojMKm+gU0kZySeTubyyzkHm8lKOMqlX5vLqdQ6y1s0KXabeJgoeZKKtrHOQabWyzkGk1UbqHGRaraxzkNm0ss5BZtPKOgeZTUvZT22gZ9NatcC0Wr3gIZJNKwseZDZtouABJz1R+WCzafUSCJtNG9ZCxLJp9dKFRmqnRDatWszgZNPKGgaZTStqGDKyaZ9P05+uktOQxHeo/yao/+R3EVU5f9So/Ec0+zZvEorLT4ZQU2F/CH3hOv5ZYRhmq/08POb1MO5f/KSIvlP9kYSpEeTclq2KBGNORKeqSDsq0XMqcQtH36rVsAWb3bNW9/lxs/2756G5fcHLTuaJ4EMvz5KfJFLsqXiZf+tXuGh3N6fZ+F6kk9VRsh1G2tK2Q4WJJo3bsr1a5Q737CNQbk/okkklHhLFCqPEaoz7oNORGl2udE/gOPjckL3aj+VHhMqfVZb8NBFipjVoH6Me/WWw+UUreA5dAgJLy7O9MegnXQxZOC1dDOlZCHwwUjdIF0NHDFO0VbKAkFtVRRUjHFcJeDFVZMgNnUAe6aokPBSaRrI4METkUzBlhI0jUZJNnyVRkk10O1GSTZ+FFYAJuFMECiMkHIwhSncGx1tCoqkqQR4PHS1N1Q3KGIb0a3R3JlUTmHBeEj5LwlVJeCgJx0T3R1JkFRCIEQ9FklXgvzJcFSM9PZt6raY4JZLfp1Euw3m/Oez/r8ikdvrLvAfQUwH0dxvgu20Ar7V2rzZpmz+BQrtSyB8r05fV+VwQEZdL9SfGVzZQLAruv7MJMR+CUWUG1qiN8JWNM7OwlpoGv7GgmAxBM2jGEJkISpOLKasiXASuZbX3T2z6y7MqQhs2AC6qq/WMz6PHCKk6pLdF2Syx23uU7T3Kpm283XD3N1+tqxTn31eDbC5x//rwMJzH0+Z83nyb//AuWbp6n8fkigfvjLvbjJsve1+0r53sXtx6xqD7iw8xqVVpTg3e9Yq74+l5H3Bc98X1Xt1BlXp85KCSL52PCIUWuq40j3AQl2NDI3J5XUTAmvoOJlfE88RX0gW1Deekw0nwmhqQVh0FkfQq6TFCpNgIFjkmaBRC/kQ8Rnxl3UJ6gyxJl04gZ43eIONVDFPReoLeJFeFdflY+IYsQ6pdLESFG3MaBjGChUtQNZP8wnqDGNm6hdTajGBB1tkIFlOHYfXaJnCMYOE3tIxt7zcZwaIXl3DnpBcnnTfps0lXTap46ZhB0trkS+h67Lq2o/anhxamvzkRIxbm01UT1rztbcaIERGfhMQefeDSwbBAbJQh5sb9dvh0GTfjq5/gU6lVqE3qlqKNR5tWrYvVSzOPPqlh3WrouI2KYD2Knp9AUjAHwQYo4JxhLzY195D+hK8HP41ipWL2ooVEWFQfH1+k8erlwDimtNHnVz58RkdicmOprYmdxOaaqZM9P8ERhxniREYwmxDADY5CAxFogyaQcw1OQMMUMWigpqOpjt/ABGs6/gZXB4riUObhkK34BqAHKepqNQduXhj/iPRqZZfeTGseRzFUStdQ4b1cOcGvz8N579Wzl5Wm+/1CtsRwk32m3WXl3mWZdZen7TgE/CsqVZA9znS6VaPn5HXnLdXnXg7esszLOVlG53FZXml34NDgzOC2cFfLEWINzvIKd4COAna9O/dmY0MiQeosr1RX2NPYwMsrFBPECpQQi/qXV+gkFg8sr0wBhYrB5l9el9/jRENqsWmXbQ0pow4yw0l6mjQCCYwIPMTGIXCtSPITww/4JMX2iotGIhNhbkSE7JBWbooRlgEJfJIKUcjcKbrJsCpTrLG4uoxVsBiG3c1sO0sRxohkXNETZ0w4dMmdTpd6YIPVNZEmmMwmScQ8aABLZx8/ToRDWKUTaZ3JzJVEpISwr4QRwiK6WOJXSCXkNE+AKZsIoki6IdtpgTZ2Iqwi08WIsEEk2TadMr5C2iL+OJFbRlQE/y7hESjgGgpYsrjEAjZ4LomuYI81OHoREphI1pogVrI4Ib0JiGDRfyuZ4kZ0UUaJdLRHxo1afkWzJkSEGsxzgy2aY/HEAlHMjhYQE+awpd0qg1WSS8pCo36t2pVMO8KnGJDcfZaKSk/Cs1grnaxE0MsHwTxqYapCJQzGBmxJ3qrTw8Ml4JGpVDeqV32M09EvKS4150mpNuO5p1YmNENEJgdtkZCKQFIScIlFSWSEnGEGiYAIUCMCYYSARQSekGBEBHGQQIOMHDBg8F21b3T1A8c+vux+B7JepRZT2xhEh33x7W61nDZBU3jyGS1UhoPlZuaXIHCmpMyIgBp2SxBYY5fTK6kwETwykRsjg3XSOJV5+MIClacoYoqKgN5tLNusK5QWqAgDWqQzJ0lGxAztYZYWqAgnRixQjGMbqifyZ65HIx0MNZFIIyKWVqYkzExd7qSSbRKyKWFUqvIraUvqMi6Vh6PLwayEHBGStQ3ecxJyMsK2IpM2i9pbZtv+yci+34Yl8Y8mDSfrZ4w9nOh1wtRS1N6NiUan8344jgJNrlSYB7DkWteG5/1jGH8rSi2ypxhY7+X88bkdnwLqK5Vkmlpczw+T2eKlw1JYSNgxbX5cA/c0c4Q4DdZuecVa0sr1twjNlQD0a3nmcMAwv5gQnIrlNTBvYCHATYIECUE6LHsSrNPNoBV3OsbB+hfYoQVxU84tJ5ezy+kleMqJxkw70WGM/KO9BTGgBQ8J8YpMwYgNx62i44pQEnlWHQFGhq0pJHSDD2K66Lk18V86GlmsuX+xgW0cHFs4Yi/iNznQJevOmDpgw+g04hPGJS3IBM4pcg9T5qYEPGmA5iRwSwOUbxJlMdJIvQkdZekMYVLmO+k5eJj5PAQVl4jkEuCi0vytaQfnoKwY0MKtuEOsRcxWZnJCDhKLi1pIlnkLuGjEsL4JrcXIFrbFyFjTmBXONzmILkBRQrvMmsBSxhpZYkCbTI+L5uDAkGyWo96Wo+CiWQ0x8eMUaIyr5zgDOJVv196H0C7jyhk+ACbqD+78Iwm3f2IvIJGUwq4lEUMfpkcWuErzkIYMc1pgykR6ZTIUiQFtQQIGzMFm9UYdsxV59ziM87vx24sHrtaq7V/ohq4ddCa89rlJWpW9XifRjtczFrVbHgmfJh1oj3CZO2Qmcgw2Z1qm2fYLoVlGCwnmFFEuWjayjxMxJIJAFsWBwLUIDT4R9O6x9k2MpRHSoBRjyIqBk4zoiMYXn9f06WXjFRIWau7FX4/d9GWzC8ok12pLq65KeHK7XUCW2VyjMQ7dNNpvkBPhXEo3h74DjX+Cs8KwF/wI0sZ2utsII9lyKEiblncubVEcEUbYI6Yjo+fS5KOtJU01ggfSxKJJI02jMGwdsW1K3QKxdA/STsCR/XkEEFJJ2Y4zvgZRtuh4qu+/jYMvOZ2GFn/y8/vROYHXNMQ5YBopSi2RLdQKtZ77+bI5+wnzjVpSRVIBqgKmBDQ2tlsmr+S3nNg+vR7/7udlOlX8dqxYL5nlkuqVDN9A2BS2cQjInGw/+YzxUb8dToHWUFMJ6ZnR4Fteaa8te4/+OU84vbIu9HBqiMs6Mcte/8G2Utsv6ewFL8MxFPx6ZuL8SYDa8WBBBuMZITmXSWDaGc9mThkeASOJAeVE7WSMLhGRS1ToZcTWLGxxPVxm4YZUn1kZ+II/nOoqKzxt605LDxlnO9ExNqs/bEY0yfqNCXdR9wkTHmDC8Uv5e3qsJuXLqS5cqour1rw1fiJ9gF415wgMMFfaFzepU/8UJLA0LnC/JJyHJQW6GNpvx9ezP55aFmkbZPVqLsMyoM/42KohparTJ9Mfo+lUGd7rhsfBy9zuVTL6ECeID7b358lJ1C4jPJZJ4K5L3PNeBmdat3LPduK7YopgpNDzbd1M+CrSkSo62mnv2zWNmjm1dAuPj3K57O99eqlSVc+d7heehy/70+vFT+pZvxP4BBLyu4r3X877L361UuuKmMzdd95/2YQ1VNr6lHpzyZfzaTvsXs9D0BlS7VvgyVJlxIe9vwWL7loZUE7zspeg8ZvTtAK4bMa0jXorua5wFsJStN44ouggV7rd3yLcF9FRLw+eCVs5Zw/mcs4gw7C732z/vpDVhwBi03o0a5kumO9+qUyPWFr6lQ2dW33vjL8aOM6jrNeUSqcTtr2Mv5ar5p/lqvUJCbShltCGMtT9t+FXA6B4iYgaTppIRHwZfzXL+mt4W6qgV50gZfTz+VcTMfWaWl7plK2NNL5MN9r4NoIqX27pZv0y/nrZDZdfTUzXHX2lbqRC93HHXy/moVd+saWKCCSEy/jrVzOS12W3bbTpqxOI4ev55eSjCWu1m2Yih8Qzdnt1dhzmTyDAULItXMK2UmfwvAktQRXeLDt1850DVdSp5yPV0LXgV/Augo730Utv/Q2vhkQCDfMxJUDOQwiM68Mu0g3+FF7hubEuYnlljtzyiofHIyMnBraPLWBRdbi5W58H0jFnIY7SQv08bC5+olqt9qx20jNYRagKvfOwHfYvgeJWHTc8fSQqGqlqwVTrSXjT1b/4YYC6UmuxM4yQZcSzr5zV3cGEo0Q6j83HAbiDzcKclJpVNbahOgxW8i8ybtSqshd3P1sq0hGq3WbSVkVc2zty0NAIql1C16KW7pw28EuYQFmrPQoLWOwxukdm8nOJ8WbNNwwIqt4j70gaj7XT7RDXy3/CuOlYty6E3+Uux8NwHo5b39LrVIOlz95jqasFUGmhdjV9T0u9JS31PDyfvgRNGtUG0H/qGI/+dH77EpXiPGHDDC+b/TngxFUNJh1dk4e6UrGTZE4pNm5K6HNtcACkiEL2QQG1WGCRCmDqVowlEjUtR22Y62jTq2zGlG9vmDf4TcsjAQgcd2jTolr+mBA446e4aEf0hUeLFbgYEBHempyVtqiWRgJtLhhZ0mzAzNuMqYh0I6uKUKU040hggHBwA7nQYFps6Sse2cngYOIGfmxb1+K/SD5iyzBYfcGiC9ZakEiBgoZVsfADGr4hkM/SVxjfuMOWGSU9MS0KLIwTKXTFOLbiFf+OZSJzTCIqGklFqnrND7F53VLhC2XubGw/DOzuZ7kPxa6L7DG5oyL7B1+RCEPfNpGllAsnl0mb5yhHTCKJrkzJxfNwCeLunSanmfq9jMtEfYYuRR77vw/jrT63YaxZNXNxCMPVjY/+D88KXKtQUyKXu0zo73+8Dn4fikZtrpeCD4azTyq40u4z0dLcTOM5sCY6NTnEHlqcVefUJazdy373GjAgqo25WjbRqBKS7/LtuH06n477i6Qea9SGoqnJHF/Pvsu0UumKSkJF/q3mbi9zqcCAU/EjCLPCNh1jKnfCADaXCKir1Hgn5ZwOz50fPMCo0AOfFB3LKxMAcNPQJ5AjUCLLK90FzCOkwvIKAbl8Dz8Mgh1aF+4Ck1tZfCQQLYvMsLyFBSYaRJvOtWHOfyW0ZydVpFCIFpKgjvMPmafIbtFfegzh7MeeWpV6L2LGRuzQhPlZezcevZfn7cZ3KArtRPe6iDhFykgbJy2BfXVcN1s/tKfXoy8k19e7SpV8o4/7cgki+A6WZHMaZPZVrGilLnSJ8HKJhfCdSIcTJrkClXAoEcOv3eBiZrzt7KOCvYulFZHsded4MD9Hf+ww+ulEFWt2vbx2g6noZ+lGP6vcR74W/XTXpcmFxS5f/AwX1RdQpVB02HHrlyhoSEpQVhBi/NfrVknfwYLR37MCVS8zTVSX2spRZpoLZCIBNtj6TiahZ1Rz2tpNfpIo0MQnluKDmSKAs6B8y1ooQFZYshe7LbVkITQGtN3ZM+op4Tc4ZZRMZ6TWhWqFBktWT8J9sUWTvjGeroxk23hbEEkoL6fqEVe3xY5+XlW6opGGBgFYSxVyvVrRNra3RYoEG3MqEennEeJipY1eU2jLBFkHQOvud0QL/rTYgC2no/2VUzNHBJj1cPixXvRmhLRU71Xr5L+spbbTpV76GoniOpUcOVFcZwcO9WC19qyBzAAYhwvvrurdwriVHC7vLs2wdyYbww8CqhGG1Ji+atXCTYFqzaaoCCoJQtpoaIKKPg1EF8QTZBHkDcTNctACqos/nN8WRxB/h07i8j3AYzqJMFEYOmAwgSobb6C/CgwWoW0IWIw/ptihz+NL0ISjVptw8LimXP/x5TNCO58v43nYPH/eB0Eex0qPeBjaqNHByrXjUnWZhur4Mpm/l/3p+Lx5eQlBPAcaWpYscPpSD8+Rw8Nfrt1GI5mmfzDe3eb+8vkyHHefx72fO1Kqadz+Js+6ynMwx7UKDgUHLn9m7q7vk1LN4/LPcfbl4lepVbAxkB43PNzlct5+3rzu9qfPh+HL4CGPpQpt+OIm60LjTADqM5Krla6euMob/7w5XoyH+Pm3/W74fBn+8Vn2CyhbHYpwBWrWFb/sd8Pps8LDVXZq3xpPNF+70ut5P56Edna4oxYRnXNAw5Tf2rUYMhGN8eVazq9zFuDw5AwrbbKidgGeGwcK7aPSRUs6KSrjg331h9BO+fWk9fP4dTdsT7ugcsJtaZCZfTN+HY5ioM59uEw99ert175XMyqDzhwfoxSruiB4PR6G4+P45F+tc284+47DzdY7wA1u6/o43qr2qh2eiAVdNr5OK9QIyHvpila68lF0SovO9NZ307TFskwEYYgiAeWHnkm1dr2eGI1eDDZirhhjyrgXiR9hkUtMYYnwT4kVKGv6KDrqBN/eabeOcWDplNhHlnMW9kGiXsdMiSgYbwq3WI4VlOljxpFEJ/rCOfxlnae+zGim0Fyom8Ktn8xM/DSDRZJT3fKcMuJCp/xTO6R8XLcIpsrTY5dhe/KjKJWaEGHh4LcioSEaeBPBjE1KYc1umM+TwxkzP7rv56lBVNnVKmxdpVwitNcKVf+FdUbfGRb960ZD4zPoGyAqr9N1n+4yHORyNJ1anarnVxp303fLVEKFAE7pPVhDGzvIylfTBJxoDCM8jIcwVEIah5wsTD35EshNAejGBka4CWEAlC2tBeiGNd8wgID9icBRVTAUQOAf8BeSEuyuht6vWkL4eNPzDeF5cm4AroH94DR6wVfsHcXMCNyGk3dIvEuX1NNK/kcgYLRs3kSpxjyQWurgIsp2lGtiPxxSpOz3LtFvpsV7MXlUQcZ+oRMFcN2x7MshEZtZB/9sPEpvnZfTMS+rUd6b9MeLz9t5vzns/+8mKHl3rCGpzgFBk3YlZ3TBbucW9RZ5/hHHkyUtmhhc5PyyvosMXO6bYgnyBeJlERgK3Yzl0cQhXV6VtCWV7BnaCMqIeZ4kMWMdAr+SxDaMB0iGGxG9zmpiIUt/SMuWw4sTZqLGmHL8OqHMthYrOkD0UPCb2/pbSC+GdG0ZZDy2ETCVD11V7pjrPD0lLMaSDGw39be4ra0F83sh+RLdLG5rYoHfQHbe1s2CDGA3dbOwjLgsnuEnIjk5wm1LNctKDVLVsQiHxRcs7rqJiAi/ySKwzaCr/WNZan8iJ61kNmL5E+TjTa0mLIUs/j2j1YSnWGRf+qLU9Mt7Ld4ttXiY5oCD10H6l6l5xxIjNDi5Zs2N5ow0P37Q6sixMd7KkNCthZtMgtv0/veo+zydnqPKczR4huLO6jWVoYtv6yP1rl7/cPWaoUNv0Jhh6UraD0PaL846znMgoVjd4kuoWKNpCiS4FBE5RJ0hxQ/+KyJ+WFonhQ3kR4Tfk9lYUrTQ29D5PVup9zkXUpDgKEfkB9RbRGxIs4Fv8F8RIYFzFuH3FMaG5ffEVwkBYLsK89yzDEiee2pZedxxTCOnnJpYHG7bmFecadt9Vx5lnNcIvyd+HDm4+E2E31MYUTa2h99k8HsG2SeFyqpCpArrS12yvHK5sRSYZUwppg1ztLwC8mAtHOZneWWgHYeUIQdWJAN+aGjh4QBiaSwY1/LYSoiZCXj4L6J7AOOctD2ecULMjHwwnR7SieLJBjYhEIg+48EdLx8CgQnbBJ0hB4kbVkzGZBYm0y8xUbZHAq5uoWqoLItQt1xY+usYme24YZhYp5xQ9YoWME89wWtWIFL/EwfD7rGtvwmD4oxj5huINaetN/FQ7C72f4SocVp2ExjFgGQ5wvw0uENbSm7baBMzxb/bjhG4Fm6+IXTLm8cqO20f8WPb5BGnno21LW0XZAV2Qovj30KatXjkFo/csvIUj9ySJRznusXBdhjN8GOc7RZmmm1Bg43U1pRv+DE0ZguNaRt9k5uczP2UnJhnttZoO8pAEiGQ/0Dm3gAxJTZgW8ckom7j5v5i4g0mP5PpZn5Qz/E9Gb+7hkGP98Pj/njxC8Nbl16S+9zuYe7PzMwsc5n9eBnPQUJs6ybG1RHqeW2w0+6bP457v9xT6zKc1+sjv54v485M7ug3sHaS4LGz88d7PQuQv3fL61qSLVwdcErR8OufneR6K88dWZT98NvTq0/qsF65GW/kJrw+0OW89ZtPuOUOZO65Os5uOGy+XfbH7XDYXMbL2Q/YuSGX9oYxv/xtP44+Jta55ZOLAMwcbBwPp/OTl4jb9W7p5Dr/1vaX7ea8C9kTe5eOehGvWcO9vhz22804RPoodS6fdsNi4+wx96fjtFv8aWzd7B6q8jZC160MP2yP2yE6sNujgjyW2WHacdiOq9i4K/eGK/qpN9zwWETv12UQJxNnZq6nGfe4EzJ57cpkGVVl6DT/5o+7y7fLODxP58wnsXDFXZkt7lD8+7R/fBouIwLZMrO7dXi9YCpmX0BoPpeUPzdBzRkrUqpROqyQi6OQO+T5uDmcHzbb8eRTtro6qs2XgQ/nzZRuczhdAoJBV/412eM9bl6i+q12ZcxNo0W1W+/un+xj+vi898dx8fQ2N5NxGO3+k1uvbtzSuzb73kw6Y6B43ZZ2degkLd5JztBSIdWtm9raZj/4PNIc9NncX06H13F43nzdP79GDrmb8rKYwDdfY7d5Gfc+JWHvTnBbZwsPd1z9nt0M8kj/jYyxj6dn0zY9Mnbljp0tq92xhe5217HNzXfFmBffGHPLvCLZzspQs+lk3IbLuAkJRV2S0kzOfDPk6XIRT+rq/vaG2ztdxqiB4hJFZBbz+cNF9bKrdgA6tPluzPPm/Pew74yzLHX2fT5vvkbMUJcjpYlUCOqDRc1QzyHMPt/Pw+YYM5Hd0frsnWxGi95c7d5c/qMOu/3GVMH5RUyuC2ThKoJTEksihCRRoWx/6Xm/i9sjtUedkj9cbNpdzt8FtckcLDrrK3fWsw/p8+my/Ycv4z25dstAB3+g2lMW2efneNqbTOSgBLJ3e6csCFLeaMdhO0YFhtu8B3Bl22Wvw3F8gQXn54W6+p0IS51X1jePG828d20bm2OfvQdP2zGCA9Ru/VeR7x7PgjgynGu65ouSeTijfLan43bYHKYfeLvStQ7q7EWK6J/axWeKfOgj0hCx7FzNmC1dlpHCCprCrYwkq0mkK6QyrKT2b1ZuCWh29uq4cPlPloXPHOViC/mHEEXbZ02suqTxTfaKRMhka1dfOGyxDPHfMPjMADlsn04zN6HZnr6Ac9GbKn+dYi6k66RlUnKZoVQ95Zob2aJnYowbz/uXCGzgPmuZff7O40vcPu1d+zTfHprz8oWVULu1Z4xusZKCISyGnhhxYqI7g0j5EkEHQYq1i2pl74zL/vG4OUR0n7s7ymypGk5TsXZtZGY7Mc+cYcawJNIGzah4GP5iaIvBEwaO8t0Oc6cT98H07PEt3Xmn7ZaRfQnhsn8sYdOsgV7vI/Km89CkfNEVGCNrjaPgPdPwloZ7ZmKf9sdjGIxyCRYY7rWh3HwUKyrLCnf4fCRrPI2bg8T+XHuszdawE+nG8/5iTs3M76EcIteKzt+toPQwjB6E3pRYpQs9ZeNkxha6vAzb/cPebzXq3XC+fTpRgjiMIMpseLBQ3thPG7/Pa1Fo1YfvSdc3JV1Pus+TresrhBAmpwDyQueAMwObbbUJXBW1UQ5r51jQm2jeNsUwfTDvx0U5a1SFTE9VpP75xb2Q+2wD9lYKIEjaX6vMrwni8EvYoNhlSYjwhaVJMv2YgVeBpCfIHfZBVye106G9odgosQ7IjiNd5aIdagdk1y2ocoHIk8+9o7ZM1JkJTgHriyYomIiLfDnyMfyONAxZXAunZxPb8u2WtcqIkxJIp9dzWGB8jfk+wqTwVnTypEvA/rdZdsw9WwmngpQKpXAz2HsHI1vHwzbGYX6nXvM7TdN//+fTOL5cfvn06bfh/jxu7x5Pp8fDMH95tz09f7qct5/+v0/n4eHy6WnY7C6fnjf746fdaXv5dNyE8bFKXbAMXoOXTbBsqyuahIyNkPu+YrH2hiyLEdUwsvZFlryIupZIOUukZkWUquSUoUSKTkSJSaSgRJaPSLNHlIbI+o+sIg9Z0iGNJWk1ieKMSCmGKLyIlFmERRWREoqgYCK+6aTJXdYaBQP7lbEigly8UoAwSz8hJdhJgw2sbE8qn7EmevMBC4gL60awzshNfl8znMv5c9hux2HSdDq2XFGD5/PwD6mgG5fzc7nBW8YSrEdrV+Fnsvf5QGfbuUmYuTj3JdGBoHZx5Fw/9HKlAYEbymhzYfMQIvPitJHsDEvKERAPMzc/wTAj+r461nvIHlNib0YIBSRnWYJhBjLMRk91zpmSZhEjrAkWGmhpG4VN8NIg3d5GahNMNS0nVwgPyV3T09bGJRJsNphDGxVO8NtA59jqAdtGMaS+eXtLJ2jz+322z62cPMbe2QaHola7iZUrXTpjpM9eo/pmpXYd17u/27GCTvJq16z0WP4t1ZVKgy40RtMkH9i/v1olQb59YIUZuHIziPtc4X4VbK9cAZ0bxjVI22XcbwPdoTkf7Bcq22m2egPJmZDZs1dUmMjnUldGC7HiSm1La6UKTjr52Wq+gc0FudfVuqc2XXw87Tbj5st++M0PCLi8rLmZdq8er3BXqXRDibaVZGTTKaUvr8/Pm7Nfp9HpzbcgO2npausd7Vuqt8u6vPpI7Fo7be9BlJswtN/249YjCa5VfCWH3Z9tDyUfVtGqPST1zTfltfs4sdqX0eLEUH26L+TDZL0mBm5qRDUOZ5ORGvb87FaqUGRvYKrvgPU5fpmvfkVt85M5NP8CrQUVDs0kDfH4tPH3p2qsKCKFfbPeRYsyv74fqCEN2J28tWVoMr2QPYEIJnkQQj6W21oMW7pEcpER3A+pSP60vYbHJ58U9grtIEyV+SVAFzHB2MchG2GwVAKNJNPE8sqpx8ZeXoHYEfjDOiyvrB7HsmD3Y3WWV56BZf6xDlghsjYsr+RjwOpgcXAGsEY4Cssra6qxdMsr1oulzcsrHDX6YMsrFxrrjOPkSxRsPo2NEccQNSpsXYjlxHraloWUVZLHkbwlCWolMpkkOJYoBflf2CYR2pMEDxM3IX6M5YyRPpIsJYe0iWIjwd4UxowKTG6MD5KkK5LqCUfB9sTCj1MMkTxACapIXN02TMTxi3BGkuAlg0Qqp5citnKEadISxSQ4qEgdE0YBSDmZaLxYrik4KMsFhZXtyUguGhFfSLRihExLklmSykbEKVJdGjFOgvnSMuGIeEeigSNmPkmTSSIdETdJ9XbEgCkGTWGJWCpN0neEXnSyIyT+K0XAqYd42OLbEoNQdeO/bPtIEgQlaDtJGaSziFHVRJpOMkaM/7KMQ4yJ0FqWHEQJNjLqNxmxokki+clCY9CJasFrjzCWCcvRkhpRnQqrpxJmpuU7gpKNsJqRykdE0DAtMZ4zkiOFUbYGW72BhdVgzzdAlpueyh4/xtQ12OoNlEKDOWzWNAkkpxoZmUSMjyGwCMsayZpEHBBPEeNdI49TGCuU7SBaPJdDb0KXiqQbZGvTY46yfygUWZIeleRRkieVDCpkmqL9i4vaZqM0khRS1Y/I+5E9b5JQ3fg07P3aQNWmJnsPtt5yc3oruPEpwDNWmltUs6bNcoAIMpDY+OegdPUdKPNP4Xd6s7FUY3XtmIFpE5BlJrJISY5d1Sdg0SAKPNKy/bBeWK5gqQO37Fby+HC3XyOTd9wQeh90Orjb6GLQs9AdikpszQhDPN0Hbl/hLFiPgFOE31gaeDoC3PTS7BdRW2v284TQtqdJT7Mf/25NelrywoC3pjgtcJFsI81swezudDOnLS0NZtq3PLrC9LX2Lc1aacTS5uSBF+aozJm0ViiNT2lq0jKk9UjzT5qINO1o/nHL08bzq8c8RnZadDTkaKRRNgmTTJhbEVNKmknSBBLmTcTAkMaDMAxiCh2a1LKbU6FTI0utza+oo3nuVUBftqVVu6sGmAu2B+w1Is4MMFk0GYKVsDIOz9KdXbuz58t4cvjZ/FIHp7qSiX3q/WpXCMKlql3BXGk+FFaiKblpaH/rWitawqK2Y2W6S4C/2b7TgtJS7zttZ1/vuTp62cHVFabeOGYZYpQaNhlgkNewNQgfPvubdUChWiMqlgDDJOKVA3Ql8C0JYknsKgFQ6bjUH9KwBKv0v6RzyU19Sm5qT/KdXUmIT0joAlrxJrZ04dMwBppFpB44QE7k9J1j/V9XONYTHrlwxL/Tpca1MJkddlRXU9oqyTNx7SCal1eVm6uUl3s7nk5eGlXjsuKVEcIs58PIYKNfuKY2oafXsbxS0GHals+lT0RXqEq4MBD6JKCmLyP9FOmDSP9CehNMtZQOgnQHpPEvTX1hxkdsdWmQS2ObNjZROFrUNKRpP5P4l9YyjWQ8oEN1LszdhCnrVOH6W1TtSq3bQai59QZS69nIGk4Fjd2kZm0kr/rZlPp+vgz/+CzZDarC7Xqfl2htWCX8pB0t9cdJ2uEb/X79ttGVWjKzLB7WF/suJ4FpHP2y1E5tZmrRYWgeCxNDY1i8GLawBY71BJ/f/Jo5tebY6mt1qJB1ptKklY1OLq9BiJ4h5zDEzHAt08oZ+mSkMhFYFMG+SGxOxtRkLEzGsGwGJwwLG40SsScZIbJxHHwlgzWkWGfchKEQRjcYsGCkgOC/xfOVQhgPmaeyp2qnjFJTXqdKe28zqRmvcQjbqCUWItBCx16hfaenj74ed8PD/ui3ZOkaLcfwZ0VqtFs7H76FdZjqcQstnviY+6+ekGo1iFgvDnw9BkZPp/d5/j2n6+xVSpdrTc3B2Pczsh0EZzkjuFOKa88Dj9/C8Zfq8eXll4nxwU+N13CkXhWOZrT9MD788rI5b54vv5zHF/8BNThCfcDKfZDoJS9+bEa9achUHDScRQLpepCGuLeI1tg6aPr8hfTnCUELwFlEdBLut1NPLcFkAR1HgGKZisAaHjq3RHGFB9sIp5SyKuWCKoE2z898o1ATIVZ6X3rB+OvFl59Foanx96CeFtRLEnu8Xnyjtyk1sV1iZ5WNrvMuIQ15rQpweMoidJaha8b9wVfujlv7QTi1P8tzT8bSvxTlXXe3ckrvf/vtznCf3Z3Oj592w2H/ZTh/Mh98Hi+firItVqvP5mW9nv4q6k9Fdbcq71arz+3q03j5PH/6pahW5Wr1cveye/CdAtVnApatnrIvv5b/fPGVtyaf/4iM+pyc9ukR/nkeLsP5iy8yWrVKoNbJUebhvvrBg3S1QXSYzWHvy69aJalg1vayWpRb0HywsAtaobDvS0o9lo2y0hsyoMJiWPYWXKLGgtVsR4RxOixYp4fqv2wOr37EqFT9tiAt+Y9OR7ZmRSmMCGsyiMh2hENFKn+p6qnYwzBvhFXF4s9QAW/idcc8rUjwkxFOXTNPqx70yNH2dpi1TuNJFH93mAnLDy+vPAhe0V6TfWFZkdu+aqXaxxEjW80lui5czWCfHZI2f2CHtiCTHDuL9K1ymYR5c9cG9qsz1eVcttQyj8t5CaKQoTwLo42UbzKoSIlnY4kMGBIgZmY8ry+DgbTvmMjO0B8lpwj0UZbyCRjWy+k+bCWwzM+mTJahNkppmRhNuS3DaJTkMmhG2S5CZFbai4AY86EYGUtEvUTYKhKJisSdRJRJxJQiESQZL4pEhxgLYnKnjA4xTVPGgphV6Ud+oifFy2RsXVL6OrNH0pfnBHFI7xJur6rvGjAkDulbd9DMfjtfTgFFW+UyT0eIKj/oRDZfTj423vaaL1fb0AUUOYSDvfHI+IdXP3Wlql3pus564t82fqbKtSBXENxKxbIYwupoWhB7kFEpGYxiDIqhJ0acGGjCKWVYyUaTfn4QSQ9g/OatS12opJQZgYrfngaT6+sdGG2VoBwCpUTxhjMPpRSUlf3ECsy/cuHlb0/7oHRepSjJWtD9zj+2hYZB6CwJv+0PPpm4tsOCHUFE4OfX3P6lV3w/Pvk4nBbHCJPPmEKKx4AUWl4Dl+An0gazPO6vzB9sFsJvMaem4r8joreUOfx2OntITa3qlJA4OT7a68EHflYaJvK+TDct03k/BlX/mu/fqC75Vz/Pw22VUBTABCVQ6DpILLzXE6a+niO8xG7HEos/utcK2CJTI/9n6LG3ang5oX4xmmA9dpvr1ZntFb8FAVyVtGrZwe/q96r6/e+PH172L8Nhfxw+/PJf//2vf/0/HFvY+A=="; \ No newline at end of file +window.searchData = "eJzsvVuXHDdyLvpfOK+5y4k7MG8aiWPLRyPJpDx7nzXLi6vUVaLa0+xudxXlme11/vtZEQFkVUYBmchLyaZYTwQbWUBkJC4RXwQ+/Nerl6f/PLz6/V/+69Vf7x93r37vlfe29c2rx+2H/avfv3rz+ouv/vT6VfPq48vDq9+/2j3dffywfzwe/oEqNj8fPzy8al7dPWwPh/3h1e9fvfr/mtSW7Fp53t79dX88dM18eNp9fNgf/iH+vbKVj8f7h8s28K+DLQh5ep+3+5f77cP9/93++LDvmoq/6sQ5fyjTcvPqefuyfzyevdiZuK0+9bb7+OG5vpffxccHu+r9rNTv+/3xz/f7/5zQ9fv98Rf6xSq9/+Hvx/03+8f3x5+nyfDj34/7h/S75ZI87ve7Q/fg8f7pcYI4+OMD+/FymVKLE4bf785/s1yCu4enxym9p+dn9hycMDI7Ab86nx7Hvz8XpIDHpk5D0Urd9fnj5Wis6O13797BUzOHJDZDLRSWou/xV8XvQNXXW37O2q9beKK85Un//Xa3u398X9Xj+/3xuXt8Sb/P290PTxrWm0NVx8/b3fFJ/xifX/jGg4sse92L5fV42P2v+8P/un/8ef9yf9zvZklQsdAyOQrjebk0Exbbc5FGltnlco0vuOfi5Jfa5VIML7rnElwutzN77y+89MDAknt6YOqiY09L7f3hzfHUwU8fH+/gi546wfrJi/nZqvnm+DyycHZPTO3GiJO27p4eD8eXj3fHp5fKjn7X/8nwynJ6izlLN+u4avUe7bFuMWFdTzPZRmUYn6qs/3rDaLTv4QnKv3WVSVSj8++3f3942u5+ADuhXunP9Ksj/Wqx1udIcVhZivf749v9f3zcP97tv/344cd99bx7vz8e4g8f0w+Xa2SeLIf1ZXm/P/5w/2F/OG7rV4T3++Px7DfLtTFZgsOqEsDYOLzcTRkR9PgK42BCv4e1+n2/P355eLkrW7SXL3wXn1/+xpN6PqzW8/v98U/bl79Omvcf0g+Wv/W0vg/r9f3z9vDd4x623td/O+4fD2Au1Yrx8/bw9Ige6v78t8sl+uE/n9ClmiXS8T+f0L9aU6b9IzjVsxVFP7+Crqjh+eqi319DY+/3x+nivN8fryXDHBFWmdmTJTisKsFu/7A/G7LVRj3+bEU57h7225fpIwJ/dq0x8aft8/MQYjQwND50P11xhEyU53ANeWAfvN/NmTYf7nfrzpw5chzWluP9/vhmnj5e1tbHHDkOa8sB+tg/b+9f9ru5eok/X18/C+Q6XEuu9/vjFz8e3u4fd+DEzNHX9sfDYf+4A39mXX0tketwLbnA33zZPh6en16O//t+t3+7/w/ygeeo7pha+s/73f6w/w9yitfV4krSHn4FaaMf+8XH3f3TN/tf9g9zdAou5hZaeIAW1tXlQukOV5QOwy27/dN3L/f7xyMGCuZo7xdo4+nUxrr6Wyzh4aoSprn94f4ADX73009z7OM0r2MrT9jKFeb0MikPV5byhN1Ox23XxGyn47XLe385/u31493Trhosfjn+bZ9+sLzvr/YT+97t1+m7Isid++aXce6aiN6oNDWhbyZOKfq9ijxjAfHcYjwjJj4qx4RANBNphVh0Xrp+KLZ7ZiAa23tmQUD25fjcLZ3/+nL/w1MvxnMZoM0+v6B/sE7/dPjh6czWHeg98/TUvnuh4u5Vem8NsZmepnuPTY5O267HP3391ZROfvfhvmox7r9Ftuc3P3z/7u0Pb15/8ad3E2V4OT6/Oxxf9tsP71aV5s3r77/4+s3rrxaIlRzC1eX74g9v3719/e1X7374+iy5tUas7Y+Hd+B0vTvSQF5Dmh/efPHt2++/e/PDu//99Vev3719/S/vvv3XP/3h9ZtJknXOyzvwXt4d9v/xrj4EWSHl27dvvnz3xb9+9fV37755/efX30wSDryCd+gWvEO/YCWZ/vz1V6+/e/fdm69ff/vDFz98/d23k4RCQ/vdmaW91vf87o9/fPv6h2lfj+zTJRJkdpkisHmx1/Anp+cdsjTPEUeS5V/mn16U9PnL08PHs72mvsOY99n9fviDlFq6TP3sC3d/t0g2+vlKovGPN+7F9iUuPr/oA95tP+xftrO6jGrqWhjWU7mt4Y/408N9yXqrEi/+/jrCvTwd+6bvDAHP2lhNSJYreDeWLHi3MFvwbjxd8O7cB7hKrjXrozZj767GHYUHRvK27i5dUvhvZd5WhRRfPn18rNYwZqvEH6yigTGHPPP6cz3yMXnqXPK7FX3yCg2NOOUX6pnplVdIUpVgeiHPgoz1cakmgQV366MFY/LVpMT2xZqfwT4uzViSbF+SeZnsWSlyS/qgT3/+0AKP/ut/ru/hd/f/PmFJG/C0yo7fZZ+HGv9uvM83U/p8WafPt1+9fjvlTXcVR3Zq+v3D/1v2+S+7/fHvUzbJAczh++8n9Lp9nmIgDCIxf/zDlE97fP7px1V6/v7tpI6fDyv1+3+mjOS/LRjJl/52enAQ1j1/aIlp++XTh+enj4+7EfO2/9i1j8Rkept0Loa91BxbOydClb1d13edFZMTYtpZmTppJlgvOZFmHHGuk2vcasmJU3+ap06KYWslO1arzvVUj5Tv44SaOEyeu5+t8y1myXFYW47tbsZa9bvtbvecfrXSVxn0hwqfZJZPNCBRf+voPziwfVw+uAgd2d/t73/Zv7zZQ9xgDCfJPHz1E5alPqcdtsy95iwYpyhOHaAzQY5KZ7ko0MSDmRMkm+IwF8WbsfFMkbHCaS6KNuFI6QSJRhzn8jivO2g6bWQNn2kbGlN1x9smfam50lQftpumG3psAL0bUs9L9+NVNTRfpsN1ZNrudvTYDJG2u91L+u2qX64GCh/6eAVQvAqymibpCFw+JOQlcH4F+UYh9WE1zgTXJ8hYBbMXhVwEuE/T5DD0PqTGeSD8sHTc9nuGjbdiIp8992tYfLy7ycbe+XvNtfMuhKg28Sp6r7fuLsSYbthVyFNnL13IMs1UqpBj3Eq6HBvVBlLddxm1RnJfpNoQqfoWM2SYYgzV6eGPL1uMxn/zdJi2OIA+foo/fqAfr6WX+TIdriMTnKd4Om4fZinpCL9cWUMzpTlcQZr3++M/3b//eX84dmeyJqvoZ2qgO4q1oqaWyXa4nmzv98d/vj8eZ2jr39PP1tLRHDkOa8vxfn/8Zns4vn1TwUFTUMzD9nA8vEzgo6nW0CLJDleT7P3++NX+Yfv3t/ePd3uScbLSdtDAARogIVfU2jLZDteTrcZiz+lqtrFeIdNEvO1CvDWyVAYkZTHQjAMyFA0tPL40+5gJPCIBe3IJog6HVirx9MtHr+1bFXqc5F5lXnCOh1USpZIBu1aGWibqvDBT+ahrpZrESp0XbRY3da18NQzVebGm8FTXSjPGVl0Y05Wc1RNG0qBXNjCGqhyzKV9nniS1LuIknXx7fH67v3t63JVxuAHNPB6fD92vV9TPAqkOV5KKdJUc2JnK+un083W1NVuuw7XkgkjM8XncsB5Q2Mvxud6wnqSxRZIdriZZFwMZji8MqIweqUvOn6SxJXIdriXX+/3xu7vjAnU9wa+voK0FUh2uJFVFZHRoKlbGIKfNwpnyTIiJ1sszHhEtiVMfD52xEgxGQ0cXglmx0ElSzp568+KgEzU4HAUdVN+8GGi9fDUR0JKAS+KfkzQ4cgdRUX2z4JQRyfgtNPzhwbtocg8vgQn+8Pf9CDrQPXFtUKDf0SQs4PQWcyAA1nGV5z/aY53Dz7qe5uePyjDuPrP+673m0b6HnWX+rat85Bqdvx2kDL9U96GKMrxC09N6PqzW83a3G3TCWcfb3a7K967R9Zs9kH5PUPZL+sFybU/r+7Be33UGzeW7L7BjamQaNl8uxZlntdRpZ9hYyalmno0yKk2NacLEWWKR1Ghn0BC5VM0s+2NUjgmwLxNphRBOXrq+UdQ9M2AL9Z5ZFCnZ7Q9jEZLukatHRvo9TYuInF5kViSEdV0XARntszLywTqfGPEYlWJKpIOJMifCMSpPRWSDiTEhojHa+0gkg4/BughGzUj48uePj38d8BMvR8Fd+sVyjU/t/bBi79vdDnuv7ny7293FH6yg9xoM5lL3S7CXqtEwjLlkBsM8rKVOQyMYS049M7GVUXmqMBUm0CIspUZDwxjKpXrmYSc5SfhuPT6T8IlfY68+dTR5q6a3mLtTn3VcvVEP9li/T591PX2bHpShblc863/apjjY9/ieeP6tq7fEMZ0PR9AvtF0XOB/X86R+qwP2Fe/79XH/YXhR67/wfXx++RtP6vmwWs/b3Q56ru0Y9hR6fLmuR1fsvqpnL9iDcky0vM9EWsHZzEvHEPhuyxlC3nsPLc0K7MQa6bF7ZmqH/f0Sxt8ARdX5I5Md6RPdzZffflGkML7o4nd3+KuaUd5Jn+11Uqcr9fn6T198XWIdvux0/2F7P04zPN7r9//03bf1r/r8c+0ONdzrN999Wd3nw1PdHjHc4w/ffVev3OPT0xq6/fa7HyaMoqfjGpr9/s3Xf67/nC/3v8zu88x8/uN+v/txe/fXEcCr/9j05a7Wks30U2fOsvco74F/2h8O2/f7Qdc3JwXcYkc/rSInrZaHQriD1ldBnAP+ssoQq5PmMFuawxWkwW+1u9/OUc0H+OG6mpkny2F9WerQm4JiFiA41dINozgFweYhORM0NozmFNU1D9Gpk6sG1ckJtgTZqdbYoK9QUNcsh6Faogo0oiDXApreOukm+DQ5EVdwbGrXsTE8Jb+IzaXtrZNqGGnJSTSPvrcozRn3xPE5PZUzFC7uy8g8vMBj+vaLL/+f6X397nF7Nx4WKLxZVo63b969ef0vMyQ5vLx72f/HqrK8/nLg6pSiIPu7qitThqU4DYvvD/WjIvvsgkHx/TdfT+7pd88P96Pvn3+p/ICYI8NhXRnefP92hhAvz4dVpfiiSB08IMS2gkB4TAYOGfUXswHc6PLBJckR3477it/2F+srBly+5dvChIjLt6Pb0qCjyruuclLH+6wzc3jn06Iu41KMmwlcgvq4y3jvw+bAxTevirxUaX44IJBRel1EoEbfE/uujkaM9z0WjuBd18YjqjReA8Zk9F4CYmqMwCq5KmCQjFgFCGQdqerAmcxAuapUVSBN9gvmQJHVNDVdpiJQs5qeKkCbjKIWADZVUg2DNRmB5gE1lRoaBmmy6pkH0IzLUwPOcIGWADNVGhoEZTLqmQXIjEsyAe7gQq0AdWTlO7u87Xn7ctjDQ7197fIOt95zU03Vs/7uXvbbY02H/QeXxoxPahgw/vsPLcqKfnmz/4+xtOjTM1fPtWJdTcu2OnuXWflWvPO6jKvxXitzrnj3E7OuxuWoyLviMkzIvBrvfyT36uLb12VfVem/xiTNfYAlNmmdZBXmX06wBfZf1UiZJdcyu7T2S44ZgfnvONcKrNPWDKkW2aZ1uqrJB88oa4F1WifXSEZ4RqSZKeGVWhrJCc+qaGZS+LhEVVnhXKRFaeFVWhrOMsyoaF6e4bgsUzINuVhr5BoWJGSpf6enhpL/+k8tMeRe3z2OmHHdE9c24vodTTLhTm8xx4BjHVeZb6M91hlvrOtpptuoDOOGG+u/3mwb7XvYaOPfuspkq9E53ui92+9OtMkf9493+xHu5MvPsI/tnNiTsZ1KCuWKL7OOpIerSwo6vTu2uPVO0+Ddsb3rfrWCvqZLcVhZCtKFmKULsbIupkpxWFkK1MXjl/s5yni826+rjelyHNaWA4gTnx5f3x2nK+Tx6XF/d1xTI7MkOawuCVCiPx3SrY7TFQM0/7F2Te3Ml+lwHZmABv3j88P9HZqW0/W0O/14TT3Nl+lwHZkqAZlLBS2BY2qkqgA9LoVaAHnUfL3pMi2DYeq+3hjckft2c8GOGi1NlmgR/FKjowrw5VJJC6CXGpmGgZdLcebBLnXaGQZdcqqZB7mMSlMDuDBxlsAtNdoZBFsuVTMLahmVYwLQwkRaAWbJS9cHWbpnBiCW3jNLAJbvH+5HAJbuiWsDLP2OJgEsp7eYA7CwjqsAltEe6wAW1vU0gGVUhnGAhfVfD7CM9j0MsPBvXQWw1Oi8xgC7VPoSA6xGqgpj51KoBcZOxciYIdMyA6zu642ZO7lvN9fcqdHSZIkWGWA1OqowwC6VtMAAq5Fp2AC7FGeeAVannWEDLKeaeQbYqDQ1BhgTZ4kBVqOdQQPsUjWzDLBROSYYYEykFQywvHR9A6x7ZsAA6z2zKFVp1AB721PCNdOU5htgb8c++nCK0gwDbLTHyvSkJQbYqAwVqUlzDbDRvkfSkuYYYDU6HyEqulB3JVFRxVY9qed6iqSxnkcpkvodV1MkrWTsXmp8UfLXOsbupVBLEqzWMXYvB8g1ZapL+VrR2K3R0mSJliV7rWPsXippgbFbI9NImtdKxm6ddkZSvFYzdkelqUrvWs/YrdHOcGrXOsbuqBxT0rpWN3bz0rGUrgpjt/fMEmP3zfNhzNo9PXJtc5f1NMnePXuROQYv77rK4h3vs87k5Z1Ps3nHpRg3erkE9VbveO/DZu/FN6+ye6s0//327w9P293gXpVR/TP9rIqnq0b3s+Q4rC0HjMT749vjy9D2lBuI98dD+tEKupguw2FdGSqN9IwmlljpVXJVmMQZsRbYxFVfbIZUyyz1ym84Zhhnv+Bcy7hKU9NlWmStV66Bo+Z6dgmcba9XSTVssGcEmmexV2po2GTPqmeezT4uT43RzgVaYrVXaWjQbM+oZ5bdPi7JBMOdC7WC5V6Qr2+6nx4asN37Dy0x3v9x/7h/ub+rJGHNPn1tk77c6STrPv+mcwz9AYGqbP5JktSZ/wMiTfMEJsk27hQMyFXvH0ySadhVGBpLVV7D5G/3tPv73K9GP131e82W53ANeSoN6WE1LbGpp0pbYcgOC7vApp36pZfJusz+nj4KxszesTEw1wKeqtVFki6y1afqtMJsH1bqAgt+qqzDxvywmPPs+unaHDbxx1Q5z9qfJGWN4T8g5hIfYKo2B92BYVXO8gwmyTfBSRgQdQV/YVzqvuuQfX7Aiyg+v8Sh+D8vIz5EeuDabkOvn0meQvcKc5yDfrdV/sBYf3UuQL/jaVb/mAQTpkRfjBk3lY7JMu509EWo9zPGeh52Ldh4q/ImKr78oK1x8c2rbnkY1/CUXmuvYqt41zf756eXY3n3unjdl+4Hi994Wt+H9fre7nbUd2XX293uJT2/WOMVRuKF0hfYhRUSDZuCF8LMs/6qNDNs8GXUMs/GG5OlxqzrC7PEkqvQzKDxdqGWWfZaVoq+sZMeGbBvzh9ZYtIk1oyRadp/bGqHE6hjLvup5I/pv8fYOjx8HDQjRLcgV8Wbq6UZPmCYl2PeKcNaiWpIdvJyLbgHpk66KQchMyKucRqySs4KmqCMePPvgamTaoRAKCPRvHtgitKUFp2B2z4uH5y81p3drfjmm9Ktg4V+fvfw8jB1spcvt/hqev+7Nfv//s0PE7t/rjDEant/M7n3lxV7/+qbN2+m6v7hpYJio7L/t28n9n4YN75r+/7znyb2/ct4sn9t3+X7hUqd19wtNNj7xen03sNDR9QvHlxiWH3z8rCvNK4uH702flTocRKSlHnBORZfSZQqq69ehjrLpiTMNMSpXqpxS6EkUT3yUy/NsIVQHDNVaNCkL/XDz/ePj0MO6sB3Op5+u95Xmi/R4SoSjWFnA/qpwrMm6WaWJLXI2rQZvn9///gWr8ibPr/ht4eK6/Um6Wa2RIerSAQkg4+7mRraP+5W189MaQ5XkAbwuZ8/Pv61jEQN6OYu/XJF3cyU5nAFaba7HUozWZjtbncXf7jid6rAcAa+VQHHqfFtJ0k5iO0MyDcL36mXbAKKUhJyBSRlRN6+CX/58IAZn394iSn/Vb0pf/notU35Qo+TTPnMC84x5UuiVJny9TLUmfIlYaaZ8vVSjZvyJYnqTfl6aYZN+eKYqTLlJ32pUcN54DtVG85TvtJ8iaaY8pN0NGhAD+inyoCepJtZktSa8tNm+JjhPDS/aw3nSbqZLdEUU36SjkaM5wENVRrPk/QzU5p6U36SbkaM5wHdVBrPk3QzU5p6U75emlFTviRMtSk/6TtVmPID32qBKT9JykFTfkC+WaZ8vWQTTPmSkCuY8iPy9k35y4cHTPn8w0tM+e9fjkzUksIunry2IZ/vcBqr7MXbzTHjC4LUsczWSlDJNpsXZSLrbK1MFeyzeXkmsNDWyjLCRlsYK3WstBO+0aixXP5C1bbyhO8zW54ptvsU/QwTrRZ1U2UvT9HLHDlq7fZJc3rMSB6Y0bU28hS9zJVnis0+RT8jRnJZO5U28hTdzJOl3l6fopc3+7v9/fPxh/sPQ9yzRe280M+P8efr6WiJXIdryYVZ1Z1cU8XCHOtOrJW/4qgxP/QNZ9vyU2QcZhQuSjePWbhWrikMw3kR12AaHpSWMQ7zZ4eYh3PPLjHi31Qb8RdPXtuIz3c4jaltFSO+IEgdb9u6RnxBlIksbusZ8QV5JnC6rWPEl8ZKHcPbhG/07fH57f7u6XE3QJpT/EaPx+dD9+PVvtECmQ7XkYn09MeX7d0wdc6Qon46/XpVTc2V6nAlqeq2+rKqFmz1U2QcJmZad6uvlmsKTdPVtvphaRlp04StPvvsotD7w8tLbej94tGrh97zPU4LvV++4KzQe0GUutB7tQyVofeCMBND79VSVYTeCxJNCL1XSzMSei+NmbrQ+5Qv9fbjj/TMQOCp/KUOH3+sPQU85UstkepwJam2u10n1WShtrtdJ9S6368mNFb+fktCY1OkHA6NleWbFxqrlmxKaKwg5BqhsWF5WWjs4uGh0Fj24ekHcy9FuJwKlz13z0ze21upT6vBOWg91snv3r3DR6oyTXq/ph+WhKBTXpNkqDkYNkWE3QwZqk6njQlxfqvTodLM4g9e28jK9jftqif+anMMrLwYdRc/VfZfef9TVpCJ10BVSlRxG1RWmgmXQlVKMnI3VH6M1F0RVf91hi+aKX2XqhWr/ovMkaI20jdlpI4F1srjtDauNkEnM6WZEuWboJuRwFpRM5VxtQl6mSVJfYRvgk6+eTpEQp6B63ZKinl4Ohyfux+vpp35Mh2uI9N74HN5fri/2x73s5W1Sy1cQWMLpTtcUTpgWr1//Of743E/1ZgAktX7x39PP11NW3PlOVxDHtDP9m+z9bP92xX0M1OewzXkQabe7fwBtN9eYwTNlehwFYlgfdr/MldFu/0v62torjyHa8hDa9APx4fvXv7p6fmb+w/3E/2ouBQdjw9PLz8/PT/EFtZckUi6h1lLEsk16u1NXJOW6mv7t+vpK0k3R19JrnX1td8uHmD77RVHWCffHJV1kq2qs6/2vyxU2W7/y9U01kk3Q2GdXKvqqwJ4LmpqAew8QcLhmzJLss27MLNSqin3ZmYFXOP6zCFZ2S2a7NGhyzQzjy6J6f75QyXUyB+8NtSY7W8S1HjxanOgxrwYVVBjbf91UGNekGlQY61E41BjXpp6qLFWkmGosTBGqqDGCV9nEOQrfpcqkK/+i8yRohZqnKCLb54Ohzfb49RvQrjR4YV+uZpOZkpzuII0YNrcH+62L7t56tnRj9fW0HyZDteRCVa7jy+H41f7x8P9sXxFVHm9g1/vul+vpqkFUh2uJNX7/fEft8+zNfV++3wFPc2W6HAVibrx9PFl2NAbGVCnn688oubJdbiWXHFMzdYWfMIr6Gq+TIfryASu19PHx90PL/fPX+0ftjPm3wv8/vhy/7yLv19NW4skO1xNshhu+/vhuP8wU2cQ7MLfr66zRZIdriYZ2Jf37x+3D9/sf9mXUYeymYk/fog/Xs/anC3T4ToywZGAp/vDfqaaHuG3q2tptkSHq0iEcNHhfvdx+/D67uenN/vjx5dHsJFnrF2xnf3dz08v2M7DUwUN9pQ1bA1JD1eXFPbLD/dzNkr61Xo75HQpDitLAePrj9sZsA0MqJ+2q6I2h7myHNaXBfa9vx33L4/bh9n62ccGrqCnZbIdricbhFCeDt/8y3RtfXg6PIynxEzQ0Rw5DmvLQfr4cp4+7tbWx2Q5DmvL0d0bBjvDl0+Pd/vtw4f9wK1dRf3QA7Ax3PWaWU1fa8h5uLac7/dHis//4eNPP+1fvthtn4/3v8wAqyhU/yO2sj21spo2V5DycGUpmS7ngX7nEq6N/C2U7nBF6Zjuvn36cP+4fZjpMZ5L+Ugtre47riTt4VeQlun2T9u/3X/4ONcbP5f2A7V0Vd0ukPbwK0jL188fD08PH4/79XS8jS3+GrpeQXq+xl5T+rpUiAF/dnYqxAQJB1MhirLNSoWolWpCKkRewBVSIQZl7adC8EcHUiFyjy5JhXh991iZC3Hx5LWTIfIdTsqGuHy7OekQBUHqbgWtlaDy4su8KNMyIqplqrhGMi9PfU5EtSwjl0cWxkpVVsSUbzSYkFD+OlUZCRO+yyw5ajMjpujj9d2xxUulB/Kfy2rZ3x3bu+7X62lngVSHK0lFuhKLdCWupKu5Uh2uJBXq6vHL/RJlPd7tr6Ot+XIdriUXhokeX98d5yvs8elxf3e8hsYWSXa4mmT9E4HzFXd2Cu8a2lsu4+G6Mp6dGLx/epyvx92pkWvocbmMh+vKWHkxfFF/C3y9KTIOXxdflG7ejfG1ck25lj0v4ho3sw9Ky24E5s8OXQqce3aJy/eP+8f9y/1dpduXffrarl+500nuX/5N57iAAwJVuYGTJKlzBQdEmuYOTpJt3CUckKveLZwk07BrODSWqtzDqd8OFvC3z/u7+5/uyy7a8NfDFeDUxKrfb7F8h2vKB2P/aVfGZEdGPf10XX3NledwDXnqzIRhLS0wFabKOmguDEs5y2SYJN8Es2FA1BVMh3Gp++ZD9vkBE6L4/NR93J4ow563Lwd2NVL/Vq+fPj4i6e9JjNJPFkhx97LfHlmbbz4+0tY5Js/4j1eW7A/3xz/vwXKZI1n/x1Mlu7BAB74csz+Xf7Ae1xxe4dZbver6i7Rz+POLtStrkGcaGqbBe/n4OF+wl4+P1xOL2YJTBasNDEwW7cc0KOeJ9uP98Zd9XSSnSrTzwFb8AUV/6WcHQlLKzmH5N1cPdo10PS3sNfDuswJgY8LVhcKmS1UZFBsTb2J4bLqcFYGyMRknhMymyzcSPBsde3VhtFnfl54up8DXfNx/79q4wpddLuHhqhJud7sR/qFRAbe7XSUP0bxvTA8MA5sVn5menQdxzpIbkeJFIt/FFn4Nab/f7nZDFxPWqTi1cXWJn7e7H540LO8Lptbzdnd80j/GRn4NLQ8D4BUqngeFT5d1Cig+JvYa8HjlG+TdlMyvhiDz4V+tAJ6PGJK9p34lsHyusdh/owXg+GSDsKrnSWD4fKOvSpZq8HueYVclQxXYPd14q3z/kS0x+/qZTXDRaKiAY/k4mADDjmpgav8TYeA1jKm8FhaYT7WyTR4ds02kem0NG0UlVc0zg6qkqjF8MmItMXVqtVUD169hzlTJMx2eX9lkKUuZheNHzZKL5xbB75eD6IQjfzzePwDe3j0z3BM+nu/n8Wm3p6MTPzx9tT1ueyOEd5h7eHbPu9jAD0/fds0We849vMo7f/Hysv37SOeF52f3vz21UfXyhefnv//HDzBO8VVqvnr28SW9/1g32tiDK4y0t8eX882iPMrowXW+8EinmWdn93vAn1folj84u0dImce2MkY87zTzbFW//9a8un/c7f/26vf/9eqX/csB1vrfv5IbtQmvmlc/3e8fdodXv/8LidS8unv6EA8Y757uPmLx3+JjFMuAh+npf2hfNX9pGys3Qql/+7fmL+nHWIF/SG2c/oI/FK+av4hGtRsdZO+H4uKHovdD+ar5i2x0uwn9DuXF72Tvd+pV8xfVGLER2vV+qFASvdFBN6oxG2t9oxu9Uc40prEb701jG7EJrWpcIzZe2MY3cqNb04TGbKRtRNvIjbe6EQIKzjRCNnKjhGuEik0I3ZiN1rYRBhoTohE2VblGbVxoBDTbStOI0OiNsKr/Pqr3Phr00Day3Zhgey+k8U09CCbbRm2UtP2GdK8hAw2JRuqNkaLXENTAm2trGwfvY1XjQQNGwZuKjbWmkbIRm1a4RqpGbqzzjdSN2EhQhWkkNNqAijY+mEa6pt0Eqxrpm3bj29DIgA+bRrXQE6gCdNgG1Sho2YXQKBV/rjRUCdso0KGXolHQstOhUS4VQELTmkZBy06YRrexQQ0yqxAaDS0rqIKWnVSNRpmVbjS0rL1pdGpZp5a1p3b6yjQ9ZdpXzV9ACAHDp6dMqBGgEBE8fGmxsSpEXWkNuhIbrzzpClUE/Wrl6PXhL/RqXpCQxorGwPcNITQGlKa8bgwMPC9EY/DVlGqMxr+YxmDv8BfbyI1sDHxT4W1jfHoiYIUFhWljGitihZU44GUDctFfdPwxDAH6C35kGRrr0l9SuzbQw33N2Z7m3KvmL67NDUOsAV04HH1BuwbG1EaS9rSKA0x5SUprYfbBo7J1MMDkRrQBBpjcCBhp9PUlDCdsFUeTkv5MwYJqcKCA6ml8BEejAb6TAxGst42T8S0d6MZZ0TjdqI2QpnHpozqbnqHBJBqXdONCLHiQz3nXV5LrKcnD8JKNMBvd6p6SPM7VduO1xrkqQCUCh4mjJccZR+PO205zkjQHIwFnZmtJcaAmGZp2YwMqrkUJlUCdRg0KZ2homqhBpyXNR6stzce2dTAN203wUZdSedKlsIKmGDyj08Paxx6Mgl/pAINUbERwMOBigX4lYVTRX1wbf+V0KpjYoBdxCfLQu9Gy8SrK7uFhwBK9SVU2FVwqoDxWNB76akMTcJUyoQkiPhJSw0GlQhorITUcUsMhNRx8KsDnb0FbbXoL0YqulBoXrcIRKRrRJrlFi+3DkG9t95yLLyxa3/0tpJJou5JIvxWxj/64871xF2DxEio3O6FK48x3uE1aI3GbDJrGn2wFjTZlaJGTNo467SXtA8YrGm3eWdoHWinj8q8kDDK5aW2cr8bF5d8ZRcMNGsThhgV469bH5V8qB8s/6IvmdNvG1R86x9Vfapzd7cYHWldbF0cmNGcs/djSqixoZAUnaCaLYGhAaYefUmyCVPgp5UaZgJ8ylkB7sQTLQwtTEeYUblFCoOocfBhUHkw1nKxUClHBQrbpb5I24EbgBkx/Ul1JU6n/TUPfAgODDFapjPWGdWBDtM6QESGNbGBNAbuELVGCWXZo2sFoyLSbse765p1A+843AQZ7/7cyGmpKoX0GRkNoLK6mAkSEhQ7UDV8G1mSp4iZqYRpJ37iNZaNc9G1EoYpGFVZhs0b6aFeJuI62sBniDgWbDU47+BTSwkOw2sGmuJHwiGobjRu2UAJqYdFQsjEbD4NbKXqOCdk3/ASYb0LpRrlNy1SEVWicwiaJEztYEhLtMEejmTZHG2CZlRvjPdgGaiO8hp1ebQyshMqAkrVmwvSNR2FQGNsou9GefWyTTB4tUIh245NdI0yguR+cIhtQpwluvYYJLjetiyYb/AU3DbTLcO6DyPitlSCTR1pHb+NaS5aO1gqWbbWBNVGAHbXxsIqCjbVxsOqpkP6m264En0WCxmA3i39TMLpgEGmypZgJKPo2oLBFixqrbib1iEkt+pahcEWjGqtuVnVPeX2LUfiiXU1Vn6thLfoWjghF0xqrbrb1zbZey7YWfUNMtmXrGutu5vUnYV7Lvh0s0Q7WWfua6tCuFtFq1bA4YF+wYmAV2N5oX2oT961WR/sSBiVZ4zD+yaqE8UBWpUpWJZhHZFUKwdY/yWBVtK61zUorcQGUG+HIamkdQaDwtaBrYeyZJYzzmqwQMJ+cQHQTl2i50RbmMNnFOD8NCKtdYzYClgbtG72xklkEsm+nSzTGdcgKq0i1MBijUSRbSUsl6BjG40aaAHt6C1uRwDHtcO2H1djCcoY7v3S+EYaQ3NAI3PsDPodGEywYBsarhW+AQ9kJ1QhcVqnku1JIJdvingglnL9CN8LK7m8K51dohNW4RdhGWAMlGAAWdyGsdd0vfFwRhcVXhEGOiza24kR6zuG+AnPSqe5vOkmA845qberXwbaFzeGkh1d1uFTDQPO4osJL+64L3AewOY9bDKyNuBOoi+/Zd2kk+S2w521a3Xe8sA5Nq4i7e/L2FKxSuAOBoYxKSKua98m88x4WHbmROg4/sGJp2MGrgNlLcwmHnYNl3cOs8prPlr7bI03RUcQqQRakoIkMKkIJtVVx2raOmW2y70PIMpAsb0gyt3ll32GQrmjLYdXNlrvZcmvZcrLvbkk/YMv5my33ydhyfe9QIgDuXWPcppVsSQndgg/LAm5A6UMCxgY2mYZtrRHegyV2sXr13QGF7oAPub6orutroItGBNCsYfCd6tuoCu3QIHKGlBIj72UBhYWxawEp1HzLVH0DU6GBGWS2K5l/rYseSm/FQv1oAgaV7Ur1tmd8Kx27DGRi2Y02rP2+uaLQXAk6277utc/bTS8QeA99+0KhERFMJs9BmZEXAFBTS95+37xQaEMEm2vfFl4gtlt8g/4erBCZC9koANUNjCwnG4/QElg4dhOMZ331F12Fi27IugNUB31pHSAJA8y8uNPD+oudwgpBaDThWgJxWUXeWFpVjU2rKq2P8C8u1j6iT94S1BTAO0I7RRrY5ChkQEse9IsgsoXXdrJxG7T+cb8EhyCAIarBcGwbg73DrpBKEmxT2Apb1f0tvRIaHBsHsBdA4FDLtNZf01RAGzb/hUbWNNn6xm8shBraQCXWV39N0y1C4tlMIV1Y0+JMH+9L99c0LbCv7JqGdSag/+nBOlUbpxy4qHrTghED+Dd5gM5DJbowoGsP2TQCfGoIl0hM64FacHcg9CEaQNzdxnk2L3R/GdQY3xJZPxvrMIhhVVa6+TI1gDPkpOuvnBoDYMJnpVPJ75Ayxg1gf4axSgU0bSza/moDazdOArCiSa1gtKL3jdExDVu7UUnT6IXhWxkYy/hWEqweERq3UXwF0CwZCrOhZH586Vq5QfM6qDO5Z4jrSNyi4P2FXqMjKfOD1ZzBLhBBhDANBfXECW5R6M3CziJA7wCTg+euNxKsLRQWImEkrG59FBaMGXCY3cY73UipuhKNHdmAtrBP9gL9nURjsEvmxzPVnUchVfBdFBJNegtLJ0oewF5EydHcRsnBsSXJwfQjiVC50lGYksnW34O0w/7zo7mLHLWd8xxihBTwMzKpZaA1P6i46GMB/gLzDMeJlYreBLYMehMDMxQHjFSEo8Bmmt4J9E/vhAYbrvwBv4aB7EMwfvHthOVztb/raY9vl931sI4wAgjqJBCRgn1x7Ldx6EM4EN8Ehg6+iYa1Bt/EgmuGk0CBX4nvBGMojrA2rUkQIaJ3wqA4vgloU7Ww6Cj+Iv2NSONGpPJzAOoweg4jwcRAL01ikyaxiW8S3yOAh4BCW9jpaeaGJKoB3xBFtbhUwmQAsEShzcFzG3R/HzO4j6msZWniPqY32sRMUEXpnoAVasruBIsIZ4ROyQnKJCwB3tABEAqwGs1D+LHCCQmLk8J0VAAhlEWpbQNeW/qbp+f6L2D6m6PBzVFlB40R6QVw/xVoWaqo9Yg0OeliKNDaGHEOJppMOkUAffI/IcIrYgExItUqgnCggGG9kOZRG4FstXEyDTAd7QARNziMyAMWJMHogZQJ0I5BPxS0AzoJqB1N2R/KdX/z6TkNb2jBCNMi1WpMwYCAI8b6nWSrtulv4gY3cZ11AEzny9g488DwPOWhqBaHnoyvmNYy30LnJpOjYvpbtMEtOg/UGzXcd+yRTCuFa85I3/1t1uA2q7Mmo9EL3juXm2NYmjLulHnM35gF753tu7/JGdzITNa8MHb+exsBKVaBD7b+LmZwFzNZx9m4+S9e6Ly/yRjcZEx+wetcqzbFf/JbqFaxdwpUWdhKuk0RJNIbQHCk0ZjOpRpp0PSA7BBj06ZoXPc38JECLNoGtgZYeKRt02+toL+x9+rvOQb3HJtXanR+JIbiKCk/mQgp06t7K8A6CaQKtHlKeE98O29d2t5l2tRbgL3xPY3U8e0wz8LASuXBocO3cy69HWwL9Hb4C3w7+huYbOAkg1BmIyQDRUx/67K4ddlsONK288ewtblhZPvbjsVtx2YXDivmj+FC5/3V2uJqbbNmoF2wWtuQ7by/XFtcrl126bALlutC5/312uJ67bKWlV2wXiM+c9l5f8G2uGC77NJhFyzYhc7ZOQxcsV12h7YLVmyIh2Q676/YFldsl92i7YIVu9B5f8W2uGK7/FTzySE7hwxPoUkEj5VkWLjtL50Wl06Xn04h+R1KJGhNn9JNI6IWogEP+KZIBXKzInIGUQMy3K0lUNugT0pqkYZL2F/qHC51LmsqYF1nk5NnJE4GOO1ZJrl9yetLTl+CZWSQ0fuzycOAP0UHD76sQIAO9402lTx4QxD+kF4kq93LrqSo1H81119IHS6kPjuusY6ATcocoWgkAZsYJALvSVEwUocEZ4YY78GCjlkmGPyFFFgM/kKwCUO51viIdXoTMU7wdRB5hITViG1C3gOiKfBiAjPyANGC70h+PqgHNjkZzXEXleI2FgJcHjEtRUpJJRj8Cp+z3d/QJIDBhCO3VWwLdP2NwMli5jRVXTVz2vU3BqfKmdOug9p+45nTrr9fOV3MnHb6ljk9njnt+luwM+VDdeZzTv51fWvBobXg8xuGTaiIVSmfR6i4aWIAGZKIgme7smOnG9EkCFkz0LmuB8jvw7VHxZGrbBxfQZzlLWGWnzYm4kUaQNWA7hwsYQFWT6sYNur6ZoJDUwASf2CP7cvT8+sItuoSCTCSmbyvc9/Mob8D3ovdaPRtOt8sJLBTBg2YOAw1yAeMJduVXPLhMOxHpRBLqo0eHnutvnHiwBJQbdbidSHp2cEKKGDn1dzzd31TwuNBqDbrJ2IdbfkAC4PeLRxOAmxLY+RGtboJmxbmPyTbbCABQbW2+5ujUl8C39/xvUAJsuaW71wng5gZaCh0sD+GghAyx1AQDgtM/mpNDBSh97qxrW+UaBuPJpYSIhco8v2t1MNmBrM9J5XscERYm1EqJ9UZ/kpSAQxJUsHUJakgZYikghQ0kkXDYisUwbONEjoH1Pr+7urxuL/IertYB4M3RlQMfgbMuQEsSLk0hwz8DfKmNhDggEGZSiGWYFCGDe4TlgIoTKr+/ubxaL7I2uZYB9leYdNCworFLFmkCYCdK/g0YsF8ChAIhlmmhMdTeiAB5NCgehUEwjYSdy1oD1LplJRdScV4qkKMmZ4zVGLi97cTD6umysd6sC6OO9gxcDLAwMLP6uEDS9f4jcN0JcTcYIJIjOhCghzYxkEFJkB/nfawqKp8pADrTt0qSe01gESFjQNdKZ06M12lTdJBoDX+zWdF6S/o3qEo2S0D60gX3hBeZTDZiMTDdGRUS4BnNMw8D/Jp0ZVkV1JUYsKwY+GwCEJGdSZlyPtuNuqYag5nIQnFUg1aaEhUAYkOlOphMMyDM9bhWi8QcYcwcwTcPdiJCLNDri2B6/g3bbpS+puiYAUaqfABYMjCtmAxVwFCJPgce8H+su5xWc8Dz77LVXBgJmGeCthwp5UZRp7baEEjz250EDjgPOJ5kAmAJSZBfyMIuBHk4Wesw5h7i7E9PHtqyBRXMsU3wXyAvHJNTmPwuEtLlM5uYBUC6cxGg1YMTAfbikZBoHTj4K2M7ErgKhoucehvHAE3DpMdFFhHdh55iAKXgS7TgGSCrQQaoAwCZUzaIoztSq4reSoxmfrbRsBtw+S1eA7FKRVRHpy/qWS6kk2zR7nubz6VtM/hJKG/QwTcIWzWIgvdsn36dX8lD7iS2+xKFPTlr/sLacCFFHImM5+GFlkw9QCeRmwZfA4jUjwWJyrG+Q26V4Dc4JSF/BloFbYB2JwQIXYwEq3uSiYXkQ39dTbgOmuzC32wA4dBuvPR1zwMEvorccCVGJzYS24frENwAxKrMRKpGwxxOzpsA/AS+oHwAPqBkACCwWNw0gwdmvB4fFxuHGA85AXjOtnGFujjBEvHRTSmFNDHMV7Gj4MFwAoUoiN4Nhyag3kfS74rhVTCLHkL39ShCwgpz3gcQ+OpjfQqeBoDoBOFmfLgBigb4k+VQ8gKLFN0r1zgk7S/mwRfPNyAVf89p+ADY6TAHcFBFjNgUH0pQ5JSuWz2Wue7pbxZ1hUnSsC136lcX1QJbwFyk2raSPLk8PAMjAI8E4NAGqz8GBsiuWBfJUcPhlVCc/D0BCSHY4IzJE53EJokhgOBA0KjOwgqlejTKPSRAW8B8iq1CQBKQBL4xiIqgTxTWPJRKuVCes639Nu+Luj9zpUhyvQDVHdd/oGW8UW0coCBgCo/AyCN3vRcLapMQoB1NyxtjIWgZbwbrS7zELRdkuHtUFanP0YV0pbRyFj3ucKR9PrnqrJlNoLW3o6w3Y6wrUlH0DK+ldaVD7FR5e0U2ydxio0+1vmXRaDIi5zjSZVowYId0GUFSHK2eR44PX7eNlrkPgsJU2XXpAJPBbcx2NPgiBf8Dew9c2nvMWOcqMnglDYEfH2/m8hpFukUzvpzmMLcKIxAc4dSXDCYIXQCR/AuXUoR+c0u+6CmGwVRnk3LnSzBic6Qe0wBFAWZ1GyWEdnZ9BdhViBSh4EjqR0k07I+OkqzODEFQe1BEujO22bmEDKBgeuWG0vERJZpW2HI40JuZiogo5bKn7CjypN7l5w5wBXdBjgNFAaXqAToomg974/tt8g4pfKn1ajysr/TUUtYUQwuFsX+2AqLJE1wFkKHjeCqc4VPf5oz+W/P5joSHKn8qTiqxE6cj1HNVqdUoLaLasK2IzHY4fjSwvmTiEAJTq3lhkPoddf14gDggVNtLSbECCgB8KcVt5AYZ44g0pw8ZQRVgjWmEJmCU33YuUhGDyYj0S6jCIqy58dRbDp6ggCUB2MBk05awAtQVGH5csjYXwTyqxS4BKXojahyTDn2dnEAUjD2FoEEKQXfRMqbb3LxtdhCiYQkBd+E6j5b34RxtQikQin4JpGs5eab3HyTlXwTRrwjiF6n4Jtg5c03+TR8E8Z4JIjyqM3mi1Mloq2gKsRYkS6tJRsF9xlYMoAqK8AUIMoqQZivoygPfMrAuKIgKUDBr+DsBX4miM3QKTBnGmTrMi4qFhB0gbE5wNPpOD5GkNokgCSIG9Ka8XwIQPO4+aGLo2x8DKLelmB362IjCuM6EEQCB03hcWK0pzBhQOPHg25115nGvFt6znYl15V8V8JTqRAwIM45+BsYkhjrxbh4/JvqSrordX3gfRUaODkoqIHt+a4U0nNoz+DfZNeHlN3fVFfq+pCxDz5CmNUceZ2yYUmqJAI9GQ8tuvNoPMWoZLRxMcSGc9rHbHTIyKJzsW3MRnfWx4OxIp19hQQAykFHOgibIvcaORogmq9jYseFwcGscyIDKrBkSx8Bejw1jPErGtxw3FjTmAaWCTpqJVL+OqQLyBglpPz11sYEdihQZENQiAWWAK/ihMK3hLAkRIg3Fm8rETFqRC8uMLYIgdmgfXxdxWlYBGPNEchsUwhCyHALQlQEIRg5kEACH50/006VVV5d53Cx7hg/kEASH50/ZE6VAmLmyGsHBR1NOGN95F60IVIuAsMCPANpHAFsOW1EJF9sjYvkixpsHvj7xlkXyRfhzB+RLzpD0XSBg9WYRBWCG6P0MnIvUsl3pZBKyKmokc0Gl3z4rBZDgCbSJyK5osNK2AWRDFHHo/vtBhZICLoDLSJxIOL9RZiZ1yKlC6z67cZiHB5siYDx1xZ4TBSSImJg1uv4qgptPUh4BGSnxdA5uPctGu0K1QS7URsFAlcDDFLdgNGc/gbtOnAWFJm0UIuckeBI4BgGuw38uRaTdLWCHuDfkP6ioQcH6V44jOFAtNayq4UeILNQk3GCf0tKgjuNokzaUYkPKuasEt1TwXdXiWwU1lUfwUgc0/HIuUA2R7LDZKJ1NNGERZpMonXEI0R4lhK+rk9Zywpj6TiXQ4uJJhzoYmxSQg3dChDrig48gTUCsaGWUCLeHfOv1ECYUd3CjBeuPKPOEmogzKg+7zAjYwETaiDMqG5hxpsrv6orzxjihBoKM6pbmPHTceUZH5+IhHw5+kKqo5w8YI62RJgkY2hL8/OvgrHWCaKmy1IXxrquSfLUrFHlxpl1jVRyGlLXL05FUV0nOIUrYV2C89sWHAjWNqOlE0gEp02bbVt056ZNXAzB9UOPRBL3VCzQseSYVtbC0or+GZw2ioejIaMWhQO3CYTDUz9cOGaSIQ8cGOQ54eQC4URiIuvEJAMMTgYUhWMGGJK9FXI9qXJBsqdgVHICGdpK2Z5EJvfbzfZk9HRCm4HLpsyvcNsUs1iQ4a2U7ak7ZvTferYnI7oTxHSXB1q0uwEtFUALY9cTSFKn87RLVNmlynSpH7QVOM49JBjhndBhwAE+Uc6dNcD2KeKhy7ukqY7uHeiuGxiXklHFCSQ9KziiRtwcUb6RMJI4gcRtBe/KyJt3dfOu1vSuGE2gIC7AgneFlTfv6tPwrhgJoyCmxbx3RQyNGe8KkxIl57UUjGRREJNi3ruiupx3VWqcGW9IbKjzZIJU2Umu8Yg2flRMPxUX6W6MJVEgcSEwr2YbJzb6JHBF68waMGQN5C/LNT2XFo/4ogpLbTNrAIn6tMmHNbGya/L8FQqNM0sBifi0yccZT7x/PZr3zL0LWmWJ+AXj+ROWnNx8eOrE9AfdDdzuUO6ObbGW3NZ8eIp4/04OOzLFIldwSzcb88bZCopkejp/QpgqzwGG0dbZLEa2PJ0/QUyVdGcEgMudXgjHQArkLq4AERu74cYII+MTyI+n84SXVLmsO34FLk51m5/qtpvqzirYojUedqXekDsTe2uRFk4QSwsGoczGXA4Jtg4gHR5kKWR7hsquQ3pPisPN6potEkSvV7j419+8sJqbf9naiMx+hWAO1X22wRxGeiiQKVDnCV6pkjIDNF4vCYwykfkBsC4KWHpIxKEJoFLA0vGLIwWjJBTIsqfzbAFUecpmT27pqDPKqPsEsufpPIMsVUJkHM+Zg/sDdFiCsg2irwTTOd4GGQ/4A5MoZiQAqzSG5IFhBGPueLmgtNgQ3RBJE4ySFJQVMUkBXkMgSYCFkWYoSczGJAWJf8OUNLARDcbJY5ZCKvmuFFIJsxQggSDe/AimoaUMBxHzFZywMWEBHsN8BQveBeYa4E8xXwG4pihfAaiMKF8BGCAoXwE2H8pXgGA+ZSygg+4wZw7y4Sj/IaYuAOcnpS6AAiB1gRxFSl3w1sbUBQugLzqhIBMlKlAJ0whwe0fTHbL/MVHBYC26wwDSYqKChW+EijcixFQF/BumKmACmcZkCKChwVQFqsX3wYGlu78l/WgbEx9QdXAZj0ZfFGlZ8KpMuAgDvIL4S7oqE9K6UCfYBmob5jvIezE3mA1BTI4FpMepa6c6IAQcj4xg0gMXlxklRMCYx5VS3UCqw4W1wLtjRgnS8JVudjc3hOniandmZSHJYGF3pLrPdndk/IvCle8EpbobGHcD41YD4xjZpnAD14JS5Q2M+zTAOMY3KohUNA/GYd2EVAfGPSqIYDQPxlHdhFQHRisqkNBTu+yVplR5AuMs2ugwEJzPghuMHVQgGycQ2WUbl30wbrx1ZlQhq6b2+aOmxO6ZwRFTN7xxZgIh56UuHJEnks4cjlhqnVk8SGipC4fkvUlUjXBN22ncAC5jAg+NM25MgQSV2uchF2/Pmu5aPA0b3jbbPZFvUudp56ny8kbS7uCyA2hMX8SwGYelQMpHAAuyffheH92NBeku0nIvbL4iraP2eWf1RCV5/iZd0+gFeLjhhXfCJi4yMQKulOsktOedZN6g2A0jeBRIrljIVgpiWrYSI2oUQZazlcKShKA52UqMulEgGWMhWymoBcLNyVZizJCCqCEL2Uqh40WYma3EmCQF0UUWspWw8jecrcRoK0Ww5WwlqrtuthJjphREP1nIVgrdDZS/9Wwlxi8pwgBOHm44eQ1OztgwRaBtLR93O/FhjoO/DplP5QkG5h33tzrZ0laXjcBRJWKNvo0X0cCdTIS+wr6FrrCKp8DwxBUCrAFPOxKWkk6B4W1qdEUvqAtBGrzfk1Aa4lSViO4KBGqo5LtSSCVH55XSoS6HF7aFhNwiSIqs0dbH+4sUOsvIcoy/gH0b40f4C41uLaziGv1aKsmuhJ4t7B/o2tLfTFeyVOprWTLSTRmJNbMwIlVeie1E0aUGPPQlGQunRPrJPHBIdVVsJ0Q9JDiLvmTklhKZGfO4IdXdcMO+/hTTX5nCg+puYNgNDFsLDJOMB1S2AxQeVHkDwz4JMEwy2lJJtKV5GjWqzKBhgu5VsYE3blnjiEGErIlDlYtdUtv9rXNOBV5FJPkhYcmYFSWyIeo82xpVrueTnuSkyyEtvz1DMm5GiSSKps2mMlElfXW4Vzvg9TCc30wyHkaJnIkmf9MSVZISgTyj1CbjXZTEu5h3naUQy1xnyQgYJREw5l1nqvztus6SMUVKIoPMus6x7qqus2TskpIIJPOuc6z8DFxnyYgxJRJX5l1nqru5ziOus2Tcn1KUg+ix7nMNoktGWyqRYtTkb8OTJ97SMfIZcvNafqmVZAymEilGYYZnQjEyMZiClQfLJg45SwM1JXipmODlIsIAbgDd2tLCSo7zHJAQulIH7t8ihAGuKCaEAe5hJ4QBPhj6c3CZDiEMVPJdKaQS3tWCpjjiBR7vbwlxnNNlLa20EWEAQix0QIA/BviAJd7eY9BOD64xaKbDdoG/pj/ZVHCpgO938QGZHSAGDp5R5dVwBNiTjecWJKN1lbJ8sK2rm8+1IhlJq5TlI25UdwMS+vpjJhTSqBbWTqr7bNdOxjArkUa1gLlIdcNcbpjLmpgLI+2VSKNawlyI0feGuXwSmAsjxJVIo2rakImFU91ZEkCLl9pq3I3NhptfjJBVIv2mEbkUAKpbMwUAr2XGT043ZHI0iHGBSuTTNCKXAkB1K6YAJJHQFNObwFkTJSP3lMiDWcIxpF+IYzCWTSnDAI6Blb9hHIPxY0qiwMzjGFR3XRyDEWhK4sgs4BhKfC44BqOAlMixWMAxIgPkDccYxjEYTaVEHkmTv5KdKrv7WOL6j+uZAZpQ3jSzHoh2suA2nvgXzxpgmxQSDxbculR3wVeCQgJvK4lpeEqrZHSGkugM896csjdvjm8kjJBPqvIZCaq7uSg3F2U1F4WRBko1cEaCKm8uyqfhojDKRqnKZySoLmVaU2ATrwMYX/yZ4afLhyViXdf4Wc71aDeMxVEicaIRKud3EIujw6315HVlfS3GvyiR8hAs3lyz8tTsOelKtl1mFGgyCky2XaRVxPZkdHyCKTmHjCVRIlFgwYDT+mbAVRhwjGtR6jJxdaz7bMFURgMpNUET2VMcVFkZiIKh3nK7iLErSk1YQz6tRfev6+sIDsZXFrb/IUmgEfn8Ft0DDfArQsiH7uaEi0qoPxFBCrPRiqdsMhJCqYlZKJ+xgpUq2aHk7Fq8G6FtHN7ukHTXGNk2YSPgIkgpqMR7Zks1Eg0aKXOLEtbR+1l1rkUp6UxMYyQkk/iLr8boCyXS8RmZPbNElZ0az5QnTRM2Cgo2FRwWeG9sAUf6NSN9NlaJld1LEd+R0br3ej7/Umw9Ry4wk7+PgyqzL4XpNwIOCrXxrZTIvhVb5ZEezEAYNfdWuAXQymKabrCcDQwI8wbY0+Kdjo1RKne7o2Q0ZBKZwwCpzL6mOdu3OlcWbhXZXHiyjIJMImuYUfmFAyu7zwQkGXajZG8uKxgMhp+ekoyMTCJ9mFH5uWxcily7oNN1KRHs0ciJgciSoti1hY0O12QHDgDlx0POPKE7vsuPV11+vLAxem2cTfnxRsbwNVyLSuFrKvmuFFLJoqkJF6jEy1EUWmaQDJ9y5l2iEwlgQrfoTIENTTnzcBsV0mnE86iU/6/QS0H0SYVImWLQbKaS6EqyKyH/hgEnWtPfuOLZIkpUbHmgwXRrKJjRuFKDt3i6GApvU0pXrsJihxuFhP/DjMMtVShAqj3stQqBMNAETBC8/Qm8e3qOboJV4mKksFWY+N00HC/r9r2TxN3BDSUjIguMWRG0kFGE08WzLdzLhFeLCXcxtdkijMxtBrb3TMe2nXRyWTIaOIk8bQbyAHKNi2lHlyVjfZNI1GbAsMq1LguitwqXQ75CMNY3iTxtxrT5xlVJ9FLrbEG1A4cDqXJJZICRvkk7cDiQKn/DkQFGSSdt+XBgrLtuZIAR1Uk7cDgwVn4OkQFGoicHSPTkjUSvyrFkJHoSmeIKuDjW3XDxvv7YVomEdwXHnOo+W8eccQFK4gLMhxCcuIUQbiGENUMIjCRSEg9kIYRADJK3EMInEUJgPIrSkVWeP23kuuA2nm9HTAzOYisA0zZ4rtikAtieHjYmdJNaznwjGSOiRMpC4FzU4HvxFS1VIoNpY4DafKMv9hNGeyiRxs/kqcpTJaEZjTE2FVwO32CMgBJp74yBzWLjog94ajpVmk3woTGwRGAYxNi2K4kswMHo9CQSnJk8nTRVdt9DeOwQ1vHuyyC6AdSyNV+EGYjIwAUAjQ4bwT8I1ekmbFrwyIANFx14Yy0AT+5iBWGmElJwGZv3imPlRZsN4KG5j8PsCKTgAqgnI3ms04QCxrYR7iTEFb6Xy38bxuwlkYzLuPy3wUqYD26jwP5XKvWI6odR7FS+G7bYIiuXcflR7GU9Bh+RC94dWwGQpwtuYs92pxKkFoyMkFob+X7hFnKC1IwmSA3gFoLUDOxxCKm5ICKkBtAoQWoEnymExRKkBms9XjwcRLp4GKhW6eJhKvmuFFIJcTQEjYh5FnZxBNJwIUUgzUcYzQN0iwuqAMc9InDpgmAbaDWLtYE4cxNSBn8zSKrRImaLexcwmSGyBYAa3jEP+Keh8yhQwvMoVCLMjq9fjCJN+qF0IK+vd4oE3s1cUqFJxrIm/UC6EZGs1bBR0MKuLrI9GfGa9ANpR/6WdnSxHTJyOekH0o78Le3o5jOs6jMw2kHph9KO/C3t6NPxGRjVo/ShnKpDTI+QU+Pgg1HAyUXsFKYV4swtLNBg7gVPG6vDIW08lOC0Anxbu3EtD7YwQkiJzI2F9B7ig8RFGs+xmg2i3Dg+AINFhBEWJ9wqhKDjC/AXXHAg+E/nHjXMZiJcoMMLCo67YoiiNTZuZ7BsGoCrN2BsGniHjdLc5mZMkzKIchpR6JLYW9rZgCBLxRwFk0a6DDTAkVmLBjiN2ZDOYbg2NJF0zNCbWJlAZSS41xiws5H0AqLo9Epa6vhKCsxXfCVhuY3ACC5lkAOBtyDXC7wx8kqJfJGlwFtQ0wJvjHxSIj1kKfBG5JMTAm+MbFIi32Ip8BbMtMAbI2+UwQ4E3oi9cULgjVExSuQgLAXeglsYeGMMhzL4gcAbVv6GA2+Mm1AS/WA+8EZ11w28McpCRayE+cBbrPwMAm+KcQwqpPTLB95UpBi8Bd4GA2+KsSKqtnw8PtZ9roEjxSgdFVIUgmGVyTSjShjjcIUQQS5ghwK8gNc8wcLZ4CrSgsuHJohOKWlO0pcEEAVW5A3ckSVwTVWarltScI2SbAFccOAVU8YmeJFgsuGtUnA9kd4oS3aU3jh42qv4HCw/YIg0Bki/iazDeyrxF1fsxXHH9jnTULUJSwFo9jL7swMo0Oi5uJRPMeI9hXRtJs/VSpVViB11e2HoKMYGp5DAzYQs6RhV4qdrwdZDxC55TJB71SXBRW5YmYC6oBJzi0csDocpeCmU+9YxtwCbSsx9A+UR+IFssq4r+a4UUonwNmdTxhvMEEp5g2PKlOgGWw9uznjBEqW8KYU3Ygm0QWPOG55jMOm5QPdl+QjHAWZs0NsGYlhDhLEIxihcTm1jiDCWp5ApRoyniPsuD8dR5VXvmCLUXuDLWFhBubiOiVtO0aO6k909BBtjvx7GfhCUksz79azfchYE1d1gur7+mNmEZH15mI7qbjDdDaZbC6ZTjBpSEftjHqajyhtM90nAdIrRcCoxAMRQ5TpAjGKUl0oMADFUWQ/EKMZfqcQAEEOVE4AYxWgglRgAYqiyHohRjBBRiQEghionADGKcQgqMQDEKLEQiFGMQlCJASCGKn+7QIxi7H9KlIGYWHdVIEYxsj8lh4AY+dkAMYyUUMkBIEbegJgaIIbxFKoBnkL1efMUKsZTqJA5DvCGnNcu+5l2gzfJwCYMxgT5Z5qnUShGUaeQ2AzWnGzHOt7wDXfcYKKPBb/I4V3dkfVVkjWlcXlyWCUifIC2KsIHaLni5AfcgeAD0d3dbeLVMuBE+Jjoo+CbG3LtRUz0oZLvSiGV8O5uOG9Jd3frhCjAWcZ4YTdcHu7orm0dc3/gbLHwmL4k0nE6aARQBriJO8Q8IDQtoRJgBQIZ4BY0+F98DEEGo+Nt2lbGK7QdZPegvPAmBpXjIREw4ORHAMJ3pRAtaBtNSNHYVsQeYCFLJRUFti0F/fh6z6jqFBLMlYAKaa6ZNwQpiOJSQGb5IMlcAZqQ9lV13hD05i8sIUZhp6QrAxInCrsbINHpj9l2yINXACSkvwESN0BiTUCCsS4qIlYsABJYeQMkPg1AglFIKqRwtG3eAlKnk9Et7fcaPypyOoDrBBu0wnwX2HrtJvC70xSjiFTIjWjbvOFDFJGX3UQOI13THzOGiV+xzd78TJUdH5Mh1nYyCixeDAhGAfj5vBNmRiKFoG2zfBhUeWr8xMc03g0zGpFo0LbZi6ap8vQuEllcbUUnzG5BnkErsvdNU+Wp8SnvwqwPpOOzInvzNFWmdzmd4UhNo4WGKf28E2Z0EI+fyMdZsfLsDSZ0w/ZmpACzkHuX68afvQtaciH4Cn2xFRgZwCxEaHN9QGXX9pSvwlYDJACzYO1keiFiMQwHh+6+aLC9+2pjXTBOMYVkYDZ/zwVVpi5O7zHeCZv1yAxmRX7W6x5pArUonUVr3230RRCb0YwpZAdDgplc46p3aXpF62ySaz2AEGu9HkLMGLmUNgMIsS7BrAUMl3FYKeKwKiDEugizllpn85w4qwoIMVZOQIgZVZUiqqoCQkxUVRMQYkZMpYh7qoAQ67AQIWZkVIoIpwoIsWl/2wgx48xSRpQRYqq7LkLMWLUU0l+VEGIjPxeEmLGAKaTpKiDERt0Q4gqEmDGdKWQgKyDEVPfZIsSMnE0ZMofzaWRmQhoZWJeO8xQqRtmmkFvNynwamTlLI0sHP51PaWQmpZGJX/mKccoig8wwAmWUPb9svLtiXCCeArCYpPObWqUcM927gJzyyYTvssgSNZqDo8LoasMhCEdQg0pJZGBtoUcM58ltt1niuYrLW8cVY7FTZiixzLgr4rUWjtVc3BamGNubGmB7Uye2t1G8FuTbaM4tpxhVmzIDCWTmlkB2gdcyxjllBxLI7C2B7IbXrorXMkpCZYcSyOwtgezTwWsZHaSyQwlkdsUEMkYVqexQApmdmEDGmCKVHUogs1MTyBgzpLJDCWR2YgIZY1pUdiiBzE5NIGO8icoOJZDZpQlkjI5Q2aEEMvsbTyBjRILKDiSQ2V8hgYwR8yk3lEDmPpsEMkbCp9xAApm7JZDVwAOMWU65gQQy93knkDGqNoUMajbPu6/OqNrG4AH0yqTj2wEjaFNIrmZlPlrrdMcLpaOPoEOCB4S/4IWSiRfKh8QLBcsR8UKJlC9m8LZv5IWyCSdQbcoXC61PxFDSJWIo6RIxlHSJGApKmCXmYLpFiqiOISoRRNkEGMABNAIMgPsBDD6CGBJtlOzIomRHFnWiiGo0TjjZdlxRwJ9gcTRCSAwNMYV3XKCxiAp1Xcl3pUAl/lWYfeGGUr3cNVO9YCGGmB8XkNkobiDVy9WnellH92/w3pjN4gZSvdwt1esCOmCcf8oNpHq5W6rXDTpYFTpgpJDKDaV6uVuq16cDHTBGTkWsm1mKKKrjt7nBkuJAQ6xhxsGpiIMzS/hEdd311MLFy6UXX6JNm5EQ3GtixJ2KiDuzZE5UR7IJMkhlGolIQqnjeXoUDQukaEuMTQFPieMV2tFfUZgVRZRN4NqV9mdG96mI7rMA6ni1HqjDyC2V1wOgjtfTQB1GTKm8GQB1iJlyAqjDiCiVtwOgjrfTQB3G0qiQN68E6mDlFFCHsfApP3BjOlUuAXUYM5zyAzemU+VvGNRh3HQqlG9Mj3XXBXUY15wKAzemqxPZ3G8d1GF8dSqUb0ynuhuoMwbqMCY+heR5BVCH6j5bUIfxCipkArQqn4QRdD2oAyaKlRfdsX0SuQGtytL9UyWCOl7HM4BaR0sarp2LoI4hUEc7yJfGQ3a0QUCGSOL/1jJdqWf9KR/ERJxHKR3PBQaT+L/BsiacB/Nx0Tx2eH7QdSXflUIqITLjhI/wjofUDnLZwCVw5ASk44AWGXYQCGiBgwokAAZPwnzgpQnzcR3m41W6aM+2iWrIdRfoAVWVJdtcR6QHXsvSkFSmsThvqaS7kkHvNTRW2a7kulrflQKV+CdlxgkxOBYQIay8GiIUsskkjCFSIYdjARFiBJGDiFDIJpMwhkiFJIkFRIgIIm+IUE9/zIRDUscCIoR1N0TohgithggxClFNLKF5RIgqb4jQJ4EIacaCqlvKcs8ek6HKkw+N3iY4awK5HrWVvHHBGkd0xWdPq1GlTNOFGhdKx8bhHuLu9A/vRrJuMAKns8YaVaajSl13sNs7ICCHzR4KvAvFukB7UGcNNKpMIBJ2gUms00CkBB1FfAsGHFgbG2EtCoklLqVmUpoyiKRPhJeLQSTNqC81UV/mQSSqrAeRNON71K0rg0hUOQFE0oyeUSNtYgFEosp6EEkzDkaNnIIFEIkqJ4BImjEUatGWQSSqXAAiacZIp5HHrAAiUeVvF0TSjMRNE09bFkSKdVcFkTTjdtNIx1YAkWLlZwAiacZKp5FHLg8iUd0NRBoBkTSj4tPInpcHkWLd5woiaUYsqJEK0OrsxXRUWQkihVxmkGZMgxq5AK1W+e5cApHg5jc6OGRdzAyCRZQODkkCkTApBlWMB3joBBHiP7TwpswgcGnjCaI2EVEj9EL+NAwydKiFTUTUVPJdKaQS5fLADS7k2onuCBEs83SESCQkCE4zxeNCLSzu5M90B4dg6Ue3C5YiZHcScN9i25VEV5JdCSEhDSeNdPqboUNKjY03z1yswsyWIILFPOZDlddkpsabJWGxBbnhxDm32hg/okZ+wjwCRHV1zNQnaxH7Ddyb1IwHUSMBYB4L0icaxBsWlPTHCBO1LF86reXt0ukbFrQmFqQZt6SWA5dOU+UNC/o0sCBGhakl4Si5RBmqu4BRaDuA06sIFATOyqIZ6aWWhKO4bBdZGOUUDlmMp2ibS8XRjLZRyyEURa6IojA6Ri2HUBQ5EUVh7ItaDqEociqKwrgJtRxCUeREFIVRz2k5hKLIqSgKoz/TaghFUUtRFEZ+ptUQiqJ+4ygKY2bTagBFUb8CisJI3LQaQlHUZ4OiMNI5rQZQFHVDUWpQFEaxp9UAiqI+bxSF0QRqognUPgtrqD6KMsc7ZYyBmhgDweO4NFFUh6LA5faRhVsl8MRH8AQSYoh+xXS3eJnuFi9Yb3GOB7yxCx1FndJtrE23eEnYVMgDBYJu4l/Bku9KIZUi07bElRxWoZRkAx5uBE8sUGj7eP5JBR/nrDUtSqoba0RXgsVCWtNYgkCcayzShHtzsYYyS0ANYSDKXy/vBV4pk/eiGY2iVgOoR6qD/UOcrFsYTnrTwu4XPFy+5bkpx1gUtR6AOPQN4riAOBhFpEY2x8L6SHWf7frIiC41clMW0CAiwbyhQTc0aC00iDGhaiI7LaBBWHlDgz4NNIix0GoimgV0Bcjb2Ieddi5IM6JZjdywAgIWmbYnHgvSjGhWIzWsBmvs0oAjnlk0w0wD+5aDKQeFAJY7xsdgkcNrTVodt4/ki8AdprRZgKsL+cLe+ziYWnQUwMUCol9c7uKqomFEKrRRYXS3QJ3tpcRrd1O/DpOfKeVZ4rW7Et3YFnqEC1/wOaUhWakFBnRHt//SBSkERilcsVxn50ELugWTSUvRaFh0Y8mnkmi7EjqKIjQa9sH4N9WVdFcyXSmkkux+K7vnZHoO0QKstQYv7YUkKriUBa1ja5JUYDWn2oAM77Cmt11JdCVJJT4KmBmPHL7atNlR0B1BhxOJiw8iEiW9giELPiE4ulw4ZiQjBTBcZZMTzi8QDjP0YNR1Yp4LR1FHnk7H+Ij1EB+xXspHrBkfsR7iI9a/cT5izfiI9QAfsf4V+Ig14yPWQ3zE+rPhI9aMj1gP8BHrGx9xFSDG+Ig1ku5am09eMdUHrsg/v8yVYZy+mjh9TfaWA6rUaBDqJsSdGVEfoyLpruruXpMxZcbBq8uOdBedIvBScDi2mvh1BG7eAAQpdEEFAi3EqoODWxK/jtpI5OHBcZ6SaDQexXJdyXelkEqI+QSwCD12FnSyKARtUyLe2WLiQS2NgwN0CIsYyU6YD551smQqNjhkN+B3WDJ2Lz4ns8FMmW6mq1Poc+O4b200tTSMbPyaCgYXQAiUca5aSHMBKxoDbArcKiXBioBFRan4HO12SBMEltlGXeTsMNJfTby+FhzRjXV8JJwuDjjf5Lq97ew2GurvMtzEOHw1cfgW1g5/Wztq1g5msAwQFesbUfEl2MaIijVSxxbANqr7bME2xqqr7UDqlb2lXt3AtlXBNsb8q+1Q6pW9pV59OmAbo1bWyIYMYEjOHrV9+h88DGajsaMRLCLcQeH1eGCGtBdn5hjdsrZkb+ejqlgZDSg8TG/QvPKNxbPl/rJ1Zl4jQ7J1+RN5WHlqvWuzsfAxwcDirTPjEhmS4RNlW0frMkXuqBupGutUPPDndO5GN81olzUSI1uX5dmkSomIlTanTlRo42VrxrXZOCGjW9bIOGwBbbCbNl4NcurFnxTlfAOPOUATeZvMHELWYIiXZiUPfeU73/hNC6/pQo7pSzMOYo3ku9bnPy1WnrXuRWrdSyqx1hmVr0YeWrgpRXk4ZsBaF/1hifoX+HHzsjNWW43UrdbnnUzXZ05PTuaUScaoYTVRw5rsNXE6UcO2yKWKe7+Uic0D0A5k81CJolV1V7ngUQA0PAG5oFyCdJELrjeG1pwQiTtM4mcFuIh4O6jku1JIJbp2u0spwCu7ia0DBCG2DuTeQGYOT65kS1uBJ5ZZ9ClbdJgQQUe0xRDxK8xZNCuwRNQgYO96cmBcY9EQaGGdR0uASmSaQMl3JdyzoRbNASoJKvGvwpY+IsktZCiciF3PGmCrG3KrFpzbVEeD5wyYQEcRUiy6wYNKAQfWxjXw8kA1Y3HVyLNa8HSIxfXm6fT0xxZ14qXNm+/O3cz3m/m+pvnOWH018qyWzHei/L2Z75+E+c4YczXyrFqw+y7jeVhHbQMdVQA71F5QOTCmVo0EqzbkCFWpjsKPTpSbZBytmnhY8wF9L86Pd7i4FIE5gNcgUzhecxp0zahWNdGp5uP6WDfQdJHug1GlamQwBc4wA4cz2XEAf35OBe4RN5sWlkS8SByOdtqQP6nCeFE1Upna4PK96HhLOW/9dGFxsR9mTCCpqYUb7nL9mPO3waCdD9n34r0wwwHZTS1u45le0HIYar38bdgGS6ypbTZ51qcb9NoEYgNHP44IZdJa5MlEgH0Lg/8y4BaiNq13tNJrvHoQrCkDxgxwDm8cpDR4uGcZg+oeM33b0Di8exlqHZijGwNsL7DvbbRRjWshbCAu3okt28imakQ2k8AnxB7Sa/FVZETY4Q4BfCWYnvhOvjX0ThC4wKAz3IkYaBEL9HLSu/hyKp5dopVQ4jehuxHpOmnXGPRHAu7e+OpKxNcE98Hh8RcPm0gLv4XrEB2YBVDib8yWM6RMNSKbnuBDfGNINDlFdk2MQp/CtzHMjqaeF+oUZsc3hpmFb+zPY7IYGGtNVEELf7ImlkAFGsO04FZYDDGTCrT38SXBbsF3xAIkmUAc3rXAwQxgcQuLjjRQClTimmDLMJK1lqJDWLksOsTIYHUoX2VDdbfo0Fh0iBHJ6lC+yibWfbbRDUYQq4kEVuSxndChkBKW7RZPMJiIj0iTkp+ES5lGsHeih2s7lE9eZMAw4lWNzKhO5Im2EvHqZwGZZIESJ9DHFDOAEkyJQZDFIcMqlSLwwr8KM1LCwPU2+sR8etYAsz/CQD5AsPWQSQeUoCrsxouLAcUsklC+iobqbpBJX3/M+gnlq2io7gaZ3CCT1SATRnurw8BVNFR5g0w+DciEUcqati1CJlQ3BpkYRmVqkH00D5lQ3ShkYhiBqSEC0yxkQnWTIRPDyEsNMo3mIROqmwGZGEZfaoi+NA+ZUOUMyMQw+lHTmjJkQpWzIBPD2EZNa8uQiTljG50EmRhGO2qQKLQAmVDlLMjEMAJSQwSkWciE6v7nQyaG8Z4a4j3NQiZU96lDJoZxsRrRFiETqvutQiaG8cQapEotQCZUuQgyMYyK1YjyRTFUd4NMRiATw9hkjShfFBPrPlfIxDCGWSMIr8imCVHlRMikA0qih2uU5yKwbZdYVyFxPydCd3mMdPHsAtyDQrav6rATS9gJfDPCTgQeLAAfzETqChFJLNDrxNtjFHpdIaInziT0hG6ZsdFTJviESr4rhVRC+AROWhF8Au4ywSe64/0E19jQCS8TcRQHk4twFBFhFGVlxFFgpSL0BHN9HJ2DotSvFo9eWvwpHGzwNhWQYAMsELqJRqvGoT0MtA+O7OEApZBKaA9jLdrDrbtYGZndIgauhDEnNtezBphJIspXtpzqNsEbmm9wqo7gFC8TnJJgJ4WcGaAbi7Y/6MZu/MVYY8aKKF/jQnU3NKWvP2YYifI1LlR3Q1NuaMpaaIphxLtGDlzjQpU3NOWTQFMMowQ2RPubR1OkqEFTGM2rQXLQAppCFLCjaArjFzVSldGUPr9oNZrC+EUNcYjm0RSsm4OmMIJQI80AmiLNTDSFsYEaaQfQFKych6YwYlAj3QCaIt1MNIURhBrk9CyhKVg5D01hXKEG2T2dzJ4NoErko0/cBUaczp2adJgcEQdtI75gFB0qpyOpAJ5YdODoRIEGxxqPFMBVgoAqUC2hCl5d6IUtycgPCu5bTl7VJnmVj3KCz450D3ChIcrZRnhAehPRHu+jwPAnUhycSSBABFZdEl3JKDmwwhIeEhIc4i5WHEZkapDL0+EFixnBMY0fiT9klNOEKGenWAzKopzwJ+KuQMZfzOv3LkE4EDMliUF2wCgcvD6Xj61fyO1ZgiGUXAxDMO5Qo8qcAFR3gyHGYAjGO2qQNLMAQ1DdZwtDMD5RQ5yhMg9DqI6zGu5iQx/R20ifoIAxhfAIBISRvybYhEcIGX1EuN+DfETbcieRMXYaZNQEdoGsMDYBElqna0dUOF074tGCAy9g0v0jzpiF94/gc2C2Z24dIfgBfEEiUZCAvyKGAKc3CH8wsLqhbyEIiAAHSTaaPEMYNg6ZrGDW4DCBS3HB2oyXjaAHpELHuSkbR8aK1Y2jA21gkOM0x7/hPL+4lMQwPlNDnKUF1OHE3nnWANu6kUCzgDp0dYg6nMAGWsNbo7KwA6jJbABeoXNy4gJeZ6SdRpWP+FPdDXfo64+ZGcRHmscddHvDHW64w5q4A2NzNUhZWsIdsPKGO3wauAMjnzVEPuuy59apsmOJ1BjYAEo6nQ4d88aZSU30oS57fSxVnsghK1pn1iVyUmoIDeda7xFcarwtlj5r7IY3zuwx5KTUXuQbN33Rx1tnBhZyHZZ8G20X+zaMS9EgfWHBt9Hu5ttU+DaMAdIg6WLBt6G6z9a3YXyUBhkjgQgw506c+Cj7vg0cut/4yHpWdm7IEtVBoCVqN15fzAVmSSFlI2wqOWlM2zk3QsVbFtP1AEqTk2M8WAIt5O2Qi2PTJQEePgKam8hxT5cEeBU9HAvrOlqcGj41mpwt/s0mMwDNzlYlD6dVycPBEto8LXxg8nCQNxP7NUhkCYipig6OiMFpcIRUcnAghhiitUqeDuTKYL49JbHjbhhkZJWzQImLbKWQfg50jdGYo9kjoqMDsllHXpqMng4gbQ6bg9R5h82p1jUOB64OoXFkLWKtoxL7cIxb00T+zLwfdCK+PGuA7XXIAlnwg1Kd2sA2HXPYYXW9XGvxZe0mGO5GM5ZJgxSJBZ/HqJvPw30eRilpkPOx4PMQ3eTN57n5PGv5PIxh1CAjZsnn6RhGbz7P/3yfh3GbGmQQdSpLnUWVneNAJgfMb9jD3MZdLvrM1Ea6UKdCvnHXcxwqWmdWJzJnOp094EeVFIYJHckREC0VW2eGGvJKltwSExa7JYy30iA5Y8Etse3NLalwSxi/pbHle3di3WfrljAyRoMUftBCbi7ZjkxMQgcJII9kYvDKOHchwHmejWcpG4/3zAxD5PJz+XvlTZ8s8PwM5QV7WezQizTFL3izDaMNNFbHyzkkWGB8gJwSLPq3giAtnpR8/WCsgQZ5/sDEz4Emls6PgMAYafEhUsuBi5HhJDSMNdBE1sAs1R5VBuCYNp4adxsPkw0bd3gZLB4OaC80xBZwZPhzOh/Qt939cRAXxwVFpCCYFzEHV1AObrsJYCKhZwhHLygH18br48QGAvWUg6uCizm4OqXgipBScNEuQquQSr4roZUjYwauhlxRysAVKQMXacI99e9j4i1e2IGOIS536BhC1ixl3uKNHgp9xYDcgu0GUwQc2sZKY5pt/JtPtY4MCd+AmmPBpoJLBZ8KIRbIZYaCSAWZCioVUssmtWxSy4Za5l+TbZh24DY7cyJePGuA7Ym2fNtcV1d18NnhxXNA2OkC8X/yntnu6MpX0FHdzX3s6Y9RURpXpnqmupv7eHMfV3MfGVWpcQNUz1R5cx8/DfeRkcIaN5AF6+ZlwTKGU+MGsmDd3CxYxoJq3FAWrJubBcsYT40byoJ187NgGTOocUNZsG5uFixjgDRuKAvWzc+CZXyEBtkEnclDFFgJp0bBVccLpWBVP50uxnUDtqbumLGMx7vIlwXM38ScUszoFLARgJNGVxrj8VM8aAwBgA3YwhRwMei0ws1acNEPNGjwYK+zLZX4WzGLBgkNwa/LvRWRIuJx15grC+dbSXVw501UnUYJ4Ggrn6eMLtEgtyHc2JftTfw36hB8gHgwe1SHjKHRIJmiy9+zRJU1OqSjiZchDEbVaJBUEZLVsr2pdKGZdOl0u0+6U9HsQZwEl1jhSWXgA3YJz6AygwYyKSrAPYbgwUV3Gw9QtzoqClwrUhSVgNZeWW5IMyZIg4yNzubTGYkJ8gySozPVGlvPpSEw/keDTI3OZtnaqfK/VUUeT8lfqIit0kgD6WwetSR6yayKfNZzZ6SSBgkZXf42Aar871QRToXMKGJLP3IsuvylBVSZVZET+VHEFnzkLYRQbbb18N+tIp1XEVvfkQzR5a9coMq8inRWRYxa0SAvoHP5aRy6yxUBLkQVKR8vVwTiCOKnSPdxAvSCunJBxHVcqkhLgUcZYB0HqBFVZeBoMVzXgbFhUhX4gqAqja40qCqVgIoB7np1kFSFeQvO+a4UqMRflS3yRGuYv6OBKhGMBfOeNAp7IokI0IiFfCSNH85B6jecCnG+KwUqcRnY0k9cgj6/WQf1P0XdoNoWro+Yom62QRBnoc9PbawcVjeoFhIZpmib7SLIt+fyN1uYYP6HaBvtlsmDm+01SPDnfN6mIC7BIW3jHTOTBzfbkZAkz/nCSuX+p6hbz1E327eQkc35wrLpR9Wt56ib7W5hKLAYlgcWGTeZbcuBRaq7BRZHAouWkbPZthxYjHWfa2DRMtI529LunfUIqHIqpQzGDqRVMXagLJdAMglo787CB1RJMSwRYgzLuEQk42MQC+9kxjARaJrCWS4lOmIGIIWzAN7AcBZcWBXDWc6mcJb1KZ4F7jHigsInRl4q4cGokChl8G8U0IJLdSmgBYAsBbRAghjQahRB73jPOUa2tE2RrTZ0ka3EzQunylIKo4rXGRmdeGaw5AVmVUq87IpKMZtR0S7fol/tPKKucIIrdEh6EPEKYYcAN9z+6xDhppLuSqYr2e4Xriv5rhRiybdtVxKxX9/K7m+pD9/qrmS652z3N9f9wnel9B5etF0JeYK8b7zo+hCqq9VdqetDWCrxIanYkBy4tMmeiAjPGtCsgfKlTV1dVSDOixSI85JKvGfDei5f2kR1t0BcX3+W6a98aRPV3QJxt0DcWoE4y+g5bTtwaRNV3gJxn0QgzjKSUosUnvlAHNVNDsRZxgpqRVsMxFHdjECcZYSbFgkxvcjbi2eEm5Bg1N3kCrZH5q5Vy9g1LVJDepE3BYXsYXIVrTNDE9kUvcjixlTZid41icaShzHHG2cmA/IkeplFwajyJHpF68yeQHI/cLayrZu+6JLyZ9Gmy2TSWsYUaJH4z+dZbKjyXPTR1tmGiqR+Ps85Q5Vnoquu8WwSsGUMgRYZ73yeF4Yqz0UfbZ3NWWQ083meC6rMat3kG2ezFUm1fJ63girzWs+3zii6LBJs4T6Ra130RddjjbNpilRbXuanqZRM9NHW2TRFli204XKtn+csdFmS6KB4JGcGBwVLvBc2X5Fmy6v8fJWn+Qph/Un9sJmLRFs+f57Q9um7umD8eX8+3wubwkiz5fPnBKnyLNSffa9CP2wyI9GWV/nJLHuTGTxeOmgM/mFukWOsXRbZtbzKT2bJglbjrbPJjFxYXuUnswx50cGhzTbOJjPyVeHdupnGVVsQvdQ6Y7+yyDblVX4yqx7JNVB2uY2WNt6GBHYUeHR+Y4VvvApU4h2yCY50Uz5/coMqTwkO8zpkcx7JmHw+vZ0qO0pBwBP8Jf+fZXxOFkmLfD5vnSpPnILFNtlkRu4hn0+3pspuDAHYQeueb/O7DSMyskilA55ltvH+NlzROpu5yLPjdX74q/OUI2rbQMo7to0lgFY2vr1QEJvCyKTjdWGk+t6qOqkfNpmRccbr/A6kQv9D2E5VLj/d2GRGQhGv8xuQbtmHGGud0ZNYJLXwJj+3tCiJ7vONs4mLpBbe5OeRlkXRC62zWYqkFpBNlG1d9SIjPkLpZ6sC9EmrgtHZVYGRZljkucCbyHL9YagzddOtR5P6Y9MbmS+8ya/iWAl+v050jvCeAHdpxMy8cV13Pt8dm/BIfOFNYZzZs+66t5vUHVsBkBTC28LAc6k74EREOMCq2B2cfgeXxSPHGeB6bhM4hMooJyzyKvh8+pyNnBPUWwzk4V119d2xBQGJE3w+f44qBz4d2UEQEwAg2UN4h3fHlgg87u/ziW1UOfDpxrtjbAIWyQF8PrONKqvejoL/fG1lzAMWmQG8zc86I2vfrdAZW1LwGL3Pp7tR5cWgxOtB8MaR03ihbo1JCQ7a8rWMnde3eILa5zPhqPJyfM7sma0yeMK3EF+mykXxZctOEFs6JJyPL2PdLb48Fl9m56YtnZvOx5ep7rONL7ND4NbQPpC31OgQ+MT4MobEML6MITFpL74W2xsM7Q35fdZQfnqL5me87VXH214hN5ECzSre9iotqARiuyZd+4oHI/HeVQCRKQaW+HSQpIaCYCHdXBJECjMH1V38isFq15V8VwqpRNe9wjCh615lOi1pQWEtxpSB7JIufnUpugyhQ4XHII026QrYVqe7SwImqLc49o2hazxcYwheB1ekJRZR0VgM6AYAfjGgSyUM88DFr47CswaD0C0FZSli1Hgn4r8Ym+Ifi+2seEa8FHo9HSA/NcAOlVs8OV0Ivaa6mtCrQVInZF7In4G07Iy2xZPThdArHdG+hV57+mO2AB7/LoRerbqFXm+h1zVDr4xswBLZQCH0ipW30OunEXplTA+WyBzyoVfbt7dPp5AgLqqMxK1Vb5ADwtHF77w3Zm5bW47CYl2mk5MjNdobs0SRQsC2WUpUquzCCzA4kHACtneLh8Es3sPAjytaxktgkWYAssmyndBFXKnxE7433g2z05BTwLZZBlaqPL2LxHN9tqITZl/gwXsrskSsNjIVpMYnvAs7z2/pzL7IUrJSZXoXsjOCD13TaGu5jboY2OzYtsXDvlbIfCeyh7ZO6Ybty3jg1wqV7+Y8IAf55psA51pH9cVWXzzva+Gu2Fwf6I6ntqd8FbYS0ClikeV8oUoYxnCjXxdixPOb52rjXbDpT0eIhc13Yc+6OIvDjXbCZj2dHxb5We96YThqUcJJJCDX2uiLDA92bNjSsWGRn+2uH4araJ1NcjeQXU+Vy9APdozX+oHsen/Lrq9BP9hZZesHsuv9551dzw5AWzyi7PMnJalyIvpBy7iBe6Py2fXsULTF88Vww0lWgi67XtuUVK/T9SiAUSjMFA8J7Pj/23vX5baRZGv0XXx+fDviOGTiDnREP8B5hh07HBQFWZyhSA0Jue1vz373EwVgrbpkZbHolqe79+iPSZNUAahLXlZmrjSxn7U/SgP2YIOCr+zBhstpZg+u+wXtMI2h25U9eOkfPbuedbuyBy/ver4b8K5bTk+HrijGE60rJ4N+of5du6J09YpstGWxNkMpjQReWpuYfqvzXq8qsACbUdrZ4TI952ZVb96FUxnoqD6VFd7Xa/csI0HKu2HTwaKvFrXYrn2ozKYyB3yhXa57A5wbx8w44ku/klnGVRsUuhpRaB6luau6MFAQ1He3fSLvvGfe+XXWYHO91pSEhdcLtF2fyDbv37PNBeQRFJu3fSLbvH/PNn+HPN4U8ghYAto+lW3ev2eb/3Ugj4ChoZ3JDvo4uUHrMDRUYGhoVqvWnIOFRqafWz/OJkA1UzmYNpaL6F2qg03u6lJ6OxM9zNaD+cxU1NUzqb6JJdR3dYu+XJsClkzTCM0S2O0zoUIfJ1BYvrRPkH3ja3vKpv0pjxBwQLQzUUJbN5Gmtst3TPmHdFkUcLkYLBEiqTbgXmhnHoTWsGVELlE6/TzNHXebVUls6sZp8GkUnSmdWyy3TeO0/GznjqR9bqdPS8xh7n/5rDepAHddFfqFAYNDO9McaH7hUP1uvzCgUWgXpoS4XzjU735hhl8Y0EK0Cy1E3C9cvvu39QsDWol2pnjou3hUfGh/gM558RD6UOUHXBLtwiWxibXuXr5b2rt8nC0Ik5s2S4XSEGBsZtG0ujFVu0S2qzvTMmthEJvfdbOAMH/eb+b2jDUO57DEpJffrWQSXfWxMdHou7JpPhprwbTRmZ00g8Aa4j5D5lyZtNWhWN6FDxjYNAuDhBlzuCtCMdKv59oQW8zn2BDQz/7v3EdmbgncrMZC0S+icVMNi2dRLJ2ZTVR/mL3gYm4bbLxg0xh5YUo27YXLdWaqmT3ZnFz0CB3mDqIt/7Lju57vBrxrZ1uoXHqEFkt+Qj9f1Xi+8xWKali94droqh5/YeR6eWf0fzO/M2Zl089CqVlafpoONyZEP8xcf8YqNqtVVe3HOQH+rq2aj31fLu/CKQ+MjZnQojMKNTLlw41T/r9rpueii9Kf8/kYm26r/cxotcx5wzlv43Pum0fdzHjRx2kbli+LOanFADblSoKwzHZXfpwpEGYHo0Rd/zLf3YzWLP1vF9IEw/LXrfM9swXMs2H8lRneKecmUs1sQFVsf1uw/W3B9rcF29+y6W3bs+ltA1Cn6tjqtmSr23KdXJMw08yLZcxqM13LlK6gjvls9buHmTSwmBtKtMPiJ/SzDFnedbMnZVgGZyR+ftfPQtyYev28+CbiYRbLNPmt58WaP/MXpguoR7qZX6Pvo9Sey5flsu8W6TKsdmpjmvIaw+lupiQzZSpzIytzo+2sqM2NLu/6hcimGebbmz8Lb6oIbmqGIftoBtTy5axOh2EFrYxrOi/5ZqaHnwVCA5uvHOpVaJueZuZm+rvS/GsoPGbCin6ub6zKNrytMritGZscojnCy5fKbZlmvr/7ZqrgZuaE0CGaQbx8KW8mdg9ttZS5dfPqrCna1++mDu5mTkUfosDx8uV8rOFol8hUqzugt5ChpfHNlzNtzJ4Fs537V8/7z0iBFbOFDJ3R0gWzLdDTupwlccd3Pd8NeLc0dTPQ1IreouPbYNCkdsagjJ02Z6h1S3K5cY2J4hrsdj6qJnlsRlzmRPcFcjGHccFc5ncdv+2Xd+F8NsF8tjp2u3zZrs87m3QfZ/NrY8zO2QQtyxWTnFmmjEjYNIsh1BijZ8ZzGzOVM547S5feuJD9+sDVXdEja3g+T7PA74YuvO02uO1OxXOX76SZuJDAdJXTH9vtim3uoK0Ga0OGd9AFd9CrCO/y3TvC689fH8zfoCK8y3fvCO87wvtWCG8XUEJ0CyVEHOFdvnxHeP8SCG8X8HB0Cw/HEDfpCq8m2AjnmT/bLR9bivEXpWrehJcLLMiZS2PYRIvHli9nPVAadb5U6pYLaGVMirkt6/xmfraPc1/Xwcyb8aXuGib1lHNaTL/avsvdGvjH3O1q+84M+9LiDbg+upmeY9jETcui+uH7LWaHtXbufMGPmxkXvuF+A+tzJvyo5uC2uXJwvzW7bLklXsRBbRUkANHwaoF1OTOAVLMNFrlas7LNG7U6X3W2bOZza3b58rj1qpbMWTJ4cb/emAnzr1zP/YJxGjd9VsJGuswnxJy8GSk2J35GAQ1RajGD7saeMlNa3plWS9WMwpncIlNxUd0NBvmc4fx2hj7NvSwgaL/eVWXApeV3M6TRbkIZGdCfdAvDSWX+9G4TisgWgQbjIc4P2Awru+qM73aLjFmsxHaFy4wBOzvFxUwca+7MaKkFDAjbNnQBYUo3c5wUVfuxag1zdnBDHbZuXcz3sZkTMOb7mG3xhfuwslM/S97WWJ8z3Wu3osFtv27vGfKdF3d2Ws3EV8VicpnTMT9Qt2kXS8tUu/VmgouZcnHmXd3A0+hmZ3HAZ/WG7+ZIzHxqSn5WrQtrTpKxqMQJCQzRmZwlDtgv370D9lcA+y7gt+mKQQXs1+/+XQH7LmDr6WZ+nWETRwfKDeSzIZNgItfaXLxZPTHTVW71xDbwBZuVBnTO8gpuIaD06WYWnmEThwTmLxdIoBqACSClq1mbwbdzzGw+Fz2a/Q0dErnM062gwAwPzJKsbAEKGKNwAQVmLK9dwwIrKDC/6/luwLt2tq8N4LjAAwMaws9+6QIKGCk+uwXmd/VmsR2LNX3L0L6u6VthwLULeIm6hXpIcfLLUiRozUtWwH0y4vsHU7aU9KwuoDbqFvaiuDtfVp6SR56W1e1M2FKSs7qA4qibqYgU131hOHp33b35C6ykmWRJcd3n795d93fX/c1c94DSq1tYuxTXff7y3XX/a7juAYlaN/OeDZtoSvby5bxFhn71upqyX7p+mVjXIkjKtUR9zsbqV62/iOG6WOSmCfQNRioaR8xsP+NRlasOn1OrZ3+rKJe0qGJO2p6FzV1t/m72wUxg1cT4mtkhLxeFR7/MHIjFByvNhumMYqzKj3Uxl7iYIH7Jd9WcvGDedZv1MxNjbGZjyMhBvOv4rue7Ae9M3ZZ5F85w4CvM3G/xzKvlO5F5tajZVs286gI6uW5mgItnXi3fzcq1Wk+h2RrWyJhX12RZzUrLFAAVeLPsoHaFHIz4mYEGW41WmmMxZ1cNQxj0CFjpuplHTgMVqs3vBBUClrpuJpHTQIWq+N8NKgQMet1CkhcHFZbvfi6oEBDsdTM7ngYqVNW/C6gQkAR2lZ4FuHz3DipcAxUCjsSu0rMA1+/+bUGFgPGxmzkaTW+7mCFQMQvQ9DUjackiljeFw16yeJ+DsCgDCsiuSgGLCwWk4e4a1i08l6fPx3vNDW6HxXo2zceWRODWNH0y83Y3VMZEn1k0m49DMSc+NOH9BFp6JnU0RWPRx+/X+ykM2e4sZFYRuWnr9QAYCrLNklvYzHZ6dWdc2M3MC262i5mXetPDNKmMBWEaZZqcCIPnt/NpMlQ23V1ZmnczhVeYRdkF9JPdzBg5xJnEly//NHcemAQzG+UQpylfvjR3bkhvZltjeYA512u2wOvZ8K7ujHxdHsAYK8vtmsr95XbroVlv1wi05daMlDEKtL8rQlKDLqDI7GZWyyFOSL58iY26YE8F92kx8yeYnbvc02C0xHxP5jAv99SV5XxP3V0RzlZAp9nNBJhDnLt8+dLcyFCtwqqtVoVYmAT7mdTU+AnmVtpZbZv2a+3scCxr2IcWXMC42c2MmEOc33z5spyHbpfrGsfLNtBdrlvXw3y1zrQ1Ci8XqMOZEHOIE54vX4rL2Yu0VbuGGdXLBapiJsQc4hToy5fy6eYFNuxXkQuHlwvE7UyIOcQ50Zcvf9/TBeJ2ZsQc4izpy5flnO5czWfNpLrOtkQ7rMqwGLCtNuWS9jaDZXPDBtP+cb6hRmQ+rUSc//Xxw/74dTxP48P/d3wYv3345T//88OHj//94fN++W9dfZxv9MMv//0/H3FjH3757w/N8smwvBTt8lpu1tdqfe2X1wav6++7ennt18+Hbh1nU+ENPikbvGnxBhetCrzBj2u8aTBOu16h6Eq8wSdDj5vGXW/Wa5UF3+A3ZY0nK/EGX9X4qlmvXuKiJS5a9pyQ9atqU+DN+lxVgU9KvqnxZn3kCs9VNfirFj/u+AZ/1eGvhhJv1ueq8ch1UePNevN1uf64rvAVpreuK7xZr17jfuoGI2Op6xbjdPgNZr4eCrzBJYb1VpuixJt1wAZ7qqkqvFmv3tQF3qx32DT4Me6nafFJi99gUVpMQotdZ/qxLG8wvS12rOELWt70+CusaYs1bfE47cBPsOFxrQ57zORqrG/WH3dY9w5bvVuW4H8+8uTO/zVHeeOeUhOaiR9THMRhvRg2AA8czxC3Kk8D9z73NZ7Y7lnuUByLqhI7lPuRu497jTuL24ebpR+CPdJgwuzW4EZowkW2S2oXEF/hdNoFzFmuZXGiS1G4a1GVmsjs9cUs/us/nqbp5fLLp08P22k7nbe7v4/nu/04Pd6dzl8+PZx2n56m58Onh/P2cfIv19x8ucLfO+WVvUMh/dP2Dt80b7N37Jb5sZ2CN5046r9vpxQGgnTWTp365bhGh+i9k1+1tTZEow1R+suvbVcsP/TKT1v+3yso8BX2aUR0QK43G+qZ3ydM7IbAb37fzijbu8LkXzkrW3XawV5vdNHq0dG6YJNoMiKxSXIl0vlxV7VF8f9cxt20Px3d67aNtjnX9YxduPJ3pzbCv0w4/bGi6I0ET2Uu5s5rN1wzGLLnUbveLRsouD0TtI/fXlEM1x927hjnbkNNxL39wuXLheidv8Wha1vtafGQ611G7+DLy4svhVTz4qoU8sSZgQKVJYWvBX0T7sANPDduRbgf1qnDj53NCa+Mpx1/7vhp8vxvhCDAJ1YiwNS1ogG/sTICzpgVFthYVmrgE7sL4TLlbEf4hE1FBwnu0A+KGPhFWd5L551Ds2xcP1W213f+wRw0t4XPzXOUODX1XeGPa0qS4+Ouj6aO8gbnz1RG/9DFS38U7RSvi6KO8iaPoB369MXfQnoNm7fZEt5smoRLZdRB9ZLqN5nLrlCVT+rSnhVkSsgVFK5QDbj67i20SVdq65G8tCf6u0odYxFUyhhvcvuanZO8dOPfvmaIr+JVGeMtbr/SpEDy0q03RqPefpsQ1O1b3H6j3n7q0p6P3BeqINyoVkx9172FGCxUMZi4dNN7u6dREfSI93HV11Cu2LtXLHvtih0RR3WsG6atKfsmNm0mhJXyLX73detmE12uQbMwV6slduHG9za1Bb/dK/rf6l2aN+pWbHw7rFDtMMznOhHKWDd6kPHNmEbGf/+V27YbopbMRjsGyYf2rcBONWQb1RBrbrJbtNs3RAu3X7r0hV+hiqKS3tD6yqDT+orAELY8Ak4E+3AC1HupfUzBsEHcLh7qm3CM8JqVKvx79Qy1vkTStN+7REpBQK0viCp1MxM3wNQkFG37JhKp6jRreHijKxsTJHblplYVc9bTl/6kNrpo1fGleZS3eJZem8XkxasAgFBjdesxUEd5g0doS024X7l46Y+ieTjrAVZHeZNH0EyuKxf33FtTUqaMoscn5lHe4hFUXDJ58QDJMn1OFXSzU/HReZQ3kCh1p5mtVy7ubSSTC6aMUiXk7I0oifYItTp/qYv7ntZGW8lEoKK9zU9Xbt90WviBS3uqvh5UVa/jXO1tfro2+4Pq9yQuvWluMpM3ja89BtU83ujSr25v8RTNz/1ghqY0+tWk6FVzsm2MIeMBeyq0pCNj7dx5xnUSVAUEgyxhbne+qajuwXdTMWEq9v4kqjLkfRJTk9g3t6gB83PvYBaaKdmvs9yrimzw1+/t4tr/Tus3BPkimlTSTaKhqG8xx8zPvUuqGrRXNdDWk6SaHF3ncN1G6yZYlx5h5AE7YH3FjkAImdsAy7hO6Pr9gHFs9jI/YRrzBm9qvGFiMxKSbWIzI94YJ5LhjN9EUp3xSYcfR3KeEQzf4CEjyc+YF6ZzR7KgMTcyHdpmQeNaNh0av+k5tTIvmmcOBwuTWSF5K5YyjRRCzGosdxrjIDc4lkSNcTB1sWxqHH2cuVhaNfZMSaRL5lfjN0TBCIPZ/GqmVWMcm18N6cL86lRKHFOviaAhjyCVJMesbHzFrOxIGgLOXI1PInnaEHsyTxtLEMvTpiAUedotBGEkT5uf4M9twjZTHpi5ncjbQVY25ieWwl3iDYWun8ttpAb+qlbBlu39xY9EaQI5EYna3l8+X8bjw+dp/zz62taa+x+IlthBlcFOh9fJG6fUw3thucf6f2qrhm9UmGB7fzF3H958qeom3U7e3l+MMvLypmtV4bDQZK1yiI64e9qPX70bK1QUA/KUYpkJTcxjIgzJrCUmK0H529QkZiQxEYn5RzzdzDZikhF+bDN3Kn3r7Kb91/303U9W1kzjQTUrtg/bl2nvz1Ov+ikt9GqbmPiHB2/Sa81w1Ced6raWy1CF6wFBYxeGxgBXCMLappMx+ytnzXqqE33xGO5ghlgvZDSzv3D6OoyTteQPD7un1+PfPR/dMcvtg4eXvi47Hh5Gb9XUQC2tlHUemQHI0i8YTzSMaAZ1XDKuFNaFNgoNkV5YEjQXaBNQ8VO7U4VTT1MZUwdDbVhNSS1InYfbsPqM2gs3ZnVMqZrc24eH/TQ++yvmiHa7Mbkf6UZdXbG/7adpPHurtnF2w7q3ckZ6MW6AL3tLKwJwHnNGOo+7cf8yhSqhKy2UhGOQN9zL6ezfmFNH5ciHwT+GeWNfPA3elCo60yTE58Plct75UN3gLPAm+34ur/fycbt640xckznY4733YE6I+kPZZ07+Y7C3CjU0BTlOGzkMEEcDwsZsw0GCDFT1AV00KgbmGUsNEe4JR1UkdAbKY6XysDoDzudtysM/2a4W2dAFwZSVdDg4iazsDBVMV/CN0CIw+VPq5HDwZEfaO8e1GO1fL4C5XXET5UKn3XYKFIyaMLka3/GRLidvTyYhhegIHqpeqkUM2Mu0NOnrpkzOo2/5aE+YBDywezXggybNB08Bs4yb/uC6AYIy7iQAInEPwh0/hnIkwA0d03h7KENHMFIwhY5OpECJBBahQxAJ5OGtAIcEqpCADv50QIHEB3IKuhNogAICxM+3526pvjXKbrD5gxMMTcMTiWNnDyIVHw5iRauaxw4akMcOeBhPW4mzbg8ZxYc9W7gdHqmWtj0PEG+ZBwi7254b2Ov2uOCNPSX4jT0c2Iw8EyXfcOPjE3sCcJLsfmfyGXc3zX1uc4hIu7vpANAxw37nXu64l7mFsU+5c3EbzobFbzBjHX5s9yCWYN160R0XlHoNlWP8FtioXvGdvntfXg773VYExis9+5kQsG7/mkF9zd6pOb7r9sREYLtuqG2wk1FkXrQ8Q9iBpDGxEQDsbVpcsBsr/KbCk1QdhTGzG2HQ4KI1Ex4hxuqBAhLbA+exgVXWtPQY8aahrMInCDt1LJGsdKvp5eXgozsqlLd8khk4CeyFjsLn3S54twv++3+fXfBmyv/sg9x6vVqQL209B9ykDeOUOiB+Pm+/+76Kmo1zzVcxp1wNzs8Xun99fAzcfTXt5R0B1BBAs3+wtWBaOKEkemS6zLdrMZ2Op4dRrsvgpKRizOtgjjvuZTrvj1/8MVt3zCZ3zP3XrQch9Gp+nFOUjFkIwIvoJTx8rtUyw1hpvu4bmILBOQxhJmt3W3Ob2gxf0cqGtWJtaprStKBpOPc8iBD2tI5pFNMWptyl5WsNXnJ4YXfTzk3Fj4WYiUSLfQkUL1HHVzSKSbZDE5iWLw1eW/pLKavL1MvltNuH0FCp1px3ejR2HSkwbkuVG8HHSaJDekBsq5b5rBsEOybYhaQ/2CS2HUQqtx1sWrn/CmQ02I1YyB0JY89uTXWPlpCcjk8ndy3MGOvTyX3MCCd2JDFD7uxK+HQYObLFuY+5WX9oRzqeF9cEtkGlq8XXh72HNVZqeMDPTHWI3NStdb+9+IFptUIAa4s5LWziG+Fg1Xu89y6iZvOGCh3mMRY2yBSwqVR/HYUfEZIJ2aiLRN1MaGDXN/D2GqRSNNggDQ1AxmdhfTfwRxv4iA3TXG4yQPTKz/tx9Msq1CB/XJJFBNefRE3+C0SHrsPux8eT7xq02mFeR6UXHJw7zA/vPZx3e+CoOXjy5BEkPsizSHyQh5L4IE8n8UEeU+KD3A+0/HlwiQ8yE4a6hEeZ+CBOsNUlPNzEB3nK5XEnPshzzw3BGBXxQUoC4oP0AaQzILwCiw/y3BMfpAAIfVoHH+TBJT7IE0x8UJhL9kwTH1Qdhvvxyz4gZ1GppXq6oaTc4xsSFvENMpw74qAJNfNlf/x8Gf/h3UiviZdUYrXOOXE/Hkw6l+cRVCoCn1C9e9+sUw1Eh4gX94v5ikUY4NZsdEGxn7y7N4z/ipmbEOL76eu4m05n3+9yfULeQdp/uz+cdl4qUV2pAX6RiP+zsuTVG/U9QZWUM0FaeH/woPRGp9dL3MrpwcNkWrUmrmb1PIuEbB0A4WBmopK3gfpGBYbuz+PWX7dSXbeMNMl7/zioXKU5zHT3069+7a5KM7JuG20Qr+6gV6uxE3VX99OvAb2UumV0jqf76Vef5KlQeXr0erL76Vefakn1IxJ8R/fTrwHhkZpiq7MO3U+/+uVxakZPSg5Pv3o1bV2vWjt63rOEtbQ58VMlVvGhRDpCPyYsFVEiH9BwkRIRRqhkSIRpMYnYCIO3PxQkEbGvHwybyIjZjwVSGGezERXGlG4JrTA6l4qxMIKXKBFBTC8VdWE2ViL8ggFTJSJQd6kSERE/zArR4Fq3xWrwm1TQBmcnEb2xYUw9jMMIZyKe09ILTgR2BKDOCE+QVW7e4Dc1fwNLAdZECw+nxSEKaxa8JgHCiY4EkTBgKssEoigRViqkVy4qTLBbrkcM4gL0fPHzRAcVn6SthU3cQiK0uNG21JWGH4NWC6qXTzJj0JA/gUQOi/ZujEnTO34PTv/5gtORdiTvUeq3j1Lff/fryFzPsIgUBOBDr8UO9iI0dalTDt1/HyPFA72XAZ9XgsKRHl6ffU9t46av81aujeYXwqlF59eCh5RAKA5OoKA41rGojcBFC1pjhNwgJi1SSpNLRm1kJh6PPkFUJqUTaeNBJ7gvMvEKHmtGbQTS1vDNXycwidtoEZ+x/reNEPGoEXsDPoerJ0pCzaY7jMcv05Mf3HFLafIC9mak0+PjxT9Xplv5e07G76/KMrPrl/6otbvLJ5henm9faGgIvtWC2F64NewpLBOhfkaLfwjzZ9iYxTAZUQBGlJ06GREXoJawBTMyUkDzToR8bOyAou2GaIITomaKp4gv2KB1IuLAMDYTQ0UMwga2E1GJsJg3Eqdg8NvW9ojIBcPhttpHxjIYIP8LRzecKn5+ItP1RQSEAXtb1+THRBjCz2tu4NXp9So6mdMHZLc9HII0KrXQ2Uev4J0wx3l9pZOB3b/uKKjRzKo6esV8hkD4YJoC+MuRPRL/krAXvS5+xSxEiX/R/YI0klV7ibaQESCM+k6t9XOcNppeFG/4yjYgSYBlGRWCiYaTFjWjwJPwGX0+fJWoNIzgaHT+KPkkjkZ3kJJP4mh0Byn5JI6GcfSqRomsWd9RFjxGIDZmDYlayBTWdr1eMom+0fVMYG06xJZC1hKAWgJHS8BnwuO02FYC0tKRLOtx6vWkEWyLyVSsZaAA9kGuuPh8Hs8eO1Tl5Hd+GPJK13d+OWetVlyGkbBkosxuezyefHRNZSKJMC3Exjsd9zs/V7ZRu3aUOmH2Lsgbq9Ui2hsf+OLbw2pzmXc/4xY/Y7f1QdpaDULmRGp3nvVStNf6yerNRXd+utJGrVO27T+RqYWVsoF7zpVOZLt72h6/BDtMZRN832G37LCn0U/iUNN/3uf1tnkNeXbU6hun/zjtQs4OjD+4WiXuuIQ1UNJMyWirnNfKlKlIhLegmPXkpPmB/eQqlb7dYqEEPAlvWlSTgRGazURJ8BWdZkKXRCwJVHIyCEsSjSQIKSBHCTBaZE8nq57nYPr+4nNh9bacFXMb1rbcMs+Hrc86oxZ1LZ/A9cG0Bs6hbcBIN0yEw2zFOAvFhWtkg1Z0TkKfxHEziJnQPRBBIlu8LQNAsN0jNreI4NjCbOYh0jLGEbBWL41UnAW9snp3GLdeBkpZ6RlCyUHGb9N4vOxPx4s/nMNTxBGumLOH09GvC3BIBbEVwi0QWfo/yYr/K9fXzf18n6ebzsHpOAa0NWq/8veZvWVm5zn0mN/csGiuTDg9jJ/OkxcRLQctmumzeGrjeY5Eq/ZOTHTXML8Ke+aoZJ1Z5sLPMg5k2M8J8vmxPeVBX06vPq9TrTpMbH3tcEkD8rTpKQIxrXToYL18JMa+2bhRRbmZcMXrw/7H1/34m++nXiFevT7m3ZdxWt751k6htpjOHTlMD6idBjfOVF47Vc8vr2EQ8Mb64vd6KGW1jrtxe5g/8yAlNcYKcd3WqUEf9198AEFdLj3veHcyOIRgwFEry0u96GV3Ol5Oh/HucPryH4fzYZytwIdxZaw023962h+PQYioVcuIU8CPc6nLw3ixJ0x6bbXaLit5wI4+UFWpdQ2kkcsBrMyw59ewWqXoPQLUUGCSWB8BLXLl28Qkohg4cGSrtwT0ZJknlTz54hHwtszvDLIhKlazDBMRoQY2TYPD3UAPtSwMaql1mNdF+BXw2DXJdJy2+6BBptp2SJ+9xKS90VylnlF7rOA4qJs1iI3KhFAGGRk3ZLiQgT8G9RieE3mXNprGkBnjYgx+MQDEWBXjUDKixIJeBolsEiI2EHcJgzsM5TBww8RARl70pL91coPaOE2H67VxZpxAbJdXSKewQMuLkv6LJQoxSPgRQdqMVqDhBKa5HxIVGsyXySnVIPiZU7MhcmpSMWum2+RUcYi8m1Q5BxNwcuo6RCZOToGHzc1JVHqIbJ1EyUckbSdR+yHydxJFIJFEnkQ1iMjoSZWFCLA6VR8icnxShSK03G6pGLHpP4nSEZEQlIprhwB7sphEgPCJ2LfMMEpFw0XyUSo+npOjracspWLoIpspFVUXiU6pihGZ35QoHRGJTloNSUKS+1WzrRbVTXA3m4HO+/vXKdDchdquV2/aPY918qPgtWp6Z/S73Z2OX0efL70cNJOiox7lG6XghnRp5g2zpTDptkglYfiez+Pl5XR8CGatqtXAep8a7PXFzwNW48jvUb6bonyn10PQq0RtAbDeMMzhn0X3otymb5RVnVrxLbE2ElD1NMOwS3BbBaCxfyUwdyMM93oM+hG0G010OGkLUOZQTVXFr+DgiNSGCgKigoCosAMrCIiK5I4EL5gQQZIDuocwo1pCLEHShHmDcWD1trAcWyjzFmek7RLS4vUYyupKpTr4Y6HZrJisRyrSq/2DbZUjlqjVKS9353EblAepGU+xVEwYcqLCRdazhIF6/XZ8AIk8HyIToXNoQ5xRvZy0a/eVexfn1+NSzxK5i9q9i/5t7+K43f1d9M1x0rWxBumlio4fNGspOk2VlsQBsKNTY/qxX1006YO8Pr8etmEnrloNzoScLPExz+fAn1c1h+/BC1cdIpr+tnC8pZstfWnaGjq3gVNyovMW0B4R3N8RC0XyDUh2AcklIJkDJE+AZAVIcABIb82aPGE1f6R2P1KpT8cJX4kq/EjNvayDl1XvkRp335hK+x7LrvPJywsVrn83WW8yWV8v08mTi4NaFJjK+P2nTyCl5npRfyVKYUwnYd/LUZvHrQ84qCLLjBWGIwe1zU/Ml0t4bqrDhquqpMtu5H691lUk3w4aY1x2lHhXS2UWHfD+9NWHeDUffNDXajQJAJ6yUk2fTtWiD+PjPswaUTULFameTvAwHnyy87pWw1jUeyglLGBw09VxCMeI/OCwlXwDOxsirQXA8iNUI8pTjUE71ko7Z7VqGCyjMMnMG86hjf2Q2fjuwQzjtw3tVMwkyR0COVYkbt3br526RRwHGSvHiPWQGv6z7IHYqaciwWplhpqmw+fT+fPTwR9NJZBOjLY3AiSwvAo12PWeVnVLWtXD/rLbnv2OMyphuLOB+UY/r4ezjzB0Di1+Dc92lSnB8eW3FD2QFE3LNyoyaq7se14+2ZtDgGH53a6cczFkmDjTOfWquMusYZVGle5N8lGvjXY5+2I/l4IyOprP191pJ/fPj3o8nPzUpEK1gELZwXwIIUOYkEZhwqwlKVWkeIEVbQOSuHRK4PB2GBKkEU4RBCDOBvfwGyuU8BsbpkOAy8bimA/FgBs++YmCS0gw5kJYUQaLNCHTTuPl+H/886RaZcsnQahdC62HIXXdf8+hNkxExyOxcNXHd7aVjHPnsBXKGLaOA6QItQQyYHelgAjs9hRYgd2nAjSwG1agB3bnChjBbmEdT7CbOhEGltHfEGpwYr0Cc7CRXQk+MI4rUAgbtQ3hCOckCW/YRmSFf2xPm0AqbLQ1QcsnsAsbSdU9kqASo1WBZ2zpdXO9J4emkkMfzttHP5Slkhfr5asP54O/Ng5B8Ie6xZpeMT1EzqbP9OtV72T652JIYXK5vd+bSP/G6LCvPiSs0gevs7+8MBFpfdUAXT3HKgPhTVDdSqbFHGJbybSYQ2MrmRZvIq21SLHIV7JQoa4YEoS0CR7aBP1sgnU2h2w2h2PWQpcyG4hgpsz9IRgtWS6oGGReD+FpmcVDNSBzdghYywwdAqcyH4cQtsy+oWKQuTa0yK9n1oRHunRlDw7BurHWYdm7h7UgmL8CTkHR0RDi7sY+ZREx1rNEgkG1oXEC5dDQ8MAnzO7C49aQ7jWmtsbpr5neAH3WsPuP9WeBjkFCtGx92nOyIV5K6QhympizjBPuTxueQLQ+cuaRQ8gJ5RtqWzp7NJIx19TectJRtmoLtu0y0LLkesiFwem2K8Rcay4VI41cM0gSu3hMw5aryGRkLiftP64rZIJdYNaWc6Vht3HJSSkVwTK4CWjSYTfguZxtQVMBvxloM3Cj0F0ii4zuLr2+fI4UF3W6akxgda9LV+TAotAApbrllNbqlNqUIFaG64D8a7Qrc7vR4tI2uyWRg5KRKfLwehZX7QbN63SANFwDK9biOLZ6+v+43fmcmGqxdSgNrPDEQaRasxXl6k4Zd08eKNSrBNYtgJpW7wk37vy6ocapPCttym2EI4Df2tWzuAcTkEQmku2ywvgDs4yYQSRSifrUA+g2b+/0rXJaa6SNUzFiqB/7zilht7d2dVRZ8dg43CaYx/yRwvtq3ZBe1eQ5DeMuuCNtN92YghYmnN2YTOanjkVv/PFx3IXJJc27T7uqrt/l046HcTedDcOXz++lZpTpLUfHg8/vNahZE4nY/vi83QdUY07mlL36la3+/DIF/ae1+JWe1DQet/eHoG22dmR8fkt9NL9VbKHmtBNLSw93Oo6GDlgh8XDKldcbvD5x87DTb6eZZVgZ1/MaMiXZUUbu1d2hmhvLKF7QpVJDnHoa3ehXxBdqFzXYRLINLkMUJC1mZ1vaAGQUhiVq+YNJCUzeX5L7ksF3IMJKPJVOMrYHTNIaR77Z8A1kCDsy4p4bCKUG/ryTYBCmE1gW24RlcXyQDfQ08fxjDfTG4+n1i2+EqTwGQXDhSlAhqztHTsQgJz6QEw3Iwf4jkL9A+iMAv8T1ZbxcoPgRzD4HqpcIvQxWyaiVgOEj6LsA3SNYewixR5D1AFCP77rpvPeDmbXa9zDkyIgO+HLyXYlS9Vl032ecPF1dq7o6p8x9/GY8OL+tZKP2m0hQCozfXs7j5eJruEqlpdCTvMZvvmGvTniCKgFWvU8Jp2ZlYXMULPYVPSMdmxjnyjaW4DTjGFj2XghowhusDMOudQAPfkI3HcdyCIWm47izZlvIU4uOsJybMAmJAYiX4BMLnIhsEJiqYVqI0x2T4EozSJQFB9XCLQJ3ifiI+MQiMcRQeeAxTqRPBn6MGcvjISQYqIA9qW235HUtLuVF+oK9k7KGK123oPSxQ+9wcHvO2NvNG1+61q1jYjnVlnn0H5JZZHkXMhW2ajfc7MFFmUfvdPF1UKxb5kE43o4Qwcm9cUj55M5d1pHco/wZMEPfHcIAo8q1e23cMGOzUFmy2C8Wgotw0voKIQOJAplFuQTZA0EDYbK+shYRsgWCZH0liLe+sp4KUgVCBTJlPcuIN+rKVnGtVCYcz3OLND6gaPdnAkIOEk1qoDIBFH6bxvPRp+juVRacljTIuu/7uBVtmlUOWSvWoV1aaJe8S+0Pvol1hbUjsO9hdV1LHhIsLFlt+RgjTjBq6EQa7934fkY3vvcmfD+zCd/jvecLdJrVXPYqwPK42/s8CWqZYgZPwuM4PtxvfaLwSmUKL9iZhikXuIaNfUJ9lOSZYi2WDYviK25fyIuqED4BDmGFJaywESvInQoDVgjq1zj5dcFZwNZkoBQrV+sBRUxQJOhQuTGeBlOctlb84UQ/w86FYzMjIo/70acqKFWnju7IT6IoiHJq6g774z5oVVurvcsjPmNHwZBxpcPWZxfbqOEZilF9rL23aJVjAn7IzAd7fA62kooJ5Jzh5+nXwt9GKiscz4lu75jhSs/GVZm+Kj2sZEapvFHUuG6i+suM4nW3b9RmxqsE0Ubp/VFUYls9mPPom2xVp/KVsoiAoJWsJmBL1Z9XVmCD4Nd4NX601/Tj6fy89Ul2VHQr9C50CO7xvN2F6Qe1HkagZIB6KBoahiQ4gfEID6Cp+UbffGe/nFYlv8aZgu0cLn/CFfyy9bNAh+t+QFBdl5dl8WU8jucgDKnSrpakukzoTnohCbyIuTy4Q6fi4Xouz3rPibQEV122vXTus0eVqQmObl8fI3dk3WJoaxffyGxXHB1VICe1F4286X7lfQ4bF0Ir86LC3mgCNHOTprvs+zt9OW9fnoJtqxbKlo0KWX/xH7DUlAjMW4hrhhQhiNdXatH1lYkIkLjrK+OFOBnY/RCt6+v69/CZnJbSEG6S3hTipoCgLtiRmurGdn2lP820DEpLJl9jHJjXTh01fW5WFeHGrGjFtSybFKOE+PEQ6kGnwyx9d0w6XK4Sqs3qSpsKRreebzCO7ZnNzE06+vgK7qZ19Om9YDZKzEbZEgxg5jjTVpj4iT+HY1MOdHWo1uEO8ZFtE1siB0wzx1bDk1aQydYqsP1tuT8ZRmGOESMsTCXDn1sKK2YN0vXCRbF/qppwBf7Kds4lgIFxWn6CcYANWgPGNtXFOHDHrVNHWmJmBfWh/eM03gVKgcmscXasT4g9Vm+o14ia4K9sl17iKBiHfiM1PHZdjZm3ZlglQRe+oYFAwcG8JRaHEo+BLiYww4JsHMYaM+bkLjCdn9EueHEQMg1CSA1gMyfRgSn/DIThx9hsDaalwbQ4WREsCyAWTcgHn1hLjDEyYj/4xIbGiP0wVYvBbCZe/Czn1gm6EWfCJ5gfp5qcvAg02JgfS4NNpobgx5g6J/tUIsEEgPFjS3FGkB4/xqw6HBZMHWWWMCOGRMsI7jPdkFmGjCEyyxA/tknGDC9SBRIgwJ/bGCLUISazY44QPRfb95m6lJ4LHBbr1EDPsnqjVr3oL+O0vb9cxuPDtH9WSDUci3n1ZzKMmOl+/LI/hik8gxv24/7kAeRR6vICmOYy+0myybS1m062yTWRp/vTw3d/HPd+uW2HwluErJFfz5cpQjXSOw1LcXjyx4tkrPcukU4baYOiDfh9GhdqO88BdTOglz9+T4KNJcFenV/ZmaLZuN2PylB1rUooa2zJh+oc2T8du8P15wn5AwsHufpQ5XqQ08yidNkfd+Nhe5kCZo3WnaIIhYk65tcIxU7nicjsQ/cwfp2mw+n8dHo57J/9jKnO7QpiyXCvj7nQwZyDCp7eTe9f1XXWcCgHitUXtS7FSZ+9vk6JT4zHtnAXGwbTqlxzhh93x90YHdiRtfQI2kh5ijrwtIkS77o3DO3btjfc8FREx3UrMiBUV0ska9zjg1DALmJCu5CGL03YG2b7+HD5fpnGZ8FZ1rsdH9syW7cBpHraf3kaL9Nl/MfreNyNx9fn+3CCGneC8pJxcAHJHeaRG9081vP25UV0c3HFwu23F6TIuxX4N02myeM4R9IvXOumzRerQKoPpyCO5RqKRZM9hV+2L1HLyK2TyoYN59GidlHnbsbsM//l2e891LskUatzkjOO3cxyH9duutYKSOWMaRiBfZPCbY9qYR6iBX320FLH1U6MA2BZ/kgLheT2/nI6vE7j8/bb/vk1IjFa5wy2Tfbketd42L6EhV19446bf3jccfV7duH4zGKiYOzj6Xl/3B4iY5fufWcLfndsYQg4zd3gHueP6fesH1wW0CL70RdrzDicl2kbNC90w8pFm21eH06XizR53CN/w+2dLrFWjZ1b3brCLTcOFzVKXB0G36XNd4Cft+e/+0OWnj2SfZ/P228Ry7btXBPvhrv6lrBsXZ69IfuUP4/bY8z23rh3mL2fzWiJW3Q195D/2OPDfnsJKNUb14u2wDqcMItxE24mcNwLxDYfcngeL5ftlzHMDW5crW+Bf6YkFQIOJ7DdC0Q536h73j/EzS6H4XDN3c0bLrYVXFHcZEdGzWD6TnA5L5shW4g8ny5Bq4bGk7u3DHTwB3Kjnm3++T6e9pfxMH4d/ZzeyjUCyxtGO467KSrQnKPDcMuKlmaNPL1EcyF6t78vscPMYtFl3Mu4Ox0f/MzgzrW9iJ3X2TvxtJsiCEzttKhESDBntEVRRIar3eGyhdwynFGOahdaz8LIXqRYK2M3fl5EGtEnhwrFVOX0obARYsZ6AZrbKCkjoAxYAu2zsUOG8RiQ60UkjKEs/NjC8fke5sv2IWx1VVTuEqpVwDnFv29d8xspyM14wu+H09bPwHSPUputp9aRwg1QuJU2gCfX6GbOsOdxewnaGrsdwtc4e95Iu3H/Ms32qqcaShf+yhed5/Fluz+PD2dNJbqaIt+NXuu3vCPpqgqbMcG09XyYQ6kzcq1DG6olZznDpwyE1iK2yegio3CMnuWbhufxsn943R4Mvc15nF7PBpzwfZXK3Zz5WHQUN3GRiSrbBFLXu3Zt7Gx9djYt4Kfz/kW6jS4NfhthHNNGnF7iTllfuton+4FNWHE8S3PYPdhMOCHtH3M/mIbBhApkRNhMhnw1o8OIxeDiwtk747L/ctweIgaVuzvKbFUdTlPhxkotnSRSkpjRhNPC9B6baEFrhqkOTFpg8Jqh/Eya0PVOt68P+9P87PEt3bo2arZSuYSBn9oN/JSb/MWeQ8LxmOZQOvfW5QMgZHn3lYBbD9HkS+vpaX8Mu3+3Tpq3zXOxGSv5qGX0GBeDZ5lnj3WatgeJ9Tq7s8jPCpjO2+PleX8xG+b0+HjRwHgvxzV/Us3oZol+2z+MhFqVHer6PdmGndGAl5dxt3/08zP7zh0u397/un8YT6fzfjxOM2StzIaLOWcriLBtkBtAgDyB4ScqGf+d+8k7qbFM6lx/g3kjGTA5gCmiBZtvhKlX0LNbhl3y6ZI9l7U/ZGwgD65kvSW1LSbVstVablpkP7DGmSyz5JQlgyz5YskOq3PBftl/Hb2dq/LBXSHU4TxhmtZXJh7gadfXsCYct4oMY+aqyPpcli1Ihh7ms+RQ9SQ4e+CiRupz8eA/yOKDH0eqcen8ympcEi3KalwikLIal1nfshqXNK2yGpe4pazGJW3lD7EBMcVTtNWMVOMyoVP0I43U59r0TVbsEhb6efRCKs9Qi5NMkhGHQERSELHURNbn6lmAYZBTJVt1CvP5Rq0d+3I6fQnY7tQSNKwrUVsx2tP25cWXLoVaz0hV5cuP9x6KysxerrD+uakHeUbo0/ZyhfKvcPMt8lyEp+3XAH/Qtum6mZYXKuRgVxBP83eJpXGjVSTVBnZLRG2IrWXVBov2pP7An0f0B7ZfhPyN6KfUH3gqqUiYaRnRKPiriEYh2Cg1Ck5BRKMQcpUaBX8V0SjiyFg2uQStHKFbye+AcSKqhUaE5HcID6PD7yCOp+V3EAfWagvYYhG1keB3gPEaUSTMNpMahSavqlFsImtEkRCivk5q9/RgnKxP23vvhFdq1+cMYT+P+MvlYbz88rz3SdfU/q5Mb0kOB/jVG1OtctW5o70xJ784Xm/uq1YVY7gABqpKVcfp8nwZalocbG80lTajV42Dp3EbEKQWeqX9ugsHKlw2JGCAg8AVZGCiOhyn7O3zkyEVa1ulKDgcSNhmK8iZ+e+Xkkfnbcn48uu51ep528WV9YjZfIHRq58OYQRK5cdIjPEcUOOWKkOqagU+nfxib5VBwClGgu9qq5IgL215EiIJGY1Rn6bp5ZdPn3777be7/Tg93p3OXz7tHz5Fmi+p51Z/PDv2b+P9edrNo4/fXsbz3vzw8kkIB1V+qSvhS8BSpee8RpYGr16XavuH8TgZdEtkUFYqW5cudzFaKD/UYuYqdp/kO05fwi8Z0EmGErPsW6jqaQ0553Sut/2jN4XaPSH0tQ63ClEIAsgByEuIS8wNROP6qoAlsCsirGUJO5fwiG7w2tpsUQCUojjTbWFbd33dOnYqqAmz6PZyIYGXhAXNwmndlJZUaSnjmnBNwsqGdUwAJ2V3S0gnYYmzfF9UU6W41wj7JKx1ApQEgnT73TbzEpVbCcY2CxYlbHyBFf+g1U9Wt4T5T3Q14QcQeNUdAlv0q3sGtvpXdRF+IrWVLfrVvRBbN5twR2hn5TgoJKCjpwLmlA2/EtV4KbY6wmKKW5Pkr9v/zZPiXjg8M49k/xzyuNSqz5FDoeMDdoWmqbAMywu5M9bXUKMEGkRQqxJKWl9D6p8IgYdQLRFF4pOcR/WH5PaQ+kMqCcG3EdENkl0johIkqYZQCRF6DKEJpNyPkGFATEfkvqS+EOI+QlAhpbxkoRDCPcIwIWS6JI2QolwSQkgJHqF/EIJbymshnSOyWEpeKWcjUvXnCVMhQ6XEjIhF6ZlKkSeoAiKSzndakw049sfd4TWgu2/UDhyVzpu/DBS6oirhly+Z3ovMk52W5tkMGgCVmo+hU77tjw8Rf69R0fWS0DSTjxIu4PHR6zhXqLyK/6r+l9QXLIenR0VdgP2X6H/5Z2l7iU9S/S8BC7xZO1MKIoiUW9pVmi1hKBTDDVdr4FIOH+j++DSe/dqNQm3QpQ9iknumQFrVGxW2y7LULtP2uPOTm9U2XaFzz1gUPXLGmehJ00umK8z4EH1ZnlhuVhoTdCJpKND5k9EXGaunRyWcJNuVh/EPRjsY22Akg24B8QpuqeTcjtug9ZbOpuvLFdpe1l9MXGgavwTVRmocgpkINstAB2rXkf2kQrURlUx7iOQ2iASGTm/6tg/rd3q9fZDFw1k4AE+gSBypaTxvz+f9V7+ZQF1rIKCDhZOSj1s8/SBBw4JKm8b1QXC4yMaHQ4Jpw+EjUibyBySbf6LRe05b95wm7pKXX7Zsj3Rqp49AgjqmKPDE08gnpkNrXxDrSz79BI1+pMM6zXXBlR+hyCdQArtdEOJHePAl/b1kvY+Q3dPyIndNwgRbtt3hu68x0hsvgHZDaR/ZeEL8240noVUJpEq0VECiEdxTRzmlGrEbT6KTAoKM4IwhmBjr6CA5BXXsL6KXuPEEihfpzSAROonHUYlx40lETOJfAuSKwFUZmNRx8js5q5FdLD2WTpVl77lQZlq/bg9+uK1Ww0DLJ+9aRBzmdy1yoxbxE2euEDV33r4Lw4TheQ/DhFouNWGL9ZViCg+G5/K3NXxLYq12m/MTGVZkmYGMJgo0mD6QPSX0gWR8kXkmODc5TZVEzn4s0Mh8FRYhi/NHrbqh4MRvbOhRVAPI0COReK5WTrsmVhXYk43Fz2jgVAJdLHG2nGAk2SESMUimqSRCj+SUSEQcMY4MNAKPrXrKlbA2IhJxxOo4oUfyV4iII5bACT2KGgsZeky165TCDDd2W4sp/CYVjITASwUjWQWiByNZR5EIRuLm/6BgpND20vRqhCEQMcYIbakxSFsBkwpGytCj7xq7CqHwzRDX3sORsdy9erXN/nKedkFTHienOrN/gxnFLxN0muV9YG+NK4MExYFZaS6QuUEtGrFXLb8F04h5pX1FMgWZ2CLztqUfRTOYukQaYww6SheL0UcqDGmnMfpIZSAtN0Yf6Y8xiiETUqSHxsiJTEiRSd503liGRokvw5AU9NImZBiSEp9VbBT9El2UdiPDkPQG8ZUV9BB/1j9kWRxtSwFXQvw51iZDORTQuv1p45EyfwS/seVHMn9EVh2J/JFU2kgiWySRJPKH5IYkUkKk8GWkU8pcfkLzU8DCEBSOpc2QJ+UpQ54MS+hG+PR//Pw/FYXVO48aSkY/afJnmPKBCR+a4r/bBM+xs9/KqtZt6Jss5pR9jB9LQ7nmbzDFiBeWEPUlHrDEA5awikqcvhK7/Uctb93gtnIYpvMfbILfYnnnGNw32dn/fsb0H23y6il1CSs2x3gNuWsLtTnhKilyaOxlvYjtdYTfMFHLdi2i48uYqEinsjUl+MQ6o3qVSYIFPzIjPvWJGr3OCTr/zeu42xeaJrP1vLZRiqrc/na/9bnjNGDUab+i36Ggb6x6NSFyQ410LTToWTc4cNbMQf6DtXdwOq3hg4MSPIScI6+rDP7KtpfBCbZ9Zugt8ngx2Ye2jBJaZYpFdC5f/TqjQc0H/bGOl4aw14/davvJWSCc0pb+HayAllYAloyZpi1Fo7pxDtvvwb5RI9bs3Gy7MuPU2p6w7MGs51kdxnACOg2itc+k578cxu3XMMVEbYG5VsXFxwm5jRq1bn+dcTqp6yxgWrAPmRi4vNo6PvrWMhGPyVfM0eXVmJoncnTZDo5Ff3SOrU9MaU4PWCT0sRO3dXyZk8Y1Z64f3Vwm/dGXZfYfPVemAdJPhelkEwPpniKbiwaF9UphhtArtc4o0UKmE9IHhTVkEwzxVzbTEKaTTTnE8bG5h5B4NglRpMJi6py0RIgsOna4DSdRUSSsWqIKpqcyTwwbK4KhURjSsmBSGf6Kjh3dOL2l1XIq/GbOzaCmgvH468k/64idP6KaC5uSIz4pYdlrKUQ8iHp3b8E8V5XaLUH/QccNYp1tAzZoNtuJTZc/kixZ7YP802o7D3tfNHdq1fmP5E5Fr3jy+QxdtkXbjTUNmB5OkYRbNV0p0eM15LlsWk0ZyqzdGjrakS3MFKUEwBvb6w/H3Pbowye2/x5NncQ0hsXRamJwotk1+7g2BBuE68y6advzU6b6037Dvrdt/XTBcLpMn2OtAmrtUZpWP88+y/dG84ccCh7caq1P8vkQMKa4DYAyueTMIHo/6tbti1BHeL5TfoocOmyi3BVuL79MStjD2U/VdEnOmwjTJbRidKygcZhKoWC3qZ6lePjnwz//9s/p9PTP8+Xrg79n1KiJvmf8Tu2tdmd6yfPzdn/whZma9N+o7sHz9u9+drOaL/2ei3RLLtLz9vjdd+vep/VNptUTMKXaF12vmIk2+9I8uHy2gFgvF9XMJNqqjxYiLKpt8F52dUvZ1fP2m4+uqdVselnc8/bb50gHk1o1oBNKYPvt8zQdPp/On588Yd41Kt9EcjTT58obp1UzICWyJsx6a69chcbi9+PJwEIvGyDEis3LDDBmZmJ/E2IgoMCOEMQICA0QESAQwDgCnXy69A1hOz/yqDzava84axXzhV3OjKP1lfGLv9zDj9uj7zuqxRoSrA08RW382Alr1Ihs4kyYsZQjpkr99HCB9lDxRKhySCUGdBmsxYq/ExCbmX3YezGKaqOdKDh8DoLICBGBQ7xhpIkMJ4SN2L0Lk+y4mzhWeN4K/qvt8AVQ3IKLVJE0tnB12wUM2tMBF6krGZEgYsc6zsRhEU0RVArYd2PzJmNzfD6dfQ2mBmfeaz9vqf1c+9v5FcS698rtig3HvciQ0O/sgRe5w+np5Dn5/TXCYoZH/MPFJP1Q/RPRxPxjY0N4YqdiXiFCsbUY15E1KSL/3hanyCR79ajH8uaFFIikywsBEcmJp58hgkBCiMSy25lII6weW+SCdbcSR4ieSFY6w0I8RMyEwQraTBgmwHBxedBkNvm/UKhFMpgZmGHKB3VywtAzp8AHqVVsc/mEObXBacAOoKuHzcs8X+5i5vlSGUmtRFRZRCetnmLGLvcj83OpuZiNK0KQOvNPhN4nQuZDqcxNxwxZKj6pASmwqQrpPzO8yBAA9xETWrmh5M4SW+yHCHZ+jAYnQnoTUNwou++895sKtWqpZB0JgMJ4Yo8beYmQn9ihB8vsuP28Pxz2ke6U5aAGCBO3E/V79CrGhKOyV90etUQtOZpEFlTQW2bxBCHE6CV8ddupptYaKVfGIP+pX5Z3pQ4UCNLyEubyBo6cIJ+/nstLIcevZFUDk3oT5Q3CiMwpb7BOJWUkn0zm8so6B5nLSznKpF6Zy6vXOchaNyt0mXqbKHiQibayzkGm1co6B5FWG6lzkGm1ss5BZtPKOgeZTSvrHGQ2LWU/tYGeTWvVAtNq9YKHSDatLHiQ2bSJggec9ETlg82m1UsgbDZtWAsRy6bVSxcaqZ0S2bSJYgaZ4ZLIphU1DBnZtM+n+b+uktNwj3eo/yao/+R3EVU5f9So/Ec0+zZvEorLT4ZQU2F/F/ryp4dhmK328/CY18O0f/GTIvpO9UcSpkaQc1u2KhKMORGdqiLtqETPqcQtHH2rVsMWbHbPoO7z43b3d89Dc/uCl53ME8GHXp4lP0mk2MsCQ2jOjbpo5u6WNBvfi3SyOkqS56ctbTtUmGjSOBPo3My14Z59BMrtCV020vp3K4wSqzHtg05HanR5RYejw4w+N2SvbfN3SPcWEWKmNWgfox79dbDlRSt4Dl0CAkvrs70x6CddDFk4LV0M6VkIfDBSN0gXQ0cME7RVkQJCblUVVYxwXCXgxVSRYYKNg2YPXZWEh0JTSxYHhoh8CqaMsHHQQ5El2fRZEiXZRLfpociSbPosrABMwJ0iUBgh4WAMUbozON4SEk1VCfJ46Ghpqm5QxjCkX6O7M6mawITzkvBZEq5KwkNJOCa6P5Iiq4BAjHgokqwCf5Xhqhjp6dnUg5rilEh+n0e5jOf99rD/vyKT2ukv8x5ATwXQ322AH7YBvNbavZplsHyCDXWlkD9Wpi+r87kgIi6X6k+Mr2ygWBTc/2ATYj4Eo8qyQh1f2TizrD7HbywoJkPQDJoxRCaC0uRiyqoIF4FrWe39E5v+8qyK0IYNgIvqaj3j8+gxQqoO6W1RNkvs9h5le4+yaRvvYbz7m6/WVYrzH6tBNpe4f318HM/TaXs+b78v//EuWbp6n8fkigfvjPuwnbZf975oH5zsXtx6xqD7iw8xqVVpTg3e9Yq74+l5H3Bc98X1Xt1BlXp85KCSL52PCIUWuq40j3AQ12NDI3J9XUXAQH23wRvpeeIr6YLahnPS4SR4Ta+SVh11ovQq6TFCpNgIFjkmaBRC/kQ8Rnxl3UJ6g6HhGOsPR2+Q8SqGqWg9QW+Sq8K6fLA7bVs4iDjcT4Wj5zQMYgQLl6BqJvmF9QYxsnULqbUZwYKssxEspg7D6rVN4BjBwm9oGdvebzKCRS8u4c5JL046b9Jnk66aVPHSMYOktcmX0PXYdW1H7U8PLUx/cyJGLMynqyasedvbjBEjIj4JiT35wKWDYYHYKEPMTfvd+OkybadXP8GnUqtQm9QtRRuPNq1aF6uXZh59UsO61dBxGxXBehQ9P4GkYA6CDVDAOcNebGruIf0JXw9+GsVGxexFC4mwlj4+vkjj1cuBcUxpoy+vPS04TIfekZjcWGprYiexuWbqZM9PcMRhhjiREcwmBHCDo9BABNqgCeRcgxPQMEUMGqjpaKrjNzDBmo6/CauBHco8chvgiEuKulrNgVsWxj8iKhqfaKa1jKMYKqVrqPBerpzg1+fxvPfq2ctKuzG/kC0x3GyfaXdZuXdZZt3laTeNAf+KShVkjzOdbtXoOXndeUv1udeFXpd5PSfr6DRB1lfaHTg0ODO4LdzVeoRYg7O+wh2go4Bd78692diQSJA66yvVFfY0NvD6CsUEnBBKCPubNuP6yuKB9ZUpoFAx2PzrK6gmgHzAYCTEwaRNGXWQGU7S06QRSGBE4CE2DoFrRZKfGH7AJym2V1w9EpmQXi1XnI51WIIVy5RiQAKfpEIUMneKbjKsyhRrLDxoGatgMQy7m9l2liKMEcm4oifOmHDokjudLvXABqtrIk0wmU2SiHnQAJbOPn6cCIewSifSOpOZK4lICWFfCSOERXSxxK+QSshpngBTNhFEkXRDttMCbexEWEWmixFhg0iybTplfAXjsPdcKreMqAj+XMIjUMA1FLBkcYkFbPBcEl3BHmtw9CIkMJGsNYjVSL9nehMQwaL/VjLFjeiijBLpaI+MG7X8imZNiAg1mOcGWzTL4okEopgdLSAmzGGLAxsJVkkuKQuN+rVqVzLtCJ9iQBIbWSoqPQnPYq10shJBLx8E86iFqQqVMBgbsCV5q06Pj5eAR6ZSefZ6fZijX1JcakMo1WY899TKhGaIyGSgLRFIRSApCbjEoiQyQs4wg0RABKgRgTBCwCICT0gwIoI4SKDhrWvf6OoHjn182f0OZP2gAY5qG4PosC++3T2oFDM60dPJZ7RQGQ7Wm1legsCZkjIjAmrYLUFgjV1Or6TCRPDIRG6MDNZJ41Tm4QsLVJ6iiCkqAnq3sWyzrlBaoCIMaJHOnCQZETO0h1laoCKcGLFA8YltqJ7In7kejXQw1EQijYhYWpmSMDN1uZNKtknIpoRRqcqvpC2py7hUHo4uB7MSckRI1jZ4z0nIyQjbikzaLGpvmW37JyP7fhuWxD+eNBxSNsIeTvQ6YWopau/GRKPTeT8eJ4EmV2p/YNiVesL16bz/EsbfilJTtIqB9V7OH5/b6SmgvlKNX2pxPT9MZos75KgraHeD+XEN3NPMEeI0WLv1FWtJK9ffIjRXAtCv5ZnDAcP8YkJwKtbXwLyBhQAxAwkSgnRY9iRYp5tBG+50jIP1L7BDC+KmnFtOLmeX00vwlBONmXaiwxj59/YWxIAWPCTEKzIFIzYct0oCV8wx5nAbFmCkbMBzJQw+iOmi59bEX+loZDFw/2ID2zg4tnDEXsRvcqBL1p0xdcCG0WnEJ4xL/FUK58ywMrEoMcCTBqiOfKYMUL5JlMVII/UmdBQIoYVJme+k5+Bh5vMQVFiQkVwCXFSavzXt4ByUFQNauBV3iLWI2cpMTshBYnFRC8kybwEXjRjWN6G1GNnCthgZaxqzwvkmB9EFKEpol1kTWMpYI0sMaJPpcdEcHBiSzXLU23IUXDSrISZ+nAKNcfUcZwCn8u3a+xDaZVw5wwfARP3BnX8E4fbPNOtFUgq7lkQMfZgeWeAqzUMaMsxpgSkT6ZXJUCQGtAUJGDAHm9UbdSxW5N2XcVreTd9fPHC1Vm3/Qjd07aAL4bXPTdKq7PU6iXa8nrGo3fJIAIfpQHuEy7xwzGYxBpszrdNs+4XQLKOFBHOKKBctG9nHiRgSQSCL4jBvheoHIljQu8faNzGWRkiDUowhKwZOMqIjGl98XtOnl61XSFiouRd/PXbTl+1DUCY5qC2tuirhyT08BGSZzTUa49BNo/0GORHOpXRz6DvQ+Cc4Kwx7wY8gbWynu40wki2HgrRpaYJKWxRHhBH2iOnI6Lk0+WhrSVON4IE0sWjSSNMoDFtHbJtSt0As3YO0E3Bkfx4BhFRStuOMr0GULTqd6vvv0+hLTqehxZ/8/H50TuA1DXEOmEYKte1MqBVqPffzZXv2E+YbtaSKpAJUBUwJYCh/zdJTr+S3nNg9vR7/7udlOlX8dqxYL5n1kuqVDN9A2BS2cQjInGw/+YzxUb8fToHW6LUVoGdGgw/zg32w7j365zzh9Mq60MOpIS7rjYqUvnj9B1sVc02wF7yMx1Dw65mJyycBaseDBRmMZ4TkXCeBaWc8mzlleASMJAaUAfT8WCfc2/reEsggbHE9XGbhhlSfWRn4glWW6iorPG3rTksPGT5homNsVn/YjGiS9RsT7qLuEyY8wITjl/L39FhNypdTXbhUF1eteWv8RPoAvWrOERhgpoEvblKn/ilIYGlc4H5NOA9LCnQxtN9Nr2d/PLUs0jbIImujNqDP+NiqmcNVp0+mP0bTqTK81w2Pg5e53atk9CFOEB9s78+Tk6hdkm7SfbgEcNcl7nkvgzOtW7lnO/FdMUUwUuj5tm4mfBXpSBUd7bT37ZpGzZxau4XHR7lc9vc+vVSpqudO9wvP49f96fXiJ/UM7wQ+gYT8oeL9l/P+q1+t1LoiJnP3nfdft2ENlbY+pd5c8uV82o0Pr+cx6AypNoTwZKky4uPe34JFd60MKKd52UvQ+M1pWgFcNmPaJr2VXFc4C2EpWm8cUXSQK93ubxHui+iol0fPhK2cswdzOWeQcXy43+7+vpLVhwBi03o0a5kumO9+qUyPWFr6lQ2dW33vTL8aOM5LJNSUSqcTtr1Mv5ab5p/lpvUJCbSh1tCGMtT99/FXA6B4iYgaTppIRHyZfjXL+mt4W6qgV50gZfTz+VcTMfWaWl7plK2NNL3MN9r4NoIqX27pZv0y/Xp5GC+/mpiuO7raKmWN1WpjmYfe+MWWKiKQEC7Tr9/MSF6X3bbRpq9OIIav55eTjyYMajfNRA6JZ+z26uw4zJ9AgKFkWyjQtlJn8LwNLUEV3iw7dfOdA1XUqecj1dC14FfwLoKO99FL7/wNr4ZEAg3zMSVAzmMIjOvDrtIN/hRe4bmxLmJ9ZY7c+oqHxyMjJwbOgC1gUXW4uVufB9IxZyGO0kL9PG4vfqJarfasdtIzWEWoCr3zuBv3L4HiVh03PH0kKhqpasFU60l489W/+mGAulJrsTOMkHXEs6+c1d3BhKNEOk/DeAEDBkxFYSAa02AbqsNgJf8i40atKntx94ulIh2h2m0mbVXEtb0jBw2NoNopBMfzZQ38EiZQ1mqPwgIWe4zuES4KJqkg9jjwDQOCqvfIO5LGY+1S1ha1dFgzxpOz5kL4Xe5yPI7n8bjzLb1ONVj67D2WuloAlRZqV9P3tNRb0lLP4/Ppa9CkUW0A/aeO8ehP50nnUqU4T9gw48t2fw44cVV0sE/I9vBQVyp2kswpxcZNCP2EZMJGKZB9UEAtFi1heyHGEomalqM2zHW06VU2Y8q3N8wb/KblkQAEjju0aVEtf0wInPFTXLQj+sKjxQpcDIgIb03OSltUSyOBNheMLGk2YOZtxlREupFVRahSmnEkMEA4uIFcaDAttvQVj+xkcDBxAz+2rWvxVyQfsWUYrL5g0QVrLUikQEHDqlj4AQ3fEMhn6SuMb9xhy4ySnpgWBRbGiRS6Yhxb8Yo/xzKRsqTTXeNIKlLVa36IzeuWCl8oc2dj+2Fgdz/LfSh2XWSPyR0V2T/4ikQY+raJLKVcOLlMYp4j1DCWvEdPoitTq3MeL0HcvVNbQ60rAC3HRH2GLkUe+78P460+t2GsWW2ebc+ev8zx0f/hWYGDCjUlcrnLhP7+x+vo96Fo1OZ6KfhgPPukghvtPhMtzc00ngNrolOTQ+yhxVl1Tl1iPi/7h9eAAVFtzNWyiUaVsDku34+7p/PpuL9I6rFGbSiamszp9ey7TBuVrqgkVOTfau72MpcKDDgVP4IwK2zTMaZyJwxgc4mAuko1EVlSrsNz50cPMCr0wCdFx/rKBADcNPQJ5AiUyPpKdwGSFlJheYXfBbEByQ5tC7sAk8TkVhYfCUTLIjMsb2GBiQbRpnNtmPNfCe3ZSRUpFKKFJKjj/EPmKbJb9JceQzj7sadWpd6LmLEROzRhftbe3UXv5Xm39R0K1S/uddDmFCkjdSM3DAq4WkKXD6fXoy8k1S6PDjks3+i3+XIJIvgOllRGOlGmilbqQpcIL5dYCN+JdDhhkitQCYcSMfzaDS5mxtvOPiroNvRZvcRAINrjwfwc/bHD6KcDqNXsenntBlPRz9KNfla5j3wt+umui8WRrox6+epnuKi+gCqFosNOO79EQTuLQVlBiPFfr1uFX8JS1H9pBapeZpqoLrWVo8w0Z7JgBthg6zuZhJ5RzWlrN/lJokATn1iKDxY0w6KA8i1roQBZYcle7LbUkr4FBrTd2TPqKeE3OGWUolwkaDN2pXoS7ostmvSN8XRlJNvG24JIQnk5VY+4ui129POq0hWNNDQIwFqqkOvViraxvS1SJNiYU4lIP48QFytt9JpCWybIOgBad/9CtOBPiw3YcjraXzk1c0SAWQ+HH+tFb0ZIS/VetU7+SywjXpV66WskiutUcuREcZ0dONSD1eBZA5nhIQ4X3l3Vu4VxGzlc3l2aYe9MNoYfBFQjDKkxfdWqhZsC1ZpNURFUEoS00dAEFX0aiC6IJ8giyBuIm/WgBVQXfzi/LY4g/g80bR1fOI3r93QWoaB19uwC+qtAQVKEtiFgMf6YYoc+Ty9BE45abcLB45py/aeXzwjtfL5M53H7/DnodV+4ve5lbrY2anwwpxHYOr85g83m72V/Oj5vX15CEM/JOFuXKHD6EiLKjiwOvwOPrTvipjudT/32/vL5Mh4fPk97P3ekVNO4/U2edZVnf47LWgWHggOXPzN31/dJqeZx+ec4+3Lxq9Qq2BhIjxse7nI57z5vXx/2p8+H8evoIY+lCm344ibrQtNCAOozkquVrp64yhv/vD1ejIf4+bf9w/j5Mv7js+wXULY6FOEK1Kwrft0/jKfPCg9X2al9azzRfO1Kr+f9dAoPaDm4nYAyfXOTculbDLVrMWQiGtPLtZxf5yzA4ckZVtpkRe0CPDcOFNpHpYuWdJngw/TNH0I75deT1s/Tt4dxd3oIKifclga5GuHbeBQDde7DZSY/vXr7te/Usw6TPmzR8VFwrSrXOYzHL9OTn3XtaphIiagyUrjZem9VN5ka2lvVXrXDE7Ggy9bXaYUaAXkvXdFKVz6KTmnRmd75bpq2WJaJIAxRJKD80DOp3G1ZxGj0YrARc8UYU2atKpcLv4FfUGIKS4R/SqxAWWegTvDtnXbrGAfbp4SpYzlnYR8k6nXMlIiC8ca1g8sq77hyJNGJvnB87bLOU19mNFNoLtRN4dZPZqZFmsEiyalueU4ZcaFT/qkdUj6uO2ydp3ou4+7kR1EqNSHCwsFvRUJDNPAmghmblMKa3TCfJ4czZnl0389Tg6iyq1XYukq5RGivFb2awBrUGf1gWPSvGw2Nz6BvgKi8Ttd9ust4kMvRdGp1ql69bNxN3y1TCRUCOAWKUa9FNmMHWflqhysnGsMID+MhDJWQxiEnHVNPvgRiUyDebwMj3IQwAMqW1gJ0w8A3DCBgfyJwVBUMBRD4B/wFFWV3NfR+1RLCx5uebwjPk3MDcA3sB6fRC75i7yhmRuA2nLxD4l26pJ5X8v8EAkbLhkqUaiwDqaUOLqJsR7km9sMhRcp+7xL9DnngzMXkUQUZ+4VOFMB1x7Kvh4OWKjazDv7ZwJTeOi+nY15Wo7w36Y8Xn7fzfnvY/99tUPLuUAdE2G3wVOuUJMSVHV2w27lFvUWeR8fxZEmLJgZX6beu7/ICeUJpBPkC8bIKDIVuxvJo4pCur0rakkr2jChPQPL8di0rRPQ6q4mFLP0hLVsGL05WNwu/TiizrcWGDhA9FJ2mOEVBLL0Y0rVlkPHYRsBUPqyc4Y65ztNTwmIsycB2U3+L29paML8XQivRzeK2Jhb4DazT27pZYJVv62ZhGXFZPCP4b1PctlSzrNQgVZ3kH2Jx101ERPhNFoFtBl3tH8tS+xM5aSWzEcufIB9vajVhKWSZyeoTxl5VLLIvfVFq+uW9Fu+WWjxMc8DB60T41ql5xxIjNDi5Zs2N5ow0P36n1ZFjY7yVIaFbCzeZBLfp/R9R93k6PUeV52jwDMWd1WsqQxff1kfqXb3+4eo1Q4feoDHD0pW0H4a0XxxxnOdAQrG6xZdQsUbTFEgQJBE5RJ0hxQ98nQi/J6kkpLCB/IjwezIbS4oWPFWC39M2ZKYg4VxIQYKjHJEfUG8RsSHNBr7BX0WEBM5ZhN9TGBuW3xNfJQSA7SrMc88yIHnuqWXlcccxjZxyamJxuG1jXnGmbfddeZRxXiP8nvhx5ODiNxF+T2FE2dgefpPB7xlknxQqqwqRKqwvdcn6yuXGUmCWMaWYNszR+grIg7VwmJ/1lZA8DilDDqxI5pHEAWx4Wik3CM/x2EqImZl4gPDgoRaE+WzaHs84IWZGPphOD+lE8WQjnPgx0WfcmOPl47AzYZugM+QgccOKyZjMwmT6JSbK9kjA4bJQNVSWRahbLiz9dYzMdtwwTKxTTqh6QwuYp57gNSsQqf+Jg2H32NbfhEFxxjHzDcSa09abeCh2F/s/QtQ4LbsJjGJAshxhfhrcoS0lt220iZniz23HCFwLN98QuuXNY5Wdto/4sW3yiFPPxtqWtguyAjuhxfFvIc1aPHKLR25ZeYpHbskSzhJUHGyH0Qw/xu5tsXttCxpspLamfMOPYbC3sIZso29yk5O5n5IT88zWGm1HGchibGba+Ck3bG/sYgO2dUwi6jZt7y8m3mDyM5lu5gf1HN+T8btrGPR0P37ZHy9+YXjr0ktyn9s9zP2ZmZllLrOfLtM5SIhtnaaKOKlZg50evvvjuPfLPcVFKPNn4/V8mR7M5E5+A+vS5eDPLADkeK9nAfL3bnldS7KFqwPOKRp+/bOTXG/luSOLsh9+d3r1SR2GjZvxRm7C6wNdzju/+YRb7kDmnqvjPIyH7ffL/rgbD9vLdDn7ATs3HzKz4nEe8+vf9tPkY2KdWz65CsDMwabpcDo/eYm4Xe+WTg75j7u/7Lbnh5A9sXfpqFfxmjXc68thv9tOY6SPUufyaTeZufLOmPvTcd4t/jS2bnYPVXkboetWhh93x90YHdjtUUEey+ww7TTupk1sXDfJn4bKKvwzxy2i9+syiJOJMzPX04x7fBAyeXBlsoyqMnSaf/PHh8v3yzQ+z+fMJ7FwxV2ZLe5Q/Pu0//I0XiYEsmVmd+vwesFUzL6A0HwuKX9ugpozVqRUo3RYIVdHIXfI83F7OD9ud9PJp2x1dVSbLwMfz9s53eZwugQEg678a7Kf+sv2JarfalfGZN+dGS2q3Xp3/2Qf0y/Pe38cF09vq2zRZ/ef3Hp146ZktNlra9IZA8XrzJl1m1galVk0dBknqZBqJ0MLnmH+SEvQZ3t/OR1ep/F5+23//Bo55G7Ky2oC33yNh+3LtPcpCfvGOTttdgalN65+z417z9kbyx37eHo2bdMjY1fu2Nmy2h1b6O62cOci+1wtY158Y8ytIolkOytDLaaTcRsu0zYkFHVJSlsZm9GGPF0u4kld3d/ecHunyxQ1UFyiiAhdyPXhonrZVTsAHdp8N+Z5e/572HfGWZY6+z6ft98iZqjLkbJ65pmDRc1QzyHMPt/P4/YYM5Hd0SLVi4nRojdXuzeX/6jjw35rquD8IibXBbJwFcEpiSURQpKoULa/9Lx/iNsjtUedkj9cbNpdzt+mz1/EfXzWN+6sZx/S59Nl9w9fxnty7ZaBDv5Atacsss/P8bQ3mchBCWTv9k5ZEaS80Y7jbooKDLd5D+DKtsteh+P0AgvOzwt1S1eIsNTZIvg4vUQz711aAZtjn70HT7spggPUvZscm+8eL4I4MpybLZkvSpbhjPLZnY67cXuYf+DtStc6qLMXKaJ/ahefKfKhj0hDxLJzNWO2dFlHCitoCreGjqwmmbV0F9PmOaT2b9z68TI7e3Vaufxny8JnjnKxhfxDiKLtsyZWXUr1fIcnQiZbu/rCYYtliP+GwRcGyHH3dFq4Cc329AWci95U+esUcyFdJy2TkssMpeop19zIFj0zY9x03r9EYAP3Wcvs83eeXuL2qdN2FQGunPGWvHxhJdRu7RmjW6ykYAiLoSdGnJjoziBSvkTQQZBicFGt7J1x2X85bg8R3efujjJbqobTVAyujcxsJ+aZkyaEAUMGxlkOAMXD8BdDWwyeMHCU2aprvdOZ+2B+9viW7rzTdsvIvoQY3L2yyV/s1/uIvOk8NClfdAXGyKCSRUKArSvynmmYarhnJvZpfzyGwSiXYIHhXhvKzUexorKscIfPR7Km07Q9SOzP6+WdbVLMpBvP+4s5NQu/h3KIXCs6f7eC0sMwehB6U2KVLvSUjZMZW+jyMu72j3u/1ah3w/n26UwJ4jCCKLPhwUJ5Yz9t/T6vRaFVH74nXd+UdD3rPk+2DlcIIUxOAeSFzgFnBjbbahu4KmqjHNbOsaA30bxtjmH6YN7vF+WsURUyPVWR+ucX90Lusw3YWymAIGl/UJlfE8Thl7BBscuSEGHhSpNk+jEDrwJJT5A77IOuTmqnQ3tDsVFiHZAdR7rKRTvUDsiuW1DlApEnn3tHbZmoMxOcAtYXTVAwERf5cuRj+BfSMGRxLZyeTWzLt1sGlREnJZBOr+ewwPga832ESeGt6ORJl4D9b7PsmHu2EU4FKRVK4Waw9w5Gto6HbYzD/E695neepv/6j6dpern88unTb+P9edrdfTmdvhzG5cu73en50+W8+/T/fjqPj5dPT+P24fLpebs/fno47S6fjtswPlYOagfu67wGL9tg2TZXNAkZGyH3fcVi7Q1ZFiOqYWTtiyx5EXUtkXKWSM2KKFXJKUOJFJ2IEpNIQYksH5FmjygNkfUfWUUesqRDGkvSahLFGZFSDFF4ESmzCIsqIiUUQcFEfNNJk7usNQoGliGwIoJcvFKAMEs/ISXYSYMNrGxPKp+xJnrzAQuI6zlFsM7ITf5YM5zL+XPYbsfN2LAdW66owfN5/IdU0I1LKbje4C1jCdajwVX4mex9PtDZdm4SZi7OfUl0IKhdHDnXD71caUDghjLaXNg8hMi8OG0rDRpLyhEQD5NAN8EwE2kAS+s9ZI8psTcjhAKSvCzBMAMZZqOnOudMSbOIEdYECw20tI3CJnhpkG5vI7UJppqWkyuEh+Su6Wlr4xIJNhvMoY0KJ/htoHNs9YBtoxhS37y9pRO0+f0x2+dWTh5j7+yCQ1Gr3cRKvSMOR/rsNapvNmrXcb37ux0r6CSvds1Kj+XfUl2pNOhCYzRN8oH9+6tVEuTbB1aYgSs3mNlnKp7rYHvlpjT2mQLfIG2Xab8LdIdmErNfqGynaaV35CqGkNm7V9VL8rnTldFCrLhSe45ZqYKTzoKPmm9gc0HudbXuqc0Xn04P22n7dT/+5gcEnAXocjPtXj1e4a5S6YYSbSvJyKZTSl9en5+3Z79OQ2WtddrCFlfWO9q3NLF4rz4SO2in7T2IchOG9tt+2nkkwbWKr+Sw+7PtoeTDKlq1h6S++ea8dh8nVvsyWpwYqk/3hXyYTG09eFMjqmk8m4zUsOdnt1GFInsD040LyJ7jl/nmV9Q2P5lD88/bWpD1egqHZpKGeHra+vtTNVYUkcK+We+iRZlf3w/UkAYWRePW1qHJ9EL2BCKYLKgO+VhuazFs6RLJRUZwP6Qi+dP2Gp6efFjyCu0gTJXlJUAXMcF0XTHPmGZ/qQQaSaaJ9RWLEaCUP7vvz7XmrX90HyBWJWssjKh4VdgYcZzBQcHWhVhOrKdtWUhZBYEU4S1JUCuRySTBsUQpyL/CNonQniR4mLgJ8WMsZ4z0kcwMOaRNBGIS7E1hzKjA5Mb4IEm6IqmecBRsTyz8OMUQyQOk80JFGibi+EU4I0nwIpB5SSKV00sRWznCNGmJYhIcVKSOCaMApJxMNF4sBwoOynJBYWWbM5KLRsQXEq0YIdOSZJakshFxilSXRoyTYL60TDgi3pFo4IiZT9JkkkhHxE1SvR0xYIpBU1gilkqT9B2hF53sCIm/ShFw6iEetvi2xCBU3fgr2z6SBEEJ2k5mRuosYlQ1kaaTjBHjryzjEGMitJYlB1GCjYz6TUasaJJIfrLQGHSiWvDaI4xlwnK0pEZUp8LqqYSZafmOoGQjrGak8hERNExLjOeM5EhhlK3BVm9gYTXY8w2Q5aanssePMXUNtnoDpdBgDpuBJoHkVCMjk4jxMQQWYVkjWZOIA+IpYrxr5HEKY4WyHUSL5yKzRosHjLG16TFH2T8UiixJj0ryKMmTSgYVMk3R/sVFbbNRGkkKqepH5P3InjdJqG56Gvd+baBqU5O9B1sPIKSKSE9PAZ6x0dyimjVtlgNEkIHExj8HpavvQJl/Cn/Qm42lGqtrxwxMm4AsM5FFSnLsqj4BiwZR4JHW7Yf1wnIFSx24ZbeSx4e7/RqZvOOG0Pug08HdRheDnoXuUFRia0YY4uk+cPsKZ8F6BJwifGVp4OkIcNNLs19Eba3ZzxNC254mPc1+/Lk16WnJCwPemuL8hEeYR06Y2YLZ3elmTltaGsy0b3l0helr7VuatdKIpc3JAy/MUZkzaa1QGp/S1KRlSOuR5p80EWna0fzjlqeN51ePeYzstOhoyNFIo2wSJpkwtyKmlDSTpAkkzJuIgSGNB2EYxBQ6NKllN6dCp0aWWptfUUfz3KuAvmxLq3ZXDTAXP6nu4wdqRwaYLJoMwUpYGRJu7c6u3dnzZTo5/Gx+qYPbO1FWZWW0XBIVlm2n2hXMleZDYSWakpuG9reutaIlLGo7Vqa7BPgb0RFJaan3nbazr/dcnbzs4OoKU28cswwxSg2bDDDIa9gannmQuotqLQGY5eBkRMUSYJhEvHKArgS+JUEsiV0lACodl/pDGpZARfwv6VxyU5+Sm9qT/GBXEuITErqAVryJLV34NIyBZhGpBw6QEzl951j/nysc6wmPXDjiP+hS41qYzA47qqspbZXkmbh2EM3LK7cEt8/LJZ1OJy+NqnFZ8coIYZbzYWSwyS9cU5vQ0+tYXynoMG3r59InoitUJVwY+ngiuiH9FOmDSP9CehNMtZQOgnQHpPEvTX1hxkdsdWmQS2ObNjZROFrUNKRpP5P4l9YyjWQ8oEN1LszdhCnrVOH66XRqKYcOOaHm1huo0GxjkoVTQWM3qVkbyat+NqW+ny/jPz5LdoPK7RucSVxkWCX8pB0t9cdJ2uEb/X79ttFq8h7WFfKRPn1GAtM0+WWpndrM1KLD0DwWJobGsHgxbGELHOsQ4W9+zZxac2z1tTpUyDpTadLKRifX1yBEz5BzGGJmuJZp5Qx9MlKZCCyKYF8kNidjajIWJmNYNoMThoWNRonYk4wQ2TgOvpLBGlKsM27CUAijGwxYMFJA8N/i+UohjIPMd3gKS0VO+J3cPNH19w5NqR6aOIRt1BKNd1ro2Cu07/T00dfjw/i4P/otWbpGyzH8WZEa7dbOh+9hHaZ63EKLJz7m/ptfJKi5+Hr/09djYPR0ep/nf+V0nff+k6nV1vDT1x3lZ2Y7CM66f3GjFNuJWzj+Un15efllZnzwlYE2z70q6s1o+3F6/OVle94+X345T57SqvR8QO3BmqsPcPFjM6qCh0zFQcNZJBihB2mIe4toja2Dps9vC6LpzxOCFoCziOgk3G+nnlqCyQI6jgDFMhWBNTx0boniCg+2EU4pZVXKBVUCbZ6f+UahJkKs9L70gvHXiy8/i0JT4+9BPS2olyT2eL34Rm9TapG9EjurbHSddwlpyFWXgMmuInSWoWum/cFX7o5b+0E4tT/Lc0/G0r8W5V13t3FK73/77c5wn92dzl8+PYyH/dfx/Ml88Hm6fCrKtthsPpuXYZj/V9SfiupuU95tNp/bzafp8nn59GtRbcrN5uXu5eHR1wOqSEWOpBps/fpr+U9fA6hcCn9ERn1OTvv8CP88j5fx/NUXGa1aJVDr5CjLcN/84EG62iA6zPaw9+VXrZJUMGt7XS3KLWi+iuKKUVimWhK5wCSy0hsyoMJiWPYWXKLGgtVsR4RxOixYp4fqv24Pr37EqFT9tiAt+Y9OR7ZmRSmMCGsyiMh2hENFKn+p6qnYwzBvhFXF4s9QAW/idcc8rUjwkxFOXTPPqx70yNH2dpi1TptJFH93mAnLDy+vPApe0V5TWrECGSoeFTyIGNkqc+F14WoG++yQtPkDO8HVTH7QLNK3yu1hkMmTHVZnqsu5bql1HtfzEkQhQ3kWRhsp32RQkRLPxhIZMCRAzMx4Xl8GA/HnjAra0B8lpwj0UZbyCRjWy+k+bCWwzM+mTJahNkppmRhNuS3DaJTkMmhG2S5CZFbai4AY86EYGUtEvUTYKhKJisSdRJRJxJQiESQZL4pEhxgLYnKnjA4xTVPGgphV6Ud+oifFy2RsXVL6OrNH0tfnBHFI7xJub6ofGjAkDulbd9BGJnJEBz0FFG2VywEzFGIQ+1lsLJ9Vrdd8udqGLsj3wLxhFT36ejq8+qkrlcsPncmq+dvWz1S5FuQKglupWBZDWB1NC2IPMiolg1GMQTH0xIgTA004pQwr2WjSzw8i6QGM37x1qQuVlDIjUPHb02hyfb0Do60SlEOglCjecOahlNbPrXL6aRWYf+XCy9+e9kHpvEpRkrWg+wf/2KqF+L2+wfYHn0xc22HBjiAi8PNrbv/SK76fnnwcTluiMPmMKaR4DEih9VUkmzGRjLlhTACjPUczDrOdQxvM8ri/Mn+wWQi/xZyaiv+OiN5S5vDb6ewhNbWqU0Li5Phorwcf+NlomMj7Mt20TOf9FFT9a655o1qi3/w8D7dVQlHI1CqH0sMWjDBIrqqkb+cIL7FrkVr80b1WwBaZGvk/Qo+9VcPLCfWL0QTrsdtOsM5sr/g9COCq1L7rDn5Xv1fV7399/PCyfxkP++P44Zf//K//+Z//H6c02SM="; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css index 7f80f3d..2ab8b83 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -991,14 +991,15 @@ vertical-align: text-top; } /* - We need to be careful to target the arrow indicating whether the accordion - is open, but not any other SVGs included in the details element. -*/ + * We need to be careful to target the arrow indicating whether the accordion + * is open, but not any other SVGs included in the details element. + */ .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child, .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child, .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child, .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child { + .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h5 > svg:first-child { transform: rotate(-90deg); } .tsd-index-content > :not(:first-child) { diff --git a/docs/classes/packets.ByePacket.html b/docs/classes/packets.ByePacket.html index 18d52fa..3005af6 100644 --- a/docs/classes/packets.ByePacket.html +++ b/docs/classes/packets.ByePacket.html @@ -1,4 +1,4 @@ -ByePacket | rtp.js - v0.13.1

Class ByePacket

RTCP BYE packet.

+ByePacket | rtp.js - v0.13.1

Class ByePacket

RTCP BYE packet.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -12,35 +12,35 @@
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP BYE +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP BYE packet will be created.

      -

    Returns ByePacket

      +

Returns ByePacket

  • If given view does not contain a valid RTCP BYE packet.
-

Methods

  • Add SSRC value.

    -

    Parameters

    • ssrc: number

    Returns void

      +

Methods

  • Add SSRC value.

    +

    Parameters

    • ssrc: number

    Returns void

    • Serialization is needed after calling this method.
    -
  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -52,67 +52,67 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns ByePacket

      +

Returns ByePacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -120,9 +120,9 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
  • Set SSRC values.

    +

    Parameters

    • ssrcs: number[]

    Returns void

    • Serialization is needed after calling this method.
    -
+
diff --git a/docs/classes/packets.CompoundPacket.html b/docs/classes/packets.CompoundPacket.html index 1d29ff2..64d11bd 100644 --- a/docs/classes/packets.CompoundPacket.html +++ b/docs/classes/packets.CompoundPacket.html @@ -1,27 +1,27 @@ -CompoundPacket | rtp.js - v0.13.1

Class CompoundPacket

RTCP Compound packet.

-

Methods

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -33,63 +33,63 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns CompoundPacket

      +

Returns CompoundPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Return the RtcpPacket entries in this RTCP Compound packet.

    +

    Returns RtcpPacket[]

    -
    import { packets } from 'rtp.js';
    const { CompoundPacket, RtcpPacketType, SdesPacket } = packets;

    const compoundPacket = new CompoundPacket(view);

    for (const packet of compoundPacket.getPackets())
    {
    switch (packet.getPacketType())
    {
    case RtcpPacketType.SDES:
    {
    const sdesPacket = packet as SdesPacket;

    console.log(sdesPacket.getChunks());

    break;
    }

    // etc.
    }
    } +
    import { packets } from 'rtp.js';
    const { CompoundPacket, RtcpPacketType, SdesPacket } = packets;

    const compoundPacket = new CompoundPacket(view);

    for (const packet of compoundPacket.getPackets())
    {
    switch (packet.getPacketType())
    {
    case RtcpPacketType.SDES:
    {
    const sdesPacket = packet as SdesPacket;

    console.log(sdesPacket.getChunks());

    break;
    }

    // etc.
    }
    }
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -97,8 +97,8 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.DlrrExtendedReport.html b/docs/classes/packets.DlrrExtendedReport.html index 8426424..3257c2c 100644 --- a/docs/classes/packets.DlrrExtendedReport.html +++ b/docs/classes/packets.DlrrExtendedReport.html @@ -1,4 +1,4 @@ -DlrrExtendedReport | rtp.js - v0.13.1

Class DlrrExtendedReport

DLRR Extended Report.

+DlrrExtendedReport | rtp.js - v0.13.1

Class DlrrExtendedReport

DLRR Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -16,24 +16,24 @@
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty DLRR Extended +

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Returns DlrrExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -45,55 +45,55 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DlrrExtendedReport

      +

Returns DlrrExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -101,5 +101,5 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.DrleExtendedReport.html b/docs/classes/packets.DrleExtendedReport.html index 6bc9b0a..ecd17df 100644 --- a/docs/classes/packets.DrleExtendedReport.html +++ b/docs/classes/packets.DrleExtendedReport.html @@ -1,4 +1,4 @@ -DrleExtendedReport | rtp.js - v0.13.1

Class DrleExtendedReport

Duplicate RLE Extended Report.

+DrleExtendedReport | rtp.js - v0.13.1

Class DrleExtendedReport

Duplicate RLE Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -16,38 +16,38 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty Duplicate RLE +

Hierarchy (View Summary)

Constructors

Methods

  • Add chunk.

    -

    Parameters

    • chunk: number

    Returns void

      +

Returns DrleExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -59,63 +59,63 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DrleExtendedReport

      +

Returns DrleExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -123,14 +123,14 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.EcnExtendedReport.html b/docs/classes/packets.EcnExtendedReport.html index 0443054..9654573 100644 --- a/docs/classes/packets.EcnExtendedReport.html +++ b/docs/classes/packets.EcnExtendedReport.html @@ -1,4 +1,4 @@ -EcnExtendedReport | rtp.js - v0.13.1

Class EcnExtendedReport

ECN Summary Extended Report.

+EcnExtendedReport | rtp.js - v0.13.1

Class EcnExtendedReport

ECN Summary Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -16,34 +16,34 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty ECN Summary +

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Returns EcnExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -55,61 +55,61 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns EcnExtendedReport

      +

Returns EcnExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -117,11 +117,11 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.EcnPacket.html b/docs/classes/packets.EcnPacket.html index 2c3ce67..ec6eb3c 100644 --- a/docs/classes/packets.EcnPacket.html +++ b/docs/classes/packets.EcnPacket.html @@ -1,4 +1,4 @@ -EcnPacket | rtp.js - v0.13.1

Class EcnPacket

RTCP ECN packet (RTCP Transport Layer Feedback).

+EcnPacket | rtp.js - v0.13.1

Class EcnPacket

RTCP ECN packet (RTCP Transport Layer Feedback).

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -20,45 +20,45 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP ECN +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP ECN packet will be created.

      -

    Returns EcnPacket

      +

Returns EcnPacket

  • If given view does not contain a valid RTCP ECN packet.
-

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -70,75 +70,75 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns EcnPacket

      +

Returns EcnPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -146,13 +146,13 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
  • Set Duplication Counter.

    -

    Parameters

    • counter: number

    Returns void

  • Set Extended Highest Sequence Number.

    -

    Parameters

    • sequenceNumber: number

    Returns void

  • Set Lost Packets Counter.

    -

    Parameters

    • counter: number

    Returns void

+
  • Set Duplication Counter.

    +

    Parameters

    • counter: number

    Returns void

  • Set Extended Highest Sequence Number.

    +

    Parameters

    • sequenceNumber: number

    Returns void

  • Set Lost Packets Counter.

    +

    Parameters

    • counter: number

    Returns void

diff --git a/docs/classes/packets.ExtendedJitterReportsPacket.html b/docs/classes/packets.ExtendedJitterReportsPacket.html index e25810c..c87d7f9 100644 --- a/docs/classes/packets.ExtendedJitterReportsPacket.html +++ b/docs/classes/packets.ExtendedJitterReportsPacket.html @@ -1,4 +1,4 @@ -ExtendedJitterReportsPacket | rtp.js - v0.13.1

Class ExtendedJitterReportsPacket

RTCP Extended Jitter Reports packet.

+ExtendedJitterReportsPacket | rtp.js - v0.13.1

Class ExtendedJitterReportsPacket

RTCP Extended Jitter Reports packet.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -10,34 +10,34 @@
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP Extended +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP Extended Jitter Reports packet will be created.

      -

    Returns ExtendedJitterReportsPacket

      +

Returns ExtendedJitterReportsPacket

  • If given view does not contain a valid RTCP Extended Jitter Reports packet.
-

Methods

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -49,66 +49,66 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns ExtendedJitterReportsPacket

      +

Returns ExtendedJitterReportsPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -116,8 +116,8 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.ExtendedReport.html b/docs/classes/packets.ExtendedReport.html index 6b94120..bed4210 100644 --- a/docs/classes/packets.ExtendedReport.html +++ b/docs/classes/packets.ExtendedReport.html @@ -1,4 +1,4 @@ -ExtendedReport | rtp.js - v0.13.1

Class ExtendedReportAbstract

Parent class of all XrPacket Extended Reports.

+ExtendedReport | rtp.js - v0.13.1

Class ExtendedReportAbstract

Parent class of all XrPacket Extended Reports.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -8,17 +8,17 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -30,57 +30,57 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      +

Returns Serializable

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -88,4 +88,4 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.FeedbackPacket.html b/docs/classes/packets.FeedbackPacket.html index 9e6c69b..b23f967 100644 --- a/docs/classes/packets.FeedbackPacket.html +++ b/docs/classes/packets.FeedbackPacket.html @@ -1,4 +1,4 @@ -FeedbackPacket | rtp.js - v0.13.1

Class FeedbackPacketAbstract

RTCP Feedback packet.

+FeedbackPacket | rtp.js - v0.13.1

Class FeedbackPacketAbstract

RTCP Feedback packet.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -12,25 +12,25 @@
 :                                                               :
 
-

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -42,71 +42,71 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      +

Returns Serializable

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -114,6 +114,6 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.GenericExtendedReport.html b/docs/classes/packets.GenericExtendedReport.html index 1f1c09a..e673b03 100644 --- a/docs/classes/packets.GenericExtendedReport.html +++ b/docs/classes/packets.GenericExtendedReport.html @@ -1,4 +1,4 @@ -GenericExtendedReport | rtp.js - v0.13.1

Class GenericExtendedReport

Generic Extended Report.

+GenericExtendedReport | rtp.js - v0.13.1

Class GenericExtendedReport

Generic Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -10,28 +10,28 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty generic +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty generic Extended Report will be created.

    • OptionalreportType: number

      If view is not given, this parameter must be given.

      -

    Returns GenericExtendedReport

      +

Returns GenericExtendedReport

  • If given view does not contain a valid generic Extended Report.
-

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -43,57 +43,57 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns GenericExtendedReport

      +

Returns GenericExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -101,10 +101,10 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+

Parameters

  • typeSpecific: number

Returns void

diff --git a/docs/classes/packets.GenericFeedbackPacket.html b/docs/classes/packets.GenericFeedbackPacket.html index 13f5120..f233529 100644 --- a/docs/classes/packets.GenericFeedbackPacket.html +++ b/docs/classes/packets.GenericFeedbackPacket.html @@ -1,4 +1,4 @@ -GenericFeedbackPacket | rtp.js - v0.13.1

Class GenericFeedbackPacket

RTCP generic Feedback packet.

+GenericFeedbackPacket | rtp.js - v0.13.1

Class GenericFeedbackPacket

RTCP generic Feedback packet.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -12,35 +12,35 @@
 :                                                               :
 
-

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Returns GenericFeedbackPacket

  • If given view does not contain a valid RTCP generic Feedback packet.
-

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -52,69 +52,69 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns GenericFeedbackPacket

      +

Returns GenericFeedbackPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -122,10 +122,10 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.GenericPacket.html b/docs/classes/packets.GenericPacket.html index b37abcd..276dfef 100644 --- a/docs/classes/packets.GenericPacket.html +++ b/docs/classes/packets.GenericPacket.html @@ -1,4 +1,4 @@ -GenericPacket | rtp.js - v0.13.1

Class GenericPacket

RTCP generic packet.

+GenericPacket | rtp.js - v0.13.1

Class GenericPacket

RTCP generic packet.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -10,30 +10,30 @@
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-
    +
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP generic +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP generic packet will be created.

    • OptionalpacketType: number

      If view is not given, this parameter must be given.

      -

    Returns GenericPacket

      +

Returns GenericPacket

  • If given view does not contain a valid RTCP generic packet.
-

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -45,66 +45,66 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns GenericPacket

      +

Returns GenericPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -112,14 +112,14 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
  • Set the packet body.

    +

    Parameters

    • view: DataView

    Returns void

    • Serialization is needed after calling this method.
    -
  • Set the RTCP header count value.

    +

    Parameters

    • count: number

    Returns void

    • This field (the 5 less significant bits in the first byte of the common RTCP header) can be used for other custom purpose in case the packet needs it for something else.
    -
+
diff --git a/docs/classes/packets.LrleExtendedReport.html b/docs/classes/packets.LrleExtendedReport.html index ede4136..d7711dd 100644 --- a/docs/classes/packets.LrleExtendedReport.html +++ b/docs/classes/packets.LrleExtendedReport.html @@ -1,4 +1,4 @@ -LrleExtendedReport | rtp.js - v0.13.1

Class LrleExtendedReport

Loss RLE Extended Report.

+LrleExtendedReport | rtp.js - v0.13.1

Class LrleExtendedReport

Loss RLE Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -16,38 +16,38 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty Loss RLE +

Hierarchy (View Summary)

Constructors

Methods

  • Add chunk.

    -

    Parameters

    • chunk: number

    Returns void

      +

Returns LrleExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -59,63 +59,63 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns LrleExtendedReport

      +

Returns LrleExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -123,14 +123,14 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.NackPacket.html b/docs/classes/packets.NackPacket.html index 2221e41..d3cf5dd 100644 --- a/docs/classes/packets.NackPacket.html +++ b/docs/classes/packets.NackPacket.html @@ -1,4 +1,4 @@ -NackPacket | rtp.js - v0.13.1

Class NackPacket

RTCP NACK packet (RTCP Transport Layer Feedback).

+NackPacket | rtp.js - v0.13.1

Class NackPacket

RTCP NACK packet (RTCP Transport Layer Feedback).

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -14,39 +14,39 @@
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP NACK +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP NACK packet will be created.

      -

    Returns NackPacket

      +

Returns NackPacket

  • If given view does not contain a valid RTCP NACK packet.
-

Methods

  • Add NACK item value.

    -

    Parameters

    • pid: number
    • bitmask: number

    Returns void

      +

Methods

  • Add NACK item value.

    +

    Parameters

    • pid: number
    • bitmask: number

    Returns void

    • Use createNackItem to create the NACK item.
    • Serialization is needed after calling this method.
    -
  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -58,72 +58,72 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns NackPacket

      +

Returns NackPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -131,11 +131,11 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
  • Set NACK items.

    +

    Parameters

    • items: { bitmask: number; pid: number }[]

    Returns void

    • Use createNackItem to create NACK items.
    • Serialization is needed after calling this method.
    -
+
diff --git a/docs/classes/packets.Packet.html b/docs/classes/packets.Packet.html index 283197c..b6aef7b 100644 --- a/docs/classes/packets.Packet.html +++ b/docs/classes/packets.Packet.html @@ -1,13 +1,13 @@ -Packet | rtp.js - v0.13.1

Class PacketAbstract

Parent class of all RTP and RTCP packets.

-

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory +Packet | rtp.js - v0.13.1

    Class PacketAbstract

    Parent class of all RTP and RTCP packets.

    +

    Hierarchy (View Summary)

    Methods

    • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

      Parameters

      • Optionalbuffer: ArrayBuffer

        Buffer in which the content will be cloned. If not given, a @@ -19,62 +19,62 @@ allocated.

      • OptionalserializationByteOffset: number

        Byte offset of the given serializationBuffer where serialization (if needed) will start.

        -

      Returns Serializable

        +

    Returns Serializable

    • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
    -
      +
    • If serialization is needed and it fails.
    • If given buffer doesn't have space enough to clone the content.
    • If given serializationBuffer doesn't have space enough to serialize the content.
    -
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the padding (in bytes) at the end of the packet.

    -

    Returns number

  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get the padding (in bytes) at the end of the packet.

    +

    Returns number

  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into +

  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -82,4 +82,4 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.PliPacket.html b/docs/classes/packets.PliPacket.html index 224728e..577f499 100644 --- a/docs/classes/packets.PliPacket.html +++ b/docs/classes/packets.PliPacket.html @@ -1,4 +1,4 @@ -PliPacket | rtp.js - v0.13.1

Class PliPacket

RTCP PLI packet (RTCP Payload Specific Feedback).

+PliPacket | rtp.js - v0.13.1

Class PliPacket

RTCP PLI packet (RTCP Payload Specific Feedback).

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -10,31 +10,31 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP PLI +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP PLI packet will be created.

      -

    Returns PliPacket

      +

Returns PliPacket

  • If given view does not contain a valid RTCP PLI packet.
-

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -46,68 +46,68 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns PliPacket

      +

Returns PliPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -115,6 +115,6 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.PrtExtendedReport.html b/docs/classes/packets.PrtExtendedReport.html index 5c0c9fd..5156404 100644 --- a/docs/classes/packets.PrtExtendedReport.html +++ b/docs/classes/packets.PrtExtendedReport.html @@ -1,4 +1,4 @@ -PrtExtendedReport | rtp.js - v0.13.1

Class PrtExtendedReport

Packet Receipt Times Extended Report.

+PrtExtendedReport | rtp.js - v0.13.1

Class PrtExtendedReport

Packet Receipt Times Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -18,35 +18,35 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty Packet Receipt +

Hierarchy (View Summary)

Constructors

Methods

  • Add receipt time.

    -

    Parameters

    • receiptTime: number

    Returns void

      +

Returns PrtExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -58,62 +58,62 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns PrtExtendedReport

      +

Returns PrtExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -121,12 +121,12 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.ReceiverReportPacket.html b/docs/classes/packets.ReceiverReportPacket.html index 72f7830..4713e36 100644 --- a/docs/classes/packets.ReceiverReportPacket.html +++ b/docs/classes/packets.ReceiverReportPacket.html @@ -1,4 +1,4 @@ -ReceiverReportPacket | rtp.js - v0.13.1

Class ReceiverReportPacket

RTCP Receiver Report packet.

+ReceiverReportPacket | rtp.js - v0.13.1

Class ReceiverReportPacket

RTCP Receiver Report packet.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -26,35 +26,35 @@
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP Receiver +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP Receiver Report packet will be created.

      -

    Returns ReceiverReportPacket

      +

Returns ReceiverReportPacket

  • If given view does not contain a valid RTCP Receiver Report packet.
-

Methods

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -66,67 +66,67 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns ReceiverReportPacket

      +

Returns ReceiverReportPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -134,9 +134,9 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.ReceptionReport.html b/docs/classes/packets.ReceptionReport.html index 3020b79..91d94c5 100644 --- a/docs/classes/packets.ReceptionReport.html +++ b/docs/classes/packets.ReceptionReport.html @@ -1,28 +1,28 @@ -ReceptionReport | rtp.js - v0.13.1

Class ReceptionReport

RTCP Reception Report.

-

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -34,60 +34,60 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns ReceptionReport

      +

Returns ReceptionReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -95,11 +95,11 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.RpsiPacket.html b/docs/classes/packets.RpsiPacket.html index 8251e13..626932f 100644 --- a/docs/classes/packets.RpsiPacket.html +++ b/docs/classes/packets.RpsiPacket.html @@ -1,4 +1,4 @@ -RpsiPacket | rtp.js - v0.13.1

Class RpsiPacket

RTCP RPSI packet (RTCP Payload Specific Feedback).

+RpsiPacket | rtp.js - v0.13.1

Class RpsiPacket

RTCP RPSI packet (RTCP Payload Specific Feedback).

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -14,35 +14,35 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP RPSI +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP RPSI packet will be created.

      -

    Returns RpsiPacket

      +

Returns RpsiPacket

  • If given view does not contain a valid RTCP RPSI packet.
-

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -54,70 +54,70 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns RpsiPacket

      +

Returns RpsiPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -125,11 +125,11 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
  • Set the bit string.

    +

    Parameters

    • view: DataView

    Returns void

    • Serialization is needed after calling this method.
    -
+
diff --git a/docs/classes/packets.RrtExtendedReport.html b/docs/classes/packets.RrtExtendedReport.html index 6ef8948..e66ee35 100644 --- a/docs/classes/packets.RrtExtendedReport.html +++ b/docs/classes/packets.RrtExtendedReport.html @@ -1,4 +1,4 @@ -RrtExtendedReport | rtp.js - v0.13.1

Class RrtExtendedReport

Receiver Reference Time Extended Report.

+RrtExtendedReport | rtp.js - v0.13.1

Class RrtExtendedReport

Receiver Reference Time Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -10,24 +10,24 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty Receiver +

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Returns RrtExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -39,56 +39,56 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns RrtExtendedReport

      +

Returns RrtExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -96,6 +96,6 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.RtcpPacket.html b/docs/classes/packets.RtcpPacket.html index 5f4e103..d35b718 100644 --- a/docs/classes/packets.RtcpPacket.html +++ b/docs/classes/packets.RtcpPacket.html @@ -1,4 +1,4 @@ -RtcpPacket | rtp.js - v0.13.1

Class RtcpPacketAbstract

RTCP packet. Parent class of all RTCP packets.

+RtcpPacket | rtp.js - v0.13.1

Class RtcpPacketAbstract

RTCP packet. Parent class of all RTCP packets.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -6,20 +6,20 @@
        +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 
-

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -31,68 +31,68 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      +

Returns Serializable

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into +

  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -100,4 +100,4 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.RtpPacket.html b/docs/classes/packets.RtpPacket.html index 392024b..0d46238 100644 --- a/docs/classes/packets.RtpPacket.html +++ b/docs/classes/packets.RtpPacket.html @@ -1,4 +1,4 @@ -RtpPacket | rtp.js - v0.13.1

Class RtpPacket

RTP packet.

+RtpPacket | rtp.js - v0.13.1

Class RtpPacket

RTP packet.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -18,72 +18,72 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTP packet +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTP packet (with just the minimal fixed header) will be created.

      -

    Returns RtpPacket

      +

Returns RtpPacket

  • If view is given and it does not contain a valid RTP packet.
-

Methods

  • Clear all extensions (RFC 5285).

    -

    Returns void

      +

Methods

  • Clear all extensions (RFC 5285).

    +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -95,118 +95,118 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns RtpPacket

      +

Returns RtpPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Delete the extension with given id (RFC 5285).

    +

    Parameters

    • id: number

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Enable One-Byte extensions (RFC 5285).

    +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Enable Two-Bytes extensions (RFC 5285).

    +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      +
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the value of the extension with given id (RFC 5285).

    -

    Parameters

    • id: number

    Returns undefined | DataView

  • Get the value of the extension with given id (RFC 5285).

    +

    Parameters

    • id: number

    Returns undefined | DataView<ArrayBufferLike>

  • Get RTP extension mapping (association of RTP extension types and their numeric ids in this RTP packet).

    -

    Returns Partial<Record<RtpExtensionType, number>>

  • Get a map with all the extensions indexed by their extension id (RFC 5285).

    -

    Returns Map<number, DataView>

  • Get a map with all the extensions indexed by their extension id (RFC 5285).

    +

    Returns Map<number, DataView<ArrayBufferLike>>

  • Get a buffer view containing the serialized content of the packet or item.

    +

    Returns undefined | VideoOrientationExtension

  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether One-Byte extensions (as per RFC 5285) are enabled.

    -

    Returns boolean

  • Whether Two-Bytes extensions (as per RFC 5285) are enabled.

    -

    Returns boolean

  • Whether One-Byte extensions (as per RFC 5285) are enabled.

    +

    Returns boolean

  • Whether Two-Bytes extensions (as per RFC 5285) are enabled.

    +

    Returns boolean

  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Decode the packet using RTX procedures (as per RFC 4588).

    Parameters

    • payloadType: number

      The original payload type.

    • ssrc: number

      The original SSRC.

      -

    Returns void

      +

Returns void

  • Serialization is needed after calling this method.
-
    +
  • If payload length is less than 2 bytes, so RTX decode is not possible.
-
  • Encode the packet using RTX procedures (as per RFC 4588).

    +
  • Encode the packet using RTX procedures (as per RFC 4588).

    Parameters

    • payloadType: number

      The RTX payload type.

    • ssrc: number

      The RTX SSRC.

    • sequenceNumber: number

      The RTX sequence number.

      -

    Returns void

      +

Returns void

  • Serialization is needed after calling this method.
-
  • Apply pending changes and serialize the content of the packet or item into +

  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -214,46 +214,46 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
  • Set the RTP CSRC values. If csrcs is not given (or if it's an empty array) CSRC field will be removed from the RTP packet.

    -

    Parameters

    • csrcs: number[] = []

    Returns void

      +

    Parameters

    • csrcs: number[] = []

    Returns void

    • Serialization is needed after calling this method.
    -
  • Set the value of the extension with given id (RFC 5285).

    -

    Parameters

    • id: number
    • value: DataView

    Returns void

      +
  • Set the value of the extension with given id (RFC 5285).

    +

    Parameters

    • id: number
    • value: DataView

    Returns void

    • Serialization is needed after calling this method.
    -
  • Set RTP extension mapping (association of RTP extension types and their numeric ids in this RTP packet).

    -

    Parameters

    Returns void

      +

    Parameters

    • extensionMapping: Partial

    Returns void

    • Calling this method is needed before using other methods that read or write specific RTP extensions.
    -
  • Set the packet payload.

    -

    Parameters

    • view: DataView

    Returns void

      +
  • Set the packet payload.

    +

    Parameters

    • view: DataView

    Returns void

    • Serialization is needed after calling this method.
    -
  • Set the RTP payload type.

    -

    Parameters

    • payloadType: number

    Returns void

  • Set the RTP payload type.

    +

    Parameters

    • payloadType: number

    Returns void

  • Set the RTP sequence number.

    -

    Parameters

    • sequenceNumber: number

    Returns void

  • Set the RTP sequence number.

    +

    Parameters

    • sequenceNumber: number

    Returns void

+

Parameters

Returns void

diff --git a/docs/classes/packets.SdesChunk.html b/docs/classes/packets.SdesChunk.html index 170a954..3be37ff 100644 --- a/docs/classes/packets.SdesChunk.html +++ b/docs/classes/packets.SdesChunk.html @@ -1,20 +1,20 @@ -SdesChunk | rtp.js - v0.13.1

Class SdesChunk

SDES Chunk.

-

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -26,55 +26,55 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns SdesChunk

      +

Returns SdesChunk

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -82,6 +82,6 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.SdesPacket.html b/docs/classes/packets.SdesPacket.html index 41bfcb4..31a0d0e 100644 --- a/docs/classes/packets.SdesPacket.html +++ b/docs/classes/packets.SdesPacket.html @@ -1,4 +1,4 @@ -SdesPacket | rtp.js - v0.13.1

Class SdesPacket

RTCP SDES packet.

+SdesPacket | rtp.js - v0.13.1

Class SdesPacket

RTCP SDES packet.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -16,33 +16,33 @@
        +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP SDES +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP SDES packet will be created.

      -

    Returns SdesPacket

      +

Returns SdesPacket

  • If given view does not contain a valid RTCP SDES packet.
-

Methods

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -54,66 +54,66 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns SdesPacket

      +

Returns SdesPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -121,8 +121,8 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.SenderReportPacket.html b/docs/classes/packets.SenderReportPacket.html index 338dfcb..3811af7 100644 --- a/docs/classes/packets.SenderReportPacket.html +++ b/docs/classes/packets.SenderReportPacket.html @@ -1,4 +1,4 @@ -SenderReportPacket | rtp.js - v0.13.1

Class SenderReportPacket

RTCP Sender Report packet.

+SenderReportPacket | rtp.js - v0.13.1

Class SenderReportPacket

RTCP Sender Report packet.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -36,45 +36,45 @@
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP Sender +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP Sender Report packet will be created.

      -

    Returns SenderReportPacket

      +

Returns SenderReportPacket

  • If given view does not contain a valid RTCP Sender Report packet.
-

Methods

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -86,72 +86,72 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns SenderReportPacket

      +

Returns SenderReportPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -159,14 +159,14 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.Serializable.html b/docs/classes/packets.Serializable.html index ec75c14..9ce27ce 100644 --- a/docs/classes/packets.Serializable.html +++ b/docs/classes/packets.Serializable.html @@ -1,12 +1,12 @@ -Serializable | rtp.js - v0.13.1

Class SerializableAbstract

Class holding a serializable buffer view. All RTP and RTCP packets inherit +Serializable | rtp.js - v0.13.1

Class SerializableAbstract

Class holding a serializable buffer view. All RTP and RTCP packets inherit from this class, and also items in some RTCP packets.

-

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -18,53 +18,53 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      +

Returns Serializable

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      +
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view +

  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into +

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -72,4 +72,4 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.SliPacket.html b/docs/classes/packets.SliPacket.html index a53e500..7d66702 100644 --- a/docs/classes/packets.SliPacket.html +++ b/docs/classes/packets.SliPacket.html @@ -1,4 +1,4 @@ -SliPacket | rtp.js - v0.13.1

Class SliPacket

RTCP SLI packet (RTCP Payload Specific Feedback).

+SliPacket | rtp.js - v0.13.1

Class SliPacket

RTCP SLI packet (RTCP Payload Specific Feedback).

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -14,38 +14,38 @@
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP SLI +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP SLI packet will be created.

      -

    Returns SliPacket

      +

Returns SliPacket

  • If given view does not contain a valid RTCP SLI packet.
-

Methods

  • Add SLI item value.

    -

    Parameters

    • first: number
    • number: number
    • pictureId: number

    Returns void

      +

Methods

  • Add SLI item value.

    +

    Parameters

    • first: number
    • number: number
    • pictureId: number

    Returns void

    • Serialization is needed after calling this method.
    -
  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -57,69 +57,69 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns SliPacket

      +

Returns SliPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get SLI items.

    -

    Returns { first: number; number: number; pictureId: number }[]

  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get SLI items.

    +

    Returns { first: number; number: number; pictureId: number }[]

  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -127,10 +127,10 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
  • Set SLI items.

    +

    Parameters

    • items: { first: number; number: number; pictureId: number }[]

    Returns void

    • Serialization is needed after calling this method.
    -
+
diff --git a/docs/classes/packets.SrReqPacket.html b/docs/classes/packets.SrReqPacket.html index 40957bb..9cb3e03 100644 --- a/docs/classes/packets.SrReqPacket.html +++ b/docs/classes/packets.SrReqPacket.html @@ -1,4 +1,4 @@ -SrReqPacket | rtp.js - v0.13.1

Class SrReqPacket

RTCP SR REQ packet (RTCP Transport Layer Feedback).

+SrReqPacket | rtp.js - v0.13.1

Class SrReqPacket

RTCP SR REQ packet (RTCP Transport Layer Feedback).

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -10,31 +10,31 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-
    +
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP SR REQ +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP SR REQ packet will be created.

      -

    Returns SrReqPacket

      +

Returns SrReqPacket

  • If given view does not contain a valid RTCP SR REQ packet.
-

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -46,68 +46,68 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns SrReqPacket

      +

Returns SrReqPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -115,6 +115,6 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.SsExtendedReport.html b/docs/classes/packets.SsExtendedReport.html index 2993aed..511de0d 100644 --- a/docs/classes/packets.SsExtendedReport.html +++ b/docs/classes/packets.SsExtendedReport.html @@ -1,4 +1,4 @@ -SsExtendedReport | rtp.js - v0.13.1

Class SsExtendedReport

Statistics Summary Extended Report.

+SsExtendedReport | rtp.js - v0.13.1

Class SsExtendedReport

Statistics Summary Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -24,46 +24,46 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty Statistics +

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Returns SsExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -75,97 +75,97 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns SsExtendedReport

      +

Returns SsExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -173,17 +173,17 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.VmExtendedReport.html b/docs/classes/packets.VmExtendedReport.html index 0bc37b3..e8ba466 100644 --- a/docs/classes/packets.VmExtendedReport.html +++ b/docs/classes/packets.VmExtendedReport.html @@ -1,4 +1,4 @@ -VmExtendedReport | rtp.js - v0.13.1

Class VmExtendedReport

VoIP Metrics Extended Report.

+VmExtendedReport | rtp.js - v0.13.1

Class VmExtendedReport

VoIP Metrics Extended Report.

 0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -22,66 +22,66 @@
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty VoIP Metrics +

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

Returns VmExtendedReport

Methods

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -93,77 +93,77 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns VmExtendedReport

      +

Returns VmExtendedReport

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -171,27 +171,27 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/classes/packets.XrPacket.html b/docs/classes/packets.XrPacket.html index 17ad72b..3e971c1 100644 --- a/docs/classes/packets.XrPacket.html +++ b/docs/classes/packets.XrPacket.html @@ -1,4 +1,4 @@ -XrPacket | rtp.js - v0.13.1

Class XrPacket

RTCP XR packet.

+XrPacket | rtp.js - v0.13.1

Class XrPacket

RTCP XR packet.

        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -10,35 +10,35 @@
 blocks +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView

      If given it will be parsed. Otherwise an empty RTCP XR packet +

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP XR packet will be created.

      -

    Returns XrPacket

      +

Returns XrPacket

  • If given view does not contain a valid RTCP XR packet.
-

Methods

Methods

  • Clone the packet or item. The cloned instance does not share any memory +

  • Clone the packet or item. The cloned instance does not share any memory with the original one. The cloned instance is a new class instance referencing a different buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a @@ -50,76 +50,76 @@ allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns XrPacket

      +

Returns XrPacket

  • The buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If serialization is needed and it fails.
  • If given buffer doesn't have space enough to clone the content.
  • If given serializationBuffer doesn't have space enough to serialize the content.
-
  • Computes total length of the content (in bytes) including padding if any.

    +

    Returns number

    • This methods computes the effective byte length of the content as if it was serialized at this moment, no matter modifications have been done before.
    -
  • Get the RTCP header count value.

    +

    Returns number

    • Some RTCP packets do not use this byte (the second one in the common RTCP header) for counting chunks or items.
    -
  • Get Extended Reports.

    +

    Returns ExtendedReport[]

    -
    import { packets } from 'rtp.js';
    const { XrPacket, ExtendedReportType, LrleExtendedReport } = packets;

    const packet = new XrPacket(view);

    for (const extendedReport of packet.getReports())
    {
    switch (extendedReport.getReportType())
    {
    case ExtendedReportType.LRLE:
    {
    const lrleExtendedReport = extendedReport as LrleExtendedReport;

    console.log(lrleExtendedReport.getThinning());

    break;
    }

    // etc.
    }
    } +
    import { packets } from 'rtp.js';
    const { XrPacket, ExtendedReportType, LrleExtendedReport } = packets;

    const packet = new XrPacket(view);

    for (const extendedReport of packet.getReports())
    {
    switch (extendedReport.getReportType())
    {
    case ExtendedReportType.LRLE:
    {
    const lrleExtendedReport = extendedReport as LrleExtendedReport;

    console.log(lrleExtendedReport.getThinning());

    break;
    }

    // etc.
    }
    }
    -
  • Get a buffer view containing the serialized content of the packet or item.

    +
  • Get a buffer view containing the serialized content of the packet or item.

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized in case serialization is needed. If not given, a new one will internally allocated.

    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer where serialization (if needed) will start.

      -

    Returns DataView

      +

Returns DataView

  • The internal buffer is serialized if needed (to apply pending modifications) by internally calling serialize.
-
    +
  • If buffer serialization is needed and it fails due to invalid content.
-
  • Whether serialization is needed, meaning that the current buffer view doesn't represent the current content of the packet or item (due to modifications not applied yet). Calling serialize or getView will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add or remove bytes of padding.

    -

    Returns void

      +

    Returns void

    • Serialization maybe needed after calling this method.
    -
  • Apply pending changes and serialize the content of the packet or item into a new buffer.

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not given, a new one will internally allocated.

    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization will start.

      -

    Returns void

      +

Returns void

  • In most cases there is no need to use this method since many setter methods apply changes within the current buffer. To be sure, check needsSerialization before.
-
    +
  • If serialization fails due to invalid content previously added.
  • If given buffer doesn't have space enough to serialize the content.
  • If the buffer member of the given ArrayBuffer is the same than the @@ -127,9 +127,9 @@ the serialization happen in bytes currently used by the packet (this would corrupt the packet).
-
+
diff --git a/docs/documents/README.html b/docs/documents/README.html index d1c1158..89da209 100644 --- a/docs/documents/README.html +++ b/docs/documents/README.html @@ -1,10 +1,10 @@ -README | rtp.js - v0.13.1

rtp.js

+README | rtp.js - v0.13.1

rtp.js

RTP stack for Node.js and browser written in TypeScript. rtp.js provides with an API to parse, generate and modify RTP and RTCP packets.

-
npm install rtp.js
+
npm install rtp.js
 
-
+

ISC

+
diff --git a/docs/enums/packets.ExtendedReportType.html b/docs/enums/packets.ExtendedReportType.html index e4637b4..73c9ab2 100644 --- a/docs/enums/packets.ExtendedReportType.html +++ b/docs/enums/packets.ExtendedReportType.html @@ -1,18 +1,18 @@ -ExtendedReportType | rtp.js - v0.13.1

Enumeration ExtendedReportType

Extended Report types.

-

Enumeration Members

Enumeration Members

DLRR: 5

DLRR Report.

-
DRLE: 2

Duplicate RLE Report.

-
ECN: 13

ECN Summary Report.

-
LRLE: 1

Loss RLE Report.

-
PRT: 3

Packet Receipt Times Report.

-
RRT: 4

Receiver Reference Time Report.

-
SS: 6

Statistics Summary Report.

-
VM: 7

VoIP Metrics Report.

-
+ExtendedReportType | rtp.js - v0.13.1

Enumeration ExtendedReportType

Extended Report types.

+

Enumeration Members

Enumeration Members

DLRR: 5

DLRR Report.

+
DRLE: 2

Duplicate RLE Report.

+
ECN: 13

ECN Summary Report.

+
LRLE: 1

Loss RLE Report.

+
PRT: 3

Packet Receipt Times Report.

+
RRT: 4

Receiver Reference Time Report.

+
SS: 6

Statistics Summary Report.

+
VM: 7

VoIP Metrics Report.

+
diff --git a/docs/enums/packets.PsFeedbackMessageType.html b/docs/enums/packets.PsFeedbackMessageType.html index 1f396ed..c1303c8 100644 --- a/docs/enums/packets.PsFeedbackMessageType.html +++ b/docs/enums/packets.PsFeedbackMessageType.html @@ -1,10 +1,10 @@ -PsFeedbackMessageType | rtp.js - v0.13.1

Enumeration PsFeedbackMessageType

RTCP Feedback payload specific message types.

-

Enumeration Members

Enumeration Members

AFB: 15

Application layer FB message.

-
PLI: 1

Picture Loss Indication.

-
RPSI: 3

Reference Picture Selection Indication.

-
SLI: 2

Slice Loss Indication.

-
+PsFeedbackMessageType | rtp.js - v0.13.1

Enumeration PsFeedbackMessageType

RTCP Feedback payload specific message types.

+

Enumeration Members

Enumeration Members

AFB: 15

Application layer FB message.

+
PLI: 1

Picture Loss Indication.

+
RPSI: 3

Reference Picture Selection Indication.

+
SLI: 2

Slice Loss Indication.

+
diff --git a/docs/enums/packets.RtcpPacketType.html b/docs/enums/packets.RtcpPacketType.html index 70a6226..0b82e1f 100644 --- a/docs/enums/packets.RtcpPacketType.html +++ b/docs/enums/packets.RtcpPacketType.html @@ -1,20 +1,20 @@ -RtcpPacketType | rtp.js - v0.13.1

Enumeration RtcpPacketType

RTCP packet types.

-

Enumeration Members

APP -BYE -IJ -PSFB -RR -RTPFB -SDES -SR -XR -

Enumeration Members

APP: 204

RTCP APP packet.

-
BYE: 203

RTCP BYE packet.

-
IJ: 195

Extended Jitter Reports packet.

-
PSFB: 206

RTCP Payload Specific Feedback packet.

-
RR: 201

RTCP Receiver Report packet.

-
RTPFB: 205

RTCP Transport Layer Feedback packet.

-
SDES: 202

RTCP Sender Report packet.

-
SR: 200

RTCP Sender Report packet.

-
XR: 207

RTCP Extended Report packet.

-
+RtcpPacketType | rtp.js - v0.13.1

Enumeration RtcpPacketType

RTCP packet types.

+

Enumeration Members

APP +BYE +IJ +PSFB +RR +RTPFB +SDES +SR +XR +

Enumeration Members

APP: 204

RTCP APP packet.

+
BYE: 203

RTCP BYE packet.

+
IJ: 195

Extended Jitter Reports packet.

+
PSFB: 206

RTCP Payload Specific Feedback packet.

+
RR: 201

RTCP Receiver Report packet.

+
RTPFB: 205

RTCP Transport Layer Feedback packet.

+
SDES: 202

RTCP Sender Report packet.

+
SR: 200

RTCP Sender Report packet.

+
XR: 207

RTCP Extended Report packet.

+
diff --git a/docs/enums/packets.RtpExtensionType.html b/docs/enums/packets.RtpExtensionType.html index f04efe5..34d9eb0 100644 --- a/docs/enums/packets.RtpExtensionType.html +++ b/docs/enums/packets.RtpExtensionType.html @@ -1,50 +1,50 @@ -RtpExtensionType | rtp.js - v0.13.1

Enumeration RtpExtensionType

RTP extensions.

-

Enumeration Members

ABS_SEND_TIME: 3

Absolute Send Time.

+RtpExtensionType | rtp.js - v0.13.1

Enumeration RtpExtensionType

RTP extensions.

+

Enumeration Members

ABS_SEND_TIME: 3

Absolute Send Time.

URI: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

-
MID: 0

Media identification.

+
MID: 0

Media identification.

URI: urn:ietf:params:rtp-hdrext:sdes:mid

-
RTP_REPAIRED_STREAM_ID: 2

RTP Repaired Stream Identifier.

+
RTP_REPAIRED_STREAM_ID: 2

RTP Repaired Stream Identifier.

URI: urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id

-
RTP_STREAM_ID: 1

RTP Stream Identifier.

+
RTP_STREAM_ID: 1

RTP Stream Identifier.

URI: urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id

-
SSRC_AUDIO_LEVEL: 5

Audio Level

+
SSRC_AUDIO_LEVEL: 5

Audio Level

URI: urn:ietf:params:rtp-hdrext:ssrc-audio-level

-
TOFFSET: 7

Transmission Time Offsets.

+
TOFFSET: 7

Transmission Time Offsets.

URI: urn:ietf:params:rtp-hdrext:toffset

-
TRANSPORT_WIDE_SEQ_NUMBER: 4

Transport-wide Sequence Number.

+
TRANSPORT_WIDE_SEQ_NUMBER: 4

Transport-wide Sequence Number.

URI: http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01

-
VIDEO_ORIENTATION: 6

Video Orientation.

+
VIDEO_ORIENTATION: 6

Video Orientation.

URI: urn:3gpp:video-orientation

-
+
diff --git a/docs/enums/packets.RtpFeedbackMessageType.html b/docs/enums/packets.RtpFeedbackMessageType.html index 087e2d9..9a9697a 100644 --- a/docs/enums/packets.RtpFeedbackMessageType.html +++ b/docs/enums/packets.RtpFeedbackMessageType.html @@ -1,8 +1,8 @@ -RtpFeedbackMessageType | rtp.js - v0.13.1

Enumeration RtpFeedbackMessageType

RTCP Feedback transport layer message types.

-

Enumeration Members

Enumeration Members

ECN: 8

Explicit Congestion Notification (ECN).

-
NACK: 1

Generic NACK.

-
SR_REQ: 5

Rapid Resynchronisation Request.

-
+RtpFeedbackMessageType | rtp.js - v0.13.1

Enumeration RtpFeedbackMessageType

RTCP Feedback transport layer message types.

+

Enumeration Members

Enumeration Members

ECN: 8

Explicit Congestion Notification (ECN).

+
NACK: 1

Generic NACK.

+
SR_REQ: 5

Rapid Resynchronisation Request.

+
diff --git a/docs/enums/packets.SdesItemType.html b/docs/enums/packets.SdesItemType.html index 5b18393..f1fc59d 100644 --- a/docs/enums/packets.SdesItemType.html +++ b/docs/enums/packets.SdesItemType.html @@ -1,18 +1,18 @@ -SdesItemType | rtp.js - v0.13.1

Enumeration SdesItemType

SDES Chunk Item types.

-

Enumeration Members

Enumeration Members

CNAME: 1

Canonical End-Point Identifier SDES Item.

-
EMAIL: 3

Electronic Mail Address SDES Item.

-
LOC: 5

Geographic User Location SDES Item.

-
NAME: 2

User Name SDES Item.

-
NOTE: 7

Notice/Status SDES Item.

-
PHONE: 4

Phone Number SDES Item.

-
PRIV: 8

Private Extensions SDES Item.

-
TOOL: 6

Application or Tool Name SDES Item.

-
+SdesItemType | rtp.js - v0.13.1

Enumeration SdesItemType

SDES Chunk Item types.

+

Enumeration Members

Enumeration Members

CNAME: 1

Canonical End-Point Identifier SDES Item.

+
EMAIL: 3

Electronic Mail Address SDES Item.

+
LOC: 5

Geographic User Location SDES Item.

+
NAME: 2

User Name SDES Item.

+
NOTE: 7

Notice/Status SDES Item.

+
PHONE: 4

Phone Number SDES Item.

+
PRIV: 8

Private Extensions SDES Item.

+
TOOL: 6

Application or Tool Name SDES Item.

+
diff --git a/docs/functions/packets.createExtendedReportBitVectorChunk.html b/docs/functions/packets.createExtendedReportBitVectorChunk.html index c6fb204..3c764a1 100644 --- a/docs/functions/packets.createExtendedReportBitVectorChunk.html +++ b/docs/functions/packets.createExtendedReportBitVectorChunk.html @@ -1,4 +1,4 @@ -createExtendedReportBitVectorChunk | rtp.js - v0.13.1

Function createExtendedReportBitVectorChunk

  • Create a Bit Vector Chunk and return a 2 bytes number representing it.

    +createExtendedReportBitVectorChunk | rtp.js - v0.13.1

    Function createExtendedReportBitVectorChunk

    • Create a Bit Vector Chunk and return a 2 bytes number representing it.

       0                   1
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      @@ -6,7 +6,7 @@
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       
      -

      Parameters

      • bitVector: number

      Returns number

        +

      Parameters

      • bitVector: number

      Returns number

    +
diff --git a/docs/functions/packets.createExtendedReportRunLengthChunk.html b/docs/functions/packets.createExtendedReportRunLengthChunk.html index 4f13472..34ff368 100644 --- a/docs/functions/packets.createExtendedReportRunLengthChunk.html +++ b/docs/functions/packets.createExtendedReportRunLengthChunk.html @@ -1,4 +1,4 @@ -createExtendedReportRunLengthChunk | rtp.js - v0.13.1

Function createExtendedReportRunLengthChunk

  • Create a Run Length Chunk and return a 2 bytes number representing it.

    +createExtendedReportRunLengthChunk | rtp.js - v0.13.1

    Function createExtendedReportRunLengthChunk

    • Create a Run Length Chunk and return a 2 bytes number representing it.

       0                   1
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      @@ -6,7 +6,7 @@
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       
      -

      Parameters

      • runType: "zeros" | "ones"
      • runLength: number

      Returns number

        +

      Parameters

      • runType: "zeros" | "ones"
      • runLength: number

      Returns number

    +
diff --git a/docs/functions/packets.createNackItem.html b/docs/functions/packets.createNackItem.html index d52be0e..928568c 100644 --- a/docs/functions/packets.createNackItem.html +++ b/docs/functions/packets.createNackItem.html @@ -1,5 +1,5 @@ -createNackItem | rtp.js - v0.13.1

Function createNackItem

  • Create a NACK item.

    +createNackItem | rtp.js - v0.13.1

    Function createNackItem

    • Create a NACK item.

      Parameters

      • seqs: number[]

        RTP sequence number of lost packets. As per NACK rules, there can be up to 17 seq numbers and max diff between lowest and highest must be 17.

        -

      Returns { bitmask: number; pid: number }

    +

Returns { bitmask: number; pid: number }

diff --git a/docs/functions/packets.isRtcp.html b/docs/functions/packets.isRtcp.html index 9f4f859..fffe2e6 100644 --- a/docs/functions/packets.isRtcp.html +++ b/docs/functions/packets.isRtcp.html @@ -1,2 +1,2 @@ -isRtcp | rtp.js - v0.13.1

Function isRtcp

  • Whether the given buffer view could be a valid RTCP packet or not.

    -

    Parameters

    • view: DataView

    Returns boolean

+isRtcp | rtp.js - v0.13.1

Function isRtcp

  • Whether the given buffer view could be a valid RTCP packet or not.

    +

    Parameters

    • view: DataView

    Returns boolean

diff --git a/docs/functions/packets.isRtp.html b/docs/functions/packets.isRtp.html index b3e66b4..866c476 100644 --- a/docs/functions/packets.isRtp.html +++ b/docs/functions/packets.isRtp.html @@ -1,2 +1,2 @@ -isRtp | rtp.js - v0.13.1

Function isRtp

  • Whether the given buffer view could be a valid RTP packet or not.

    -

    Parameters

    • view: DataView

    Returns boolean

+isRtp | rtp.js - v0.13.1

Function isRtp

  • Whether the given buffer view could be a valid RTP packet or not.

    +

    Parameters

    • view: DataView

    Returns boolean

diff --git a/docs/functions/packets.parseExtendedReportChunk.html b/docs/functions/packets.parseExtendedReportChunk.html index 5c46478..a269022 100644 --- a/docs/functions/packets.parseExtendedReportChunk.html +++ b/docs/functions/packets.parseExtendedReportChunk.html @@ -1,5 +1,5 @@ -parseExtendedReportChunk | rtp.js - v0.13.1

Function parseExtendedReportChunk

diff --git a/docs/functions/packets.parseNackItem.html b/docs/functions/packets.parseNackItem.html index afaa886..41c8199 100644 --- a/docs/functions/packets.parseNackItem.html +++ b/docs/functions/packets.parseNackItem.html @@ -1,3 +1,3 @@ -parseNackItem | rtp.js - v0.13.1

Function parseNackItem

  • Parse a NACK item. It returns an array with RTP sequence numbers that are +parseNackItem | rtp.js - v0.13.1

    Function parseNackItem

    • Parse a NACK item. It returns an array with RTP sequence numbers that are included in the item (lost packets).

      -

      Parameters

      • pid: number
      • bitmask: number

      Returns number[]

    +

    Parameters

    • pid: number
    • bitmask: number

    Returns number[]

diff --git a/docs/functions/packets.rtpExtensionUriToType.html b/docs/functions/packets.rtpExtensionUriToType.html index 8642dbf..3287f87 100644 --- a/docs/functions/packets.rtpExtensionUriToType.html +++ b/docs/functions/packets.rtpExtensionUriToType.html @@ -1,2 +1,2 @@ -rtpExtensionUriToType | rtp.js - v0.13.1

Function rtpExtensionUriToType

+rtpExtensionUriToType | rtp.js - v0.13.1

Function rtpExtensionUriToType

diff --git a/docs/functions/packets.timeMsToAbsSendTime.html b/docs/functions/packets.timeMsToAbsSendTime.html index 1207f0a..377f146 100644 --- a/docs/functions/packets.timeMsToAbsSendTime.html +++ b/docs/functions/packets.timeMsToAbsSendTime.html @@ -1,5 +1,5 @@ -timeMsToAbsSendTime | rtp.js - v0.13.1

Function timeMsToAbsSendTime

  • Convert Unix epoch timestamp in milliseconds to "Absolute Send Time" format.

    -

    Parameters

    • timeMs: number

    Returns number

      +timeMsToAbsSendTime | rtp.js - v0.13.1

      Function timeMsToAbsSendTime

      +
diff --git a/docs/functions/utils.arrayBufferToNodeBuffer.html b/docs/functions/utils.arrayBufferToNodeBuffer.html index e729e1e..2b77361 100644 --- a/docs/functions/utils.arrayBufferToNodeBuffer.html +++ b/docs/functions/utils.arrayBufferToNodeBuffer.html @@ -1,5 +1,5 @@ -arrayBufferToNodeBuffer | rtp.js - v0.13.1

Function arrayBufferToNodeBuffer

  • Convert ArrayBuffer to Node.js Buffer.

    -

    Parameters

    • arrayBuffer: ArrayBuffer

    Returns Buffer

      +arrayBufferToNodeBuffer | rtp.js - v0.13.1

      Function arrayBufferToNodeBuffer

      • Convert ArrayBuffer to Node.js Buffer.

        +

        Parameters

        • arrayBuffer: ArrayBuffer

        Returns Buffer

        • Just for Node.js.
        -
      +
diff --git a/docs/functions/utils.arrayBufferToString.html b/docs/functions/utils.arrayBufferToString.html index d82a9b6..a4b1353 100644 --- a/docs/functions/utils.arrayBufferToString.html +++ b/docs/functions/utils.arrayBufferToString.html @@ -1,2 +1,2 @@ -arrayBufferToString | rtp.js - v0.13.1

Function arrayBufferToString

  • Convert ArrayBuffer to string.

    -

    Parameters

    • arrayBuffer: ArrayBuffer

    Returns string

+arrayBufferToString | rtp.js - v0.13.1

Function arrayBufferToString

  • Convert ArrayBuffer to string.

    +

    Parameters

    • arrayBuffer: ArrayBuffer

    Returns string

diff --git a/docs/functions/utils.dataViewToNodeBuffer.html b/docs/functions/utils.dataViewToNodeBuffer.html index 5a301c3..59d88af 100644 --- a/docs/functions/utils.dataViewToNodeBuffer.html +++ b/docs/functions/utils.dataViewToNodeBuffer.html @@ -1,5 +1,5 @@ -dataViewToNodeBuffer | rtp.js - v0.13.1

Function dataViewToNodeBuffer

  • Convert DataView to Node.js Buffer using the same underlying ArrayBuffer.

    -

    Parameters

    • view: DataView

    Returns Buffer

      +dataViewToNodeBuffer | rtp.js - v0.13.1

      Function dataViewToNodeBuffer

      • Convert DataView to Node.js Buffer using the same underlying ArrayBuffer.

        +

        Parameters

        • view: DataView

        Returns Buffer

        • Just for Node.js.
        -
      +
diff --git a/docs/functions/utils.dataViewToString.html b/docs/functions/utils.dataViewToString.html index 9ff1ea9..fe75641 100644 --- a/docs/functions/utils.dataViewToString.html +++ b/docs/functions/utils.dataViewToString.html @@ -1,2 +1,2 @@ -dataViewToString | rtp.js - v0.13.1

Function dataViewToString

  • Convert DataView to string.

    -

    Parameters

    • view: DataView

    Returns string

+dataViewToString | rtp.js - v0.13.1

Function dataViewToString

  • Convert DataView to string.

    +

    Parameters

    • view: DataView

    Returns string

diff --git a/docs/functions/utils.getStringByteLength.html b/docs/functions/utils.getStringByteLength.html index 819e467..cf62101 100644 --- a/docs/functions/utils.getStringByteLength.html +++ b/docs/functions/utils.getStringByteLength.html @@ -1,2 +1,2 @@ -getStringByteLength | rtp.js - v0.13.1

Function getStringByteLength

  • Get the byte length of a string.

    -

    Parameters

    • string: string

    Returns number

+getStringByteLength | rtp.js - v0.13.1

Function getStringByteLength

  • Get the byte length of a string.

    +

    Parameters

    • string: string

    Returns number

diff --git a/docs/functions/utils.nodeBufferToArrayBuffer.html b/docs/functions/utils.nodeBufferToArrayBuffer.html index 24933fd..4d8c29a 100644 --- a/docs/functions/utils.nodeBufferToArrayBuffer.html +++ b/docs/functions/utils.nodeBufferToArrayBuffer.html @@ -1,5 +1,5 @@ -nodeBufferToArrayBuffer | rtp.js - v0.13.1

Function nodeBufferToArrayBuffer

  • Convert Node.js Buffer to a new allocated ArrayBuffer.

    -

    Parameters

    • nodeBuffer: Buffer

    Returns ArrayBuffer

      +nodeBufferToArrayBuffer | rtp.js - v0.13.1

      Function nodeBufferToArrayBuffer

      • Convert Node.js Buffer to a new allocated ArrayBuffer.

        +

        Parameters

        • nodeBuffer: Buffer

        Returns ArrayBuffer

        • Just for Node.js.
        -
      +
diff --git a/docs/functions/utils.nodeBufferToDataView.html b/docs/functions/utils.nodeBufferToDataView.html index aa8e6ed..efb4b18 100644 --- a/docs/functions/utils.nodeBufferToDataView.html +++ b/docs/functions/utils.nodeBufferToDataView.html @@ -1,5 +1,5 @@ -nodeBufferToDataView | rtp.js - v0.13.1

Function nodeBufferToDataView

  • Convert Node.js Buffer to DataView using the same underlying ArrayBuffer.

    -

    Parameters

    • nodeBuffer: Buffer

    Returns DataView

      +nodeBufferToDataView | rtp.js - v0.13.1

      Function nodeBufferToDataView

      • Convert Node.js Buffer to DataView using the same underlying ArrayBuffer.

        +

        Parameters

        • nodeBuffer: Buffer

        Returns DataView

        • Just for Node.js.
        -
      +
diff --git a/docs/functions/utils.numberToDataView.html b/docs/functions/utils.numberToDataView.html index 6612ce1..0942d01 100644 --- a/docs/functions/utils.numberToDataView.html +++ b/docs/functions/utils.numberToDataView.html @@ -1,2 +1,2 @@ -numberToDataView | rtp.js - v0.13.1

Function numberToDataView

  • Convert number to DataView.

    -

    Parameters

    • number: number

    Returns DataView

+numberToDataView | rtp.js - v0.13.1

Function numberToDataView

  • Convert number to DataView.

    +

    Parameters

    • number: number

    Returns DataView

diff --git a/docs/functions/utils.numericArrayToDataView.html b/docs/functions/utils.numericArrayToDataView.html index 464e954..fddb3d2 100644 --- a/docs/functions/utils.numericArrayToDataView.html +++ b/docs/functions/utils.numericArrayToDataView.html @@ -1,2 +1,2 @@ -numericArrayToDataView | rtp.js - v0.13.1

Function numericArrayToDataView

  • Convert array of integers to DataView.

    -

    Parameters

    • array: number[]

    Returns DataView

+numericArrayToDataView | rtp.js - v0.13.1

Function numericArrayToDataView

  • Convert array of integers to DataView.

    +

    Parameters

    • array: number[]

    Returns DataView

diff --git a/docs/functions/utils.padTo4Bytes.html b/docs/functions/utils.padTo4Bytes.html index 9bf8395..21b032c 100644 --- a/docs/functions/utils.padTo4Bytes.html +++ b/docs/functions/utils.padTo4Bytes.html @@ -1,2 +1,2 @@ -padTo4Bytes | rtp.js - v0.13.1

Function padTo4Bytes

  • Returns the given size padded to 4 bytes.

    -

    Parameters

    • size: number

    Returns number

+padTo4Bytes | rtp.js - v0.13.1

Function padTo4Bytes

  • Returns the given size padded to 4 bytes.

    +

    Parameters

    • size: number

    Returns number

diff --git a/docs/functions/utils.stringToDataView.html b/docs/functions/utils.stringToDataView.html index 20c03a1..c27f4ab 100644 --- a/docs/functions/utils.stringToDataView.html +++ b/docs/functions/utils.stringToDataView.html @@ -1,2 +1,2 @@ -stringToDataView | rtp.js - v0.13.1

Function stringToDataView

  • Convert string to DataView.

    -

    Parameters

    • string: string

    Returns DataView

+stringToDataView | rtp.js - v0.13.1

Function stringToDataView

  • Convert string to DataView.

    +

    Parameters

    • string: string

    Returns DataView

diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 8a6c308..621bf80 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -rtp.js - v0.13.1
+rtp.js - v0.13.1
diff --git a/docs/index.html b/docs/index.html index add36fb..c5c9ffb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,10 +1,10 @@ -rtp.js - v0.13.1

rtp.js - v0.13.1

rtp.js

+rtp.js - v0.13.1

rtp.js - v0.13.1

rtp.js

RTP stack for Node.js and browser written in TypeScript. rtp.js provides with an API to parse, generate and modify RTP and RTCP packets.

-
npm install rtp.js
+
npm install rtp.js
 
-
+

ISC

+
diff --git a/docs/modules.html b/docs/modules.html index 8a55549..21699ce 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1 +1 @@ -rtp.js - v0.13.1

rtp.js - v0.13.1

Documents

README

Modules

packets
utils
+rtp.js - v0.13.1

rtp.js - v0.13.1

Documents

README

Modules

packets
utils
diff --git a/docs/modules/packets.html b/docs/modules/packets.html index 691d8c1..9c03dad 100644 --- a/docs/modules/packets.html +++ b/docs/modules/packets.html @@ -1 +1 @@ -packets | rtp.js - v0.13.1
+packets | rtp.js - v0.13.1
diff --git a/docs/modules/utils.html b/docs/modules/utils.html index f519e34..522a3fe 100644 --- a/docs/modules/utils.html +++ b/docs/modules/utils.html @@ -1 +1 @@ -utils | rtp.js - v0.13.1
+utils | rtp.js - v0.13.1
diff --git a/docs/types/packets.ByePacketDump.html b/docs/types/packets.ByePacketDump.html index 4f526a6..b533e04 100644 --- a/docs/types/packets.ByePacketDump.html +++ b/docs/types/packets.ByePacketDump.html @@ -1,2 +1,2 @@ -ByePacketDump | rtp.js - v0.13.1

Type Alias ByePacketDump

ByePacketDump: RtcpPacketDump & { reason?: string; ssrcs: number[] }

RTCP BYE packet info dump.

-
+ByePacketDump | rtp.js - v0.13.1

Type Alias ByePacketDump

ByePacketDump: RtcpPacketDump & { reason?: string; ssrcs: number[] }

RTCP BYE packet info dump.

+
diff --git a/docs/types/packets.CompoundPacketDump.html b/docs/types/packets.CompoundPacketDump.html index 80b97c8..fe4a843 100644 --- a/docs/types/packets.CompoundPacketDump.html +++ b/docs/types/packets.CompoundPacketDump.html @@ -1,2 +1,2 @@ -CompoundPacketDump | rtp.js - v0.13.1

Type Alias CompoundPacketDump

CompoundPacketDump: PacketDump & { packets: RtcpPacketDump[] }

RTCP Compound packet info dump.

-
+CompoundPacketDump | rtp.js - v0.13.1

Type Alias CompoundPacketDump

CompoundPacketDump: PacketDump & { packets: RtcpPacketDump[] }

RTCP Compound packet info dump.

+
diff --git a/docs/types/packets.DlrrExtendedReportDump.html b/docs/types/packets.DlrrExtendedReportDump.html index 8aff13c..6a02b90 100644 --- a/docs/types/packets.DlrrExtendedReportDump.html +++ b/docs/types/packets.DlrrExtendedReportDump.html @@ -1,2 +1,2 @@ -DlrrExtendedReportDump | rtp.js - v0.13.1

Type Alias DlrrExtendedReportDump

DlrrExtendedReportDump: ExtendedReportDump & { subReports: DlrrSubReport[] }

DLRR Extended Report dump.

-
+DlrrExtendedReportDump | rtp.js - v0.13.1

Type Alias DlrrExtendedReportDump

DlrrExtendedReportDump: ExtendedReportDump & { subReports: DlrrSubReport[] }

DLRR Extended Report dump.

+
diff --git a/docs/types/packets.DlrrSubReport.html b/docs/types/packets.DlrrSubReport.html index 74ef2d0..c2e4b4a 100644 --- a/docs/types/packets.DlrrSubReport.html +++ b/docs/types/packets.DlrrSubReport.html @@ -1,5 +1,5 @@ -DlrrSubReport | rtp.js - v0.13.1

Type Alias DlrrSubReport

DlrrSubReport: { dlrr: number; lrr: number; ssrc: number }

DLRR Sub-Report.

+DlrrSubReport | rtp.js - v0.13.1

Type Alias DlrrSubReport

DlrrSubReport: { dlrr: number; lrr: number; ssrc: number }

DLRR Sub-Report.

Type declaration

  • dlrr: number

    Delay since last RR.

  • lrr: number

    Last RR timestamp.

  • ssrc: number

    SSRC of receiver.

    -
+
diff --git a/docs/types/packets.DrleExtendedReportDump.html b/docs/types/packets.DrleExtendedReportDump.html index a1fdb40..a1608bc 100644 --- a/docs/types/packets.DrleExtendedReportDump.html +++ b/docs/types/packets.DrleExtendedReportDump.html @@ -1,2 +1,2 @@ -DrleExtendedReportDump | rtp.js - v0.13.1

Type Alias DrleExtendedReportDump

DrleExtendedReportDump: ExtendedReportDump & {
Ā Ā Ā Ā beginSeq: number;
Ā Ā Ā Ā chunks: number[];
Ā Ā Ā Ā endSeq: number;
Ā Ā Ā Ā ssrc: number;
Ā Ā Ā Ā thinning: number;
}

Duplicate RLE Extended Report dump.

-
+DrleExtendedReportDump | rtp.js - v0.13.1

Type Alias DrleExtendedReportDump

DrleExtendedReportDump: ExtendedReportDump & {
Ā Ā Ā Ā beginSeq: number;
Ā Ā Ā Ā chunks: number[];
Ā Ā Ā Ā endSeq: number;
Ā Ā Ā Ā ssrc: number;
Ā Ā Ā Ā thinning: number;
}

Duplicate RLE Extended Report dump.

+
diff --git a/docs/types/packets.EcnExtendedReportDump.html b/docs/types/packets.EcnExtendedReportDump.html index ae42f72..761109e 100644 --- a/docs/types/packets.EcnExtendedReportDump.html +++ b/docs/types/packets.EcnExtendedReportDump.html @@ -1,2 +1,2 @@ -EcnExtendedReportDump | rtp.js - v0.13.1

Type Alias EcnExtendedReportDump

EcnExtendedReportDump: ExtendedReportDump & {
Ā Ā Ā Ā duplicationCounter: number;
Ā Ā Ā Ā ecnCeCounter: number;
Ā Ā Ā Ā ect0Counter: number;
Ā Ā Ā Ā ect1Counter: number;
Ā Ā Ā Ā lostPacketsCounter: number;
Ā Ā Ā Ā nonEctCounter: number;
Ā Ā Ā Ā ssrc: number;
}

ECN Summary Extended Report dump.

-
+EcnExtendedReportDump | rtp.js - v0.13.1

Type Alias EcnExtendedReportDump

EcnExtendedReportDump: ExtendedReportDump & {
Ā Ā Ā Ā duplicationCounter: number;
Ā Ā Ā Ā ecnCeCounter: number;
Ā Ā Ā Ā ect0Counter: number;
Ā Ā Ā Ā ect1Counter: number;
Ā Ā Ā Ā lostPacketsCounter: number;
Ā Ā Ā Ā nonEctCounter: number;
Ā Ā Ā Ā ssrc: number;
}

ECN Summary Extended Report dump.

+
diff --git a/docs/types/packets.EcnPacketDump.html b/docs/types/packets.EcnPacketDump.html index 03d1680..8aea125 100644 --- a/docs/types/packets.EcnPacketDump.html +++ b/docs/types/packets.EcnPacketDump.html @@ -1,2 +1,2 @@ -EcnPacketDump | rtp.js - v0.13.1

Type Alias EcnPacketDump

EcnPacketDump: FeedbackPacketDump & {
Ā Ā Ā Ā duplicationCounter: number;
Ā Ā Ā Ā ecnCeCounter: number;
Ā Ā Ā Ā ect0Counter: number;
Ā Ā Ā Ā ect1Counter: number;
Ā Ā Ā Ā extendedHighestSequenceNumber: number;
Ā Ā Ā Ā lostPacketsCounter: number;
Ā Ā Ā Ā nonEctCounter: number;
}

RTCP ECN packet info dump.

-
+EcnPacketDump | rtp.js - v0.13.1

Type Alias EcnPacketDump

EcnPacketDump: FeedbackPacketDump & {
Ā Ā Ā Ā duplicationCounter: number;
Ā Ā Ā Ā ecnCeCounter: number;
Ā Ā Ā Ā ect0Counter: number;
Ā Ā Ā Ā ect1Counter: number;
Ā Ā Ā Ā extendedHighestSequenceNumber: number;
Ā Ā Ā Ā lostPacketsCounter: number;
Ā Ā Ā Ā nonEctCounter: number;
}

RTCP ECN packet info dump.

+
diff --git a/docs/types/packets.ExtendedJitterReportsPacketDump.html b/docs/types/packets.ExtendedJitterReportsPacketDump.html index 954f6ae..dee2152 100644 --- a/docs/types/packets.ExtendedJitterReportsPacketDump.html +++ b/docs/types/packets.ExtendedJitterReportsPacketDump.html @@ -1,2 +1,2 @@ -ExtendedJitterReportsPacketDump | rtp.js - v0.13.1

Type Alias ExtendedJitterReportsPacketDump

ExtendedJitterReportsPacketDump: RtcpPacketDump & { jitters: number[] }

RTCP Extended Jitter Reports packet info dump.

-
+ExtendedJitterReportsPacketDump | rtp.js - v0.13.1

Type Alias ExtendedJitterReportsPacketDump

ExtendedJitterReportsPacketDump: RtcpPacketDump & { jitters: number[] }

RTCP Extended Jitter Reports packet info dump.

+
diff --git a/docs/types/packets.ExtendedReportChunk.html b/docs/types/packets.ExtendedReportChunk.html index 9c11010..5b90821 100644 --- a/docs/types/packets.ExtendedReportChunk.html +++ b/docs/types/packets.ExtendedReportChunk.html @@ -1,4 +1,4 @@ -ExtendedReportChunk | rtp.js - v0.13.1

Type Alias ExtendedReportChunk

ExtendedReportChunk: {
Ā Ā Ā Ā bitVector?: number;
Ā Ā Ā Ā chunkType: "run-length" | "bit-vector" | "terminating-null";
Ā Ā Ā Ā runLength?: number;
Ā Ā Ā Ā runType?: "zeros" | "ones";
}

Loss RLE and Duplicate RLE Extended Report chunk info.

+ExtendedReportChunk | rtp.js - v0.13.1

Type Alias ExtendedReportChunk

ExtendedReportChunk: {
Ā Ā Ā Ā bitVector?: number;
Ā Ā Ā Ā chunkType: "run-length" | "bit-vector" | "terminating-null";
Ā Ā Ā Ā runLength?: number;
Ā Ā Ā Ā runType?: "zeros" | "ones";
}

Loss RLE and Duplicate RLE Extended Report chunk info.

Run Length Chunk
  0                   1
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
@@ -25,7 +25,7 @@
 
  • chunkType: "run-length" | "bit-vector" | "terminating-null"

    Chunk type (Run Length Chunk, Bit Vector Chunk or Terminating Null Chunk).

  • OptionalrunLength?: number

    Chunk run length (only set if chunkType is 'run-length').

  • OptionalrunType?: "zeros" | "ones"

    Chunk run type (only set if chunkType is 'run-length').

    -
    • +
    +
    diff --git a/docs/types/packets.ExtendedReportDump.html b/docs/types/packets.ExtendedReportDump.html index bc86bd8..3e241a2 100644 --- a/docs/types/packets.ExtendedReportDump.html +++ b/docs/types/packets.ExtendedReportDump.html @@ -1,2 +1,2 @@ -ExtendedReportDump | rtp.js - v0.13.1

    Type Alias ExtendedReportDump

    ExtendedReportDump: SerializableDump & { reportType: ExtendedReportType }

    Extended Report dump.

    -
    +ExtendedReportDump | rtp.js - v0.13.1

    Type Alias ExtendedReportDump

    ExtendedReportDump: SerializableDump & { reportType: ExtendedReportType }

    Extended Report dump.

    +
    diff --git a/docs/types/packets.FeedbackPacketDump.html b/docs/types/packets.FeedbackPacketDump.html index dc3969b..70074ea 100644 --- a/docs/types/packets.FeedbackPacketDump.html +++ b/docs/types/packets.FeedbackPacketDump.html @@ -1,2 +1,2 @@ -FeedbackPacketDump | rtp.js - v0.13.1

    Type Alias FeedbackPacketDump

    FeedbackPacketDump: RtcpPacketDump & {
    Ā Ā Ā Ā mediaSsrc: number;
    Ā Ā Ā Ā messageType: RtpFeedbackMessageType | PsFeedbackMessageType;
    Ā Ā Ā Ā senderSsrc: number;
    }

    RTCP Feedback packet info dump.

    -
    +FeedbackPacketDump | rtp.js - v0.13.1

    Type Alias FeedbackPacketDump

    FeedbackPacketDump: RtcpPacketDump & {
    Ā Ā Ā Ā mediaSsrc: number;
    Ā Ā Ā Ā messageType: RtpFeedbackMessageType | PsFeedbackMessageType;
    Ā Ā Ā Ā senderSsrc: number;
    }

    RTCP Feedback packet info dump.

    +
    diff --git a/docs/types/packets.GenericExtendedReportDump.html b/docs/types/packets.GenericExtendedReportDump.html index 143127e..c8bd4c4 100644 --- a/docs/types/packets.GenericExtendedReportDump.html +++ b/docs/types/packets.GenericExtendedReportDump.html @@ -1,2 +1,2 @@ -GenericExtendedReportDump | rtp.js - v0.13.1

    Type Alias GenericExtendedReportDump

    GenericExtendedReportDump: ExtendedReportDump

    Generic Extended Report dump.

    -
    +GenericExtendedReportDump | rtp.js - v0.13.1

    Type Alias GenericExtendedReportDump

    GenericExtendedReportDump: ExtendedReportDump

    Generic Extended Report dump.

    +
    diff --git a/docs/types/packets.GenericFeedbackPacketDump.html b/docs/types/packets.GenericFeedbackPacketDump.html index 98a8681..d46d3d2 100644 --- a/docs/types/packets.GenericFeedbackPacketDump.html +++ b/docs/types/packets.GenericFeedbackPacketDump.html @@ -1,2 +1,2 @@ -GenericFeedbackPacketDump | rtp.js - v0.13.1

    Type Alias GenericFeedbackPacketDump

    GenericFeedbackPacketDump: FeedbackPacketDump & { bodyLength: number }

    RTCP generic Feedback packet info.

    -
    +GenericFeedbackPacketDump | rtp.js - v0.13.1

    Type Alias GenericFeedbackPacketDump

    GenericFeedbackPacketDump: FeedbackPacketDump & { bodyLength: number }

    RTCP generic Feedback packet info.

    +
    diff --git a/docs/types/packets.GenericPacketDump.html b/docs/types/packets.GenericPacketDump.html index 38c98ab..ef9ced7 100644 --- a/docs/types/packets.GenericPacketDump.html +++ b/docs/types/packets.GenericPacketDump.html @@ -1,2 +1,2 @@ -GenericPacketDump | rtp.js - v0.13.1

    Type Alias GenericPacketDump

    GenericPacketDump: RtcpPacketDump & { bodyLength: number }

    RTCP generic packet info dump.

    -
    +GenericPacketDump | rtp.js - v0.13.1

    Type Alias GenericPacketDump

    GenericPacketDump: RtcpPacketDump & { bodyLength: number }

    RTCP generic packet info dump.

    +
    diff --git a/docs/types/packets.LrleExtendedReportDump.html b/docs/types/packets.LrleExtendedReportDump.html index fc42e5b..f2f5592 100644 --- a/docs/types/packets.LrleExtendedReportDump.html +++ b/docs/types/packets.LrleExtendedReportDump.html @@ -1,2 +1,2 @@ -LrleExtendedReportDump | rtp.js - v0.13.1

    Type Alias LrleExtendedReportDump

    LrleExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā beginSeq: number;
    Ā Ā Ā Ā chunks: number[];
    Ā Ā Ā Ā endSeq: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā thinning: number;
    }

    Loss RLE Extended Report dump.

    -
    +LrleExtendedReportDump | rtp.js - v0.13.1

    Type Alias LrleExtendedReportDump

    LrleExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā beginSeq: number;
    Ā Ā Ā Ā chunks: number[];
    Ā Ā Ā Ā endSeq: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā thinning: number;
    }

    Loss RLE Extended Report dump.

    +
    diff --git a/docs/types/packets.NackPacketDump.html b/docs/types/packets.NackPacketDump.html index 3b69a37..8a9451b 100644 --- a/docs/types/packets.NackPacketDump.html +++ b/docs/types/packets.NackPacketDump.html @@ -1,2 +1,2 @@ -NackPacketDump | rtp.js - v0.13.1

    Type Alias NackPacketDump

    NackPacketDump: FeedbackPacketDump & {
    Ā Ā Ā Ā items: { bitmask: number; pid: number }[];
    }

    RTCP NACK packet info dump.

    -
    +NackPacketDump | rtp.js - v0.13.1

    Type Alias NackPacketDump

    NackPacketDump: FeedbackPacketDump & {
    Ā Ā Ā Ā items: { bitmask: number; pid: number }[];
    }

    RTCP NACK packet info dump.

    +
    diff --git a/docs/types/packets.PacketDump.html b/docs/types/packets.PacketDump.html index 697630a..572320f 100644 --- a/docs/types/packets.PacketDump.html +++ b/docs/types/packets.PacketDump.html @@ -1,5 +1,5 @@ -PacketDump | rtp.js - v0.13.1

    Type Alias PacketDump

    PacketDump: SerializableDump & { padding: number }

    Packet info dump.

    -
      +PacketDump | rtp.js - v0.13.1

      Type Alias PacketDump

      PacketDump: SerializableDump & { padding: number }

      Packet info dump.

      +
      • Read the info dump type of each RTP and RTCP packet instead.
      -
      +
    diff --git a/docs/types/packets.PliPacketDump.html b/docs/types/packets.PliPacketDump.html index 42bb2b4..a43fc31 100644 --- a/docs/types/packets.PliPacketDump.html +++ b/docs/types/packets.PliPacketDump.html @@ -1,2 +1,2 @@ -PliPacketDump | rtp.js - v0.13.1

    Type Alias PliPacketDump

    PliPacketDump: FeedbackPacketDump

    RTCP PLI packet info dump.

    -
    +PliPacketDump | rtp.js - v0.13.1

    Type Alias PliPacketDump

    PliPacketDump: FeedbackPacketDump

    RTCP PLI packet info dump.

    +
    diff --git a/docs/types/packets.PrtExtendedReportDump.html b/docs/types/packets.PrtExtendedReportDump.html index c8a86e8..3f5f95d 100644 --- a/docs/types/packets.PrtExtendedReportDump.html +++ b/docs/types/packets.PrtExtendedReportDump.html @@ -1,2 +1,2 @@ -PrtExtendedReportDump | rtp.js - v0.13.1

    Type Alias PrtExtendedReportDump

    PrtExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā beginSeq: number;
    Ā Ā Ā Ā endSeq: number;
    Ā Ā Ā Ā receiptTimes: number[];
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā thinning: number;
    }

    Packet Receipt Times Extended Report dump.

    -
    +PrtExtendedReportDump | rtp.js - v0.13.1

    Type Alias PrtExtendedReportDump

    PrtExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā beginSeq: number;
    Ā Ā Ā Ā endSeq: number;
    Ā Ā Ā Ā receiptTimes: number[];
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā thinning: number;
    }

    Packet Receipt Times Extended Report dump.

    +
    diff --git a/docs/types/packets.ReceiverReportPacketDump.html b/docs/types/packets.ReceiverReportPacketDump.html index 396e75c..6bdea23 100644 --- a/docs/types/packets.ReceiverReportPacketDump.html +++ b/docs/types/packets.ReceiverReportPacketDump.html @@ -1,2 +1,2 @@ -ReceiverReportPacketDump | rtp.js - v0.13.1

    Type Alias ReceiverReportPacketDump

    ReceiverReportPacketDump: RtcpPacketDump & {
    Ā Ā Ā Ā reports: ReceptionReportDump[];
    Ā Ā Ā Ā ssrc: number;
    }

    RTCP Receiver Report packet info dump.

    -
    +ReceiverReportPacketDump | rtp.js - v0.13.1

    Type Alias ReceiverReportPacketDump

    ReceiverReportPacketDump: RtcpPacketDump & {
    Ā Ā Ā Ā reports: ReceptionReportDump[];
    Ā Ā Ā Ā ssrc: number;
    }

    RTCP Receiver Report packet info dump.

    +
    diff --git a/docs/types/packets.ReceptionReportDump.html b/docs/types/packets.ReceptionReportDump.html index b772ea7..f9d19f9 100644 --- a/docs/types/packets.ReceptionReportDump.html +++ b/docs/types/packets.ReceptionReportDump.html @@ -1,2 +1,2 @@ -ReceptionReportDump | rtp.js - v0.13.1

    Type Alias ReceptionReportDump

    ReceptionReportDump: SerializableDump & {
    Ā Ā Ā Ā dlsr: number;
    Ā Ā Ā Ā fractionLost: number;
    Ā Ā Ā Ā highestSeq: number;
    Ā Ā Ā Ā jitter: number;
    Ā Ā Ā Ā lsr: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā totalLost: number;
    }

    Reception Report dump.

    -
    +ReceptionReportDump | rtp.js - v0.13.1

    Type Alias ReceptionReportDump

    ReceptionReportDump: SerializableDump & {
    Ā Ā Ā Ā dlsr: number;
    Ā Ā Ā Ā fractionLost: number;
    Ā Ā Ā Ā highestSeq: number;
    Ā Ā Ā Ā jitter: number;
    Ā Ā Ā Ā lsr: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā totalLost: number;
    }

    Reception Report dump.

    +
    diff --git a/docs/types/packets.RpsiPacketDump.html b/docs/types/packets.RpsiPacketDump.html index 01a6c84..f47c4c8 100644 --- a/docs/types/packets.RpsiPacketDump.html +++ b/docs/types/packets.RpsiPacketDump.html @@ -1,2 +1,2 @@ -RpsiPacketDump | rtp.js - v0.13.1

    Type Alias RpsiPacketDump

    RpsiPacketDump: FeedbackPacketDump & {
    Ā Ā Ā Ā bitStringLength: number;
    Ā Ā Ā Ā paddingBits: number;
    Ā Ā Ā Ā payloadType: number;
    }

    RTCP RPSI packet info dump.

    -
    +RpsiPacketDump | rtp.js - v0.13.1

    Type Alias RpsiPacketDump

    RpsiPacketDump: FeedbackPacketDump & {
    Ā Ā Ā Ā bitStringLength: number;
    Ā Ā Ā Ā paddingBits: number;
    Ā Ā Ā Ā payloadType: number;
    }

    RTCP RPSI packet info dump.

    +
    diff --git a/docs/types/packets.RrtExtendedReportDump.html b/docs/types/packets.RrtExtendedReportDump.html index 7551a48..9a6a061 100644 --- a/docs/types/packets.RrtExtendedReportDump.html +++ b/docs/types/packets.RrtExtendedReportDump.html @@ -1,2 +1,2 @@ -RrtExtendedReportDump | rtp.js - v0.13.1

    Type Alias RrtExtendedReportDump

    RrtExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā ntpFraction: number;
    Ā Ā Ā Ā ntpSeq: number;
    }

    Receiver Reference Time Extended Report dump.

    -
    +RrtExtendedReportDump | rtp.js - v0.13.1

    Type Alias RrtExtendedReportDump

    RrtExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā ntpFraction: number;
    Ā Ā Ā Ā ntpSeq: number;
    }

    Receiver Reference Time Extended Report dump.

    +
    diff --git a/docs/types/packets.RtcpPacketDump.html b/docs/types/packets.RtcpPacketDump.html index 763652f..e73a7f0 100644 --- a/docs/types/packets.RtcpPacketDump.html +++ b/docs/types/packets.RtcpPacketDump.html @@ -1,2 +1,2 @@ -RtcpPacketDump | rtp.js - v0.13.1

    Type Alias RtcpPacketDump

    RtcpPacketDump: PacketDump & { count: number; packetType: RtcpPacketType }

    Base RTCP packet info dump.

    -
    +RtcpPacketDump | rtp.js - v0.13.1

    Type Alias RtcpPacketDump

    RtcpPacketDump: PacketDump & { count: number; packetType: RtcpPacketType }

    Base RTCP packet info dump.

    +
    diff --git a/docs/types/packets.RtpExtensionMapping.html b/docs/types/packets.RtpExtensionMapping.html index 38a0ea5..9e3c073 100644 --- a/docs/types/packets.RtpExtensionMapping.html +++ b/docs/types/packets.RtpExtensionMapping.html @@ -1,5 +1,5 @@ -RtpExtensionMapping | rtp.js - v0.13.1

    Type Alias RtpExtensionMapping

    RtpExtensionMapping: Partial<Record<RtpExtensionType, number>>

    Mapping of RTP extension types and their corresponding RTP extension ids.

    -
    const rtpExtensionMapping: RtpExtensionMapping =
    {
    [RtpExtensionType.MID]: 1,
    [RtpExtensionType.RTP_STREAM_ID]: 3
    +RtpExtensionMapping | rtp.js - v0.13.1

    Type Alias RtpExtensionMapping

    RtpExtensionMapping: Partial<Record<RtpExtensionType, number>>

    Mapping of RTP extension types and their corresponding RTP extension ids.

    +
    const rtpExtensionMapping: RtpExtensionMapping =
    {
    [RtpExtensionType.MID]: 1,
    [RtpExtensionType.RTP_STREAM_ID]: 3
    -
    +
    diff --git a/docs/types/packets.RtpPacketDump.html b/docs/types/packets.RtpPacketDump.html index 7bfe6c2..f9f6091 100644 --- a/docs/types/packets.RtpPacketDump.html +++ b/docs/types/packets.RtpPacketDump.html @@ -1,2 +1,2 @@ -RtpPacketDump | rtp.js - v0.13.1

    Type Alias RtpPacketDump

    RtpPacketDump: PacketDump & {
    Ā Ā Ā Ā absSendTimeExt?: number;
    Ā Ā Ā Ā csrcs: number[];
    Ā Ā Ā Ā extensions: { id: number; length: number }[];
    Ā Ā Ā Ā headerExtensionId?: number;
    Ā Ā Ā Ā marker: boolean;
    Ā Ā Ā Ā midExt?: string;
    Ā Ā Ā Ā payloadLength: number;
    Ā Ā Ā Ā payloadType: number;
    Ā Ā Ā Ā repairedRidExt?: string;
    Ā Ā Ā Ā ridExt?: string;
    Ā Ā Ā Ā sequenceNumber: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā ssrcAudioLevelExt?: SsrcAudioLevelExtension;
    Ā Ā Ā Ā timestamp: number;
    Ā Ā Ā Ā transmissionOffsetExt?: number;
    Ā Ā Ā Ā transportWideSeqNumberExt?: number;
    Ā Ā Ā Ā videoOrientationExt?: VideoOrientationExtension;
    }

    RTP packet info dump.

    -
    +RtpPacketDump | rtp.js - v0.13.1

    Type Alias RtpPacketDump

    RtpPacketDump: PacketDump & {
    Ā Ā Ā Ā absSendTimeExt?: number;
    Ā Ā Ā Ā csrcs: number[];
    Ā Ā Ā Ā extensions: { id: number; length: number }[];
    Ā Ā Ā Ā headerExtensionId?: number;
    Ā Ā Ā Ā marker: boolean;
    Ā Ā Ā Ā midExt?: string;
    Ā Ā Ā Ā payloadLength: number;
    Ā Ā Ā Ā payloadType: number;
    Ā Ā Ā Ā repairedRidExt?: string;
    Ā Ā Ā Ā ridExt?: string;
    Ā Ā Ā Ā sequenceNumber: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā ssrcAudioLevelExt?: SsrcAudioLevelExtension;
    Ā Ā Ā Ā timestamp: number;
    Ā Ā Ā Ā transmissionOffsetExt?: number;
    Ā Ā Ā Ā transportWideSeqNumberExt?: number;
    Ā Ā Ā Ā videoOrientationExt?: VideoOrientationExtension;
    }

    RTP packet info dump.

    +
    diff --git a/docs/types/packets.SdesChunkDump.html b/docs/types/packets.SdesChunkDump.html index b83a71c..628b19f 100644 --- a/docs/types/packets.SdesChunkDump.html +++ b/docs/types/packets.SdesChunkDump.html @@ -1,2 +1,2 @@ -SdesChunkDump | rtp.js - v0.13.1

    Type Alias SdesChunkDump

    SdesChunkDump: SerializableDump & {
    Ā Ā Ā Ā items: { text: string; type: SdesItemType }[];
    Ā Ā Ā Ā ssrc: number;
    }

    SDES Chunk dump.

    -
    +SdesChunkDump | rtp.js - v0.13.1

    Type Alias SdesChunkDump

    SdesChunkDump: SerializableDump & {
    Ā Ā Ā Ā items: { text: string; type: SdesItemType }[];
    Ā Ā Ā Ā ssrc: number;
    }

    SDES Chunk dump.

    +
    diff --git a/docs/types/packets.SdesPacketDump.html b/docs/types/packets.SdesPacketDump.html index b15f828..06f9b30 100644 --- a/docs/types/packets.SdesPacketDump.html +++ b/docs/types/packets.SdesPacketDump.html @@ -1,2 +1,2 @@ -SdesPacketDump | rtp.js - v0.13.1

    Type Alias SdesPacketDump

    SdesPacketDump: RtcpPacketDump & { chunks: SdesChunkDump[] }

    RTCP SDES packet info dump.

    -
    +SdesPacketDump | rtp.js - v0.13.1

    Type Alias SdesPacketDump

    SdesPacketDump: RtcpPacketDump & { chunks: SdesChunkDump[] }

    RTCP SDES packet info dump.

    +
    diff --git a/docs/types/packets.SenderReportPacketDump.html b/docs/types/packets.SenderReportPacketDump.html index de9808a..9ce538f 100644 --- a/docs/types/packets.SenderReportPacketDump.html +++ b/docs/types/packets.SenderReportPacketDump.html @@ -1,2 +1,2 @@ -SenderReportPacketDump | rtp.js - v0.13.1

    Type Alias SenderReportPacketDump

    SenderReportPacketDump: RtcpPacketDump & {
    Ā Ā Ā Ā ntpFraction: number;
    Ā Ā Ā Ā ntpSeq: number;
    Ā Ā Ā Ā octetCount: number;
    Ā Ā Ā Ā packetCount: number;
    Ā Ā Ā Ā reports: ReceptionReportDump[];
    Ā Ā Ā Ā rtpTimestamp: number;
    Ā Ā Ā Ā ssrc: number;
    }

    RTCP Sender Report packet info dump.

    -
    +SenderReportPacketDump | rtp.js - v0.13.1

    Type Alias SenderReportPacketDump

    SenderReportPacketDump: RtcpPacketDump & {
    Ā Ā Ā Ā ntpFraction: number;
    Ā Ā Ā Ā ntpSeq: number;
    Ā Ā Ā Ā octetCount: number;
    Ā Ā Ā Ā packetCount: number;
    Ā Ā Ā Ā reports: ReceptionReportDump[];
    Ā Ā Ā Ā rtpTimestamp: number;
    Ā Ā Ā Ā ssrc: number;
    }

    RTCP Sender Report packet info dump.

    +
    diff --git a/docs/types/packets.SerializableDump.html b/docs/types/packets.SerializableDump.html index 589d614..a2bc92b 100644 --- a/docs/types/packets.SerializableDump.html +++ b/docs/types/packets.SerializableDump.html @@ -1,2 +1,2 @@ -SerializableDump | rtp.js - v0.13.1

    Type Alias SerializableDump

    SerializableDump: { byteLength: number }

    Serializable info dump.

    -

    Type declaration

    • byteLength: number
    +SerializableDump | rtp.js - v0.13.1

    Type Alias SerializableDump

    SerializableDump: { byteLength: number }

    Serializable info dump.

    +

    Type declaration

    • byteLength: number
    diff --git a/docs/types/packets.SliPacketDump.html b/docs/types/packets.SliPacketDump.html index 2ab1ab1..7de2434 100644 --- a/docs/types/packets.SliPacketDump.html +++ b/docs/types/packets.SliPacketDump.html @@ -1,2 +1,2 @@ -SliPacketDump | rtp.js - v0.13.1

    Type Alias SliPacketDump

    SliPacketDump: FeedbackPacketDump & {
    Ā Ā Ā Ā items: { first: number; number: number; pictureId: number }[];
    }

    RTCP SLI packet info dump.

    -
    +SliPacketDump | rtp.js - v0.13.1

    Type Alias SliPacketDump

    SliPacketDump: FeedbackPacketDump & {
    Ā Ā Ā Ā items: { first: number; number: number; pictureId: number }[];
    }

    RTCP SLI packet info dump.

    +
    diff --git a/docs/types/packets.SrReqPacketDump.html b/docs/types/packets.SrReqPacketDump.html index 30378d4..cb0cc46 100644 --- a/docs/types/packets.SrReqPacketDump.html +++ b/docs/types/packets.SrReqPacketDump.html @@ -1,2 +1,2 @@ -SrReqPacketDump | rtp.js - v0.13.1

    Type Alias SrReqPacketDump

    SrReqPacketDump: FeedbackPacketDump

    RTCP SR REQ packet info dump.

    -
    +SrReqPacketDump | rtp.js - v0.13.1

    Type Alias SrReqPacketDump

    SrReqPacketDump: FeedbackPacketDump

    RTCP SR REQ packet info dump.

    +
    diff --git a/docs/types/packets.SsExtendedReportDump.html b/docs/types/packets.SsExtendedReportDump.html index 3aa9fde..148ac47 100644 --- a/docs/types/packets.SsExtendedReportDump.html +++ b/docs/types/packets.SsExtendedReportDump.html @@ -1,2 +1,2 @@ -SsExtendedReportDump | rtp.js - v0.13.1

    Type Alias SsExtendedReportDump

    SsExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā beginSeq: number;
    Ā Ā Ā Ā devJitter?: number;
    Ā Ā Ā Ā devTtlOrHl?: number;
    Ā Ā Ā Ā duplicatePackets?: number;
    Ā Ā Ā Ā endSeq: number;
    Ā Ā Ā Ā lostPackets?: number;
    Ā Ā Ā Ā maxJitter?: number;
    Ā Ā Ā Ā maxTtlOrHl?: number;
    Ā Ā Ā Ā meanJitter?: number;
    Ā Ā Ā Ā meanTtlOrHl?: number;
    Ā Ā Ā Ā minJitter?: number;
    Ā Ā Ā Ā minTtlOrHl?: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā ttlOrHlMode?: "ipv4-ttl" | "ipv6-hop-limit";
    }

    Statistics Summary Extended Report dump.

    -
    +SsExtendedReportDump | rtp.js - v0.13.1

    Type Alias SsExtendedReportDump

    SsExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā beginSeq: number;
    Ā Ā Ā Ā devJitter?: number;
    Ā Ā Ā Ā devTtlOrHl?: number;
    Ā Ā Ā Ā duplicatePackets?: number;
    Ā Ā Ā Ā endSeq: number;
    Ā Ā Ā Ā lostPackets?: number;
    Ā Ā Ā Ā maxJitter?: number;
    Ā Ā Ā Ā maxTtlOrHl?: number;
    Ā Ā Ā Ā meanJitter?: number;
    Ā Ā Ā Ā meanTtlOrHl?: number;
    Ā Ā Ā Ā minJitter?: number;
    Ā Ā Ā Ā minTtlOrHl?: number;
    Ā Ā Ā Ā ssrc: number;
    Ā Ā Ā Ā ttlOrHlMode?: "ipv4-ttl" | "ipv6-hop-limit";
    }

    Statistics Summary Extended Report dump.

    +
    diff --git a/docs/types/packets.SsrcAudioLevelExtension.html b/docs/types/packets.SsrcAudioLevelExtension.html index ee85fe6..e154460 100644 --- a/docs/types/packets.SsrcAudioLevelExtension.html +++ b/docs/types/packets.SsrcAudioLevelExtension.html @@ -1,8 +1,8 @@ -SsrcAudioLevelExtension | rtp.js - v0.13.1

    Type Alias SsrcAudioLevelExtension

    SsrcAudioLevelExtension: { voice: boolean; volume: number }

    SSRC Audio Level data.

    +SsrcAudioLevelExtension | rtp.js - v0.13.1

    Type Alias SsrcAudioLevelExtension

    SsrcAudioLevelExtension: { voice: boolean; volume: number }

    SSRC Audio Level data.

    Type declaration

    • voice: boolean

      Whether the encoder believes the audio packet contains voice activity.

    • volume: number

      Audio level expressed in -dBov, with values from 0 to 127 representing 0 to -127 dBov.

      -
      +
    -
    +
    diff --git a/docs/types/packets.VideoOrientationExtension.html b/docs/types/packets.VideoOrientationExtension.html index 1aab19c..912ce32 100644 --- a/docs/types/packets.VideoOrientationExtension.html +++ b/docs/types/packets.VideoOrientationExtension.html @@ -1,9 +1,9 @@ -VideoOrientationExtension | rtp.js - v0.13.1

    Type Alias VideoOrientationExtension

    VideoOrientationExtension: { camera: boolean; flip: boolean; rotation: number }

    Video Orientation data.

    +VideoOrientationExtension | rtp.js - v0.13.1

    Type Alias VideoOrientationExtension

    VideoOrientationExtension: { camera: boolean; flip: boolean; rotation: number }

    Video Orientation data.

    Type declaration

    • camera: boolean
    • flip: boolean
    • rotation: number

      0: no rotation. 1: rotation is 90Āŗ. 2: rotation is 180Āŗ. 3: rotation is 270Āŗ.

      -
      +
    +
    diff --git a/docs/types/packets.VmExtendedReportDump.html b/docs/types/packets.VmExtendedReportDump.html index d82fd08..0a047cd 100644 --- a/docs/types/packets.VmExtendedReportDump.html +++ b/docs/types/packets.VmExtendedReportDump.html @@ -1,2 +1,2 @@ -VmExtendedReportDump | rtp.js - v0.13.1

    Type Alias VmExtendedReportDump

    VmExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā burstDensity: number;
    Ā Ā Ā Ā burstDuration: number;
    Ā Ā Ā Ā discardRate: number;
    Ā Ā Ā Ā endSystemDelay: number;
    Ā Ā Ā Ā extRFactor: number;
    Ā Ā Ā Ā gapDensity: number;
    Ā Ā Ā Ā gapDuration: number;
    Ā Ā Ā Ā gmin: number;
    Ā Ā Ā Ā jba: number;
    Ā Ā Ā Ā jbAbsMax: number;
    Ā Ā Ā Ā jbMax: number;
    Ā Ā Ā Ā jbNominal: number;
    Ā Ā Ā Ā jbRate: number;
    Ā Ā Ā Ā lossRate: number;
    Ā Ā Ā Ā mosCq: number;
    Ā Ā Ā Ā mosLq: number;
    Ā Ā Ā Ā noiseLevel: number;
    Ā Ā Ā Ā plc: number;
    Ā Ā Ā Ā rerl: number;
    Ā Ā Ā Ā rFactor: number;
    Ā Ā Ā Ā roundTripDelay: number;
    Ā Ā Ā Ā signalLevel: number;
    Ā Ā Ā Ā ssrc: number;
    }

    VoIP Metrics Extended Report dump.

    -
    +VmExtendedReportDump | rtp.js - v0.13.1

    Type Alias VmExtendedReportDump

    VmExtendedReportDump: ExtendedReportDump & {
    Ā Ā Ā Ā burstDensity: number;
    Ā Ā Ā Ā burstDuration: number;
    Ā Ā Ā Ā discardRate: number;
    Ā Ā Ā Ā endSystemDelay: number;
    Ā Ā Ā Ā extRFactor: number;
    Ā Ā Ā Ā gapDensity: number;
    Ā Ā Ā Ā gapDuration: number;
    Ā Ā Ā Ā gmin: number;
    Ā Ā Ā Ā jba: number;
    Ā Ā Ā Ā jbAbsMax: number;
    Ā Ā Ā Ā jbMax: number;
    Ā Ā Ā Ā jbNominal: number;
    Ā Ā Ā Ā jbRate: number;
    Ā Ā Ā Ā lossRate: number;
    Ā Ā Ā Ā mosCq: number;
    Ā Ā Ā Ā mosLq: number;
    Ā Ā Ā Ā noiseLevel: number;
    Ā Ā Ā Ā plc: number;
    Ā Ā Ā Ā rerl: number;
    Ā Ā Ā Ā rFactor: number;
    Ā Ā Ā Ā roundTripDelay: number;
    Ā Ā Ā Ā signalLevel: number;
    Ā Ā Ā Ā ssrc: number;
    }

    VoIP Metrics Extended Report dump.

    +
    diff --git a/docs/types/packets.XrPacketDump.html b/docs/types/packets.XrPacketDump.html index e0abc34..cd44603 100644 --- a/docs/types/packets.XrPacketDump.html +++ b/docs/types/packets.XrPacketDump.html @@ -1,2 +1,2 @@ -XrPacketDump | rtp.js - v0.13.1

    Type Alias XrPacketDump

    XrPacketDump: RtcpPacketDump & { reports: ExtendedReportDump[]; ssrc: number }

    RTCP XR packet info dump.

    -
    +XrPacketDump | rtp.js - v0.13.1

    Type Alias XrPacketDump

    XrPacketDump: RtcpPacketDump & { reports: ExtendedReportDump[]; ssrc: number }

    RTCP XR packet info dump.

    +
    diff --git a/eslint.config.mjs b/eslint.config.mjs index b62ac54..30e0fbf 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -118,7 +118,7 @@ const config = tsEslint.config( files: ['src/**/*.ts'], })), { - name: 'mediasoup-client .ts files', + name: '.ts files', files: ['src/**/*.ts'], languageOptions: { parserOptions: { @@ -163,7 +163,7 @@ const config = tsEslint.config( }, }, { - name: 'mediasoup-client .ts test files', + name: '.ts test files', ...jestEslint.configs['flat/recommended'], files: ['src/test/**/*.ts'], rules: { diff --git a/npm-scripts.mjs b/npm-scripts.mjs index 603919c..9f099ff 100644 --- a/npm-scripts.mjs +++ b/npm-scripts.mjs @@ -8,6 +8,7 @@ const RELEASE_BRANCH = 'master'; // Paths for ESLint to check. Converted to string for convenience. const ESLINT_PATHS = [ 'eslint.config.mjs', + 'rollup.config.mjs', 'typedoc.config.mjs', 'src', 'npm-scripts.mjs', @@ -19,7 +20,9 @@ const ESLINT_IGNORE_PATTERN_ARGS = [] // Paths for Prettier to check/write. Converted to string for convenience. const PRETTIER_PATHS = [ 'README.md', + 'babel.config.cjs', 'eslint.config.mjs', + 'rollup.config.mjs', 'typedoc.config.mjs', 'src', 'npm-scripts.mjs', @@ -61,7 +64,7 @@ async function run() { case 'typescript:watch': { deleteLib(); - executeCmd(`tsc --watch ${args}`); + executeCmd('tsc --noEmit --watch'); break; } @@ -159,7 +162,8 @@ function buildTypescript({ force = false } = { force: false }) { logInfo('buildTypescript()'); deleteLib(); - executeCmd('tsc'); + executeCmd('tsc --noEmit'); + executeCmd('rollup --config'); } function lint() { diff --git a/package-lock.json b/package-lock.json index d7b80c4..f5a3880 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,12 +13,15 @@ "supports-color": "^10.0.0" }, "devDependencies": { - "@eslint/js": "^9.21.0", + "@babel/preset-env": "^7.26.9", + "@babel/preset-typescript": "^7.26.0", + "@eslint/js": "^9.22.0", "@types/debug": "^4.1.12", "@types/jest": "^29.5.14", - "@typescript-eslint/eslint-plugin": "^8.26.0", - "@typescript-eslint/parser": "^8.26.0", - "eslint": "^9.21.0", + "@typescript-eslint/eslint-plugin": "^8.26.1", + "@typescript-eslint/parser": "^8.26.1", + "esbuild": "^0.25.1", + "eslint": "^9.22.0", "eslint-config-prettier": "^10.1.1", "eslint-plugin-jest": "^28.11.0", "eslint-plugin-prettier": "^5.2.3", @@ -26,10 +29,13 @@ "jest": "^29.7.0", "open-cli": "^8.0.0", "prettier": "^3.5.3", + "rollup": "^4.35.0", + "rollup-plugin-dts": "^6.1.1", + "rollup-plugin-esbuild": "^6.2.1", "ts-jest": "^29.2.6", "typedoc": "^0.27.9", "typescript": "~5.8.2", - "typescript-eslint": "^8.26.0" + "typescript-eslint": "^8.26.1" }, "engines": { "node": ">=18" @@ -73,10 +79,11 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz", - "integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -112,14 +119,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -128,17 +135,60 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz", - "integrity": "sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-validator-option": "^7.22.5", - "@nicolo-ribaudo/semver-v6": "^6.3.3", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1" + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", + "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.26.9", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -147,74 +197,175 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -241,36 +392,52 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", + "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.9" }, "bin": { "parser": "bin/babel-parser.js" @@ -279,6 +446,103 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -315,6 +579,38 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -340,12 +636,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -442,12 +739,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -456,1583 +754,1795 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.26.8" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.15" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", - "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/js": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", - "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@eslint/core": "^0.12.0", - "levn": "^0.4.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@gerrit0/mini-shiki": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-1.25.1.tgz", - "integrity": "sha512-BQ3iwLtmacJpW59cB0TM4ATGMLIz+Ps+9MUxrd7ds4MtYzzPvT6WLYpabYIqEP190hU0Olb8guXZmVp9o58ntw==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/engine-oniguruma": "^1.25.1", - "@shikijs/types": "^1.25.1", - "@shikijs/vscode-textmate": "^10.0.1" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18.18.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=18.18.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18.18" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", + "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { - "node": ">=18.18" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, + "license": "MIT", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, + "license": "MIT", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, + "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz", + "integrity": "sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/preset-env": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", + "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.26.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.40.0", + "semver": "^6.3.1" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "node_modules/@babel/traverse": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=4" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@babel/types": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", + "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "node_modules/@esbuild/android-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "cpu": [ + "arm" + ], "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@esbuild/android-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@esbuild/android-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" + "node": ">=18" } }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.26.1.tgz", - "integrity": "sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/types": "1.26.1", - "@shikijs/vscode-textmate": "^10.0.1" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@shikijs/types": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.26.1.tgz", - "integrity": "sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.1", - "@types/hast": "^3.0.4" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz", - "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==", + "node_modules/@esbuild/linux-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "type-detect": "4.0.8" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "@types/ms": "*" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "node_modules/@esbuild/linux-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", - "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@types/node": "*" + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "*" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/jest": { - "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.4.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", - "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "node_modules/@esbuild/win32-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@types/yargs-parser": "*" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.0.tgz", - "integrity": "sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.26.0", - "@typescript-eslint/type-utils": "8.26.0", - "@typescript-eslint/utils": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.0.tgz", - "integrity": "sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.26.0", - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/typescript-estree": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0", - "debug": "^4.3.4" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.0.tgz", - "integrity": "sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==", + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0" + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.0.tgz", - "integrity": "sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==", + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.26.0", - "@typescript-eslint/utils": "8.26.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" - }, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.0.tgz", - "integrity": "sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==", + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz", - "integrity": "sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==", + "node_modules/@eslint/eslintrc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } + "license": "Python-2.0" }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/utils": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.0.tgz", - "integrity": "sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==", + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.26.0", - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/typescript-estree": "8.26.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "argparse": "^2.0.1" }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.0.tgz", - "integrity": "sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==", + "node_modules/@eslint/js": { + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.26.0", - "eslint-visitor-keys": "^4.2.0" - }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" } }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" }, "engines": { - "node": ">=0.4.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@gerrit0/mini-shiki": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-1.25.1.tgz", + "integrity": "sha512-BQ3iwLtmacJpW59cB0TM4ATGMLIz+Ps+9MUxrd7ds4MtYzzPvT6WLYpabYIqEP190hU0Olb8guXZmVp9o58ntw==", "dev": true, "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "dependencies": { + "@shikijs/engine-oniguruma": "^1.25.1", + "@shikijs/types": "^1.25.1", + "@shikijs/vscode-textmate": "^10.0.1" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "type-fest": "^0.21.3" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=8" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, + "license": "Apache-2.0", "engines": { - "node": ">= 8" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=8" + } }, - "node_modules/babel-jest": { + "node_modules/@jest/console": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", + "@jest/types": "^29.6.3", + "@types/node": "*", "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { + "node_modules/@jest/console/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -2047,7 +2557,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/babel-jest/node_modules/chalk": { + "node_modules/@jest/console/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -2063,7 +2573,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/babel-jest/node_modules/color-convert": { + "node_modules/@jest/console/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -2075,13 +2585,13 @@ "node": ">=7.0.0" } }, - "node_modules/babel-jest/node_modules/color-name": { + "node_modules/@jest/console/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/babel-jest/node_modules/supports-color": { + "node_modules/@jest/console/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -2093,311 +2603,230 @@ "node": ">=8" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=7.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { - "fast-json-stable-stringify": "2.x" + "jest-get-type": "^29.6.3" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001515", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", - "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/create-jest": { + "node_modules/@jest/reporters": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/create-jest/node_modules/ansi-styles": { + "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -2412,7 +2841,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/create-jest/node_modules/chalk": { + "node_modules/@jest/reporters/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -2428,7 +2857,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/create-jest/node_modules/color-convert": { + "node_modules/@jest/reporters/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -2440,13 +2869,29 @@ "node": ">=7.0.0" } }, - "node_modules/create-jest/node_modules/color-name": { + "node_modules/@jest/reporters/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/create-jest/node_modules/supports-color": { + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -2458,465 +2903,2605 @@ "node": ">=8" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">= 8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "dependencies": { - "type-fest": "^1.0.1" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=18" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/diff-sequences": { + "node_modules/@jest/types": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.455", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz", - "integrity": "sha512-8tgdX0Odl24LtmLwxotpJCVjIndN559AvaOtd67u+2mo+IDsgsTF580NB+uuDCqsHw8yFg53l5+imFV9Fw3cbA==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" + "dependencies": { + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, + "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { - "node": ">=6" + "node": ">=6.0.0" } }, - "node_modules/eslint": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", - "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/core": "^0.12.0", - "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.21.0", - "@eslint/plugin-kit": "^0.2.7", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } + "node": ">=6.0.0" } }, - "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } + "license": "MIT" }, - "node_modules/eslint-plugin-jest": { - "version": "28.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz", - "integrity": "sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "engines": { - "node": "^16.10.0 || ^18.12.0 || >=20.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", - "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 8" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 8" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 8" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://opencollective.com/unts" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", + "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", + "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", + "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", + "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", + "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", + "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", + "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", + "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", + "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", + "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", + "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", + "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", + "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", + "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", + "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", + "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", + "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", + "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", + "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.26.1", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.26.1.tgz", + "integrity": "sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.26.1", + "@shikijs/vscode-textmate": "^10.0.1" + } + }, + "node_modules/@shikijs/types": { + "version": "1.26.1", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.26.1.tgz", + "integrity": "sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz", + "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", + "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.4.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", + "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", + "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/type-utils": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", + "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", + "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", + "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001703", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz", + "integrity": "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.41.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz", + "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.114", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz", + "integrity": "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint": { + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.22.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", + "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "28.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz", + "integrity": "sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "engines": { + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", + "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-type": { + "version": "18.7.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.7.0.tgz", + "integrity": "sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==", + "dev": true, + "dependencies": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, "engines": { "node": ">=10" }, @@ -2924,821 +5509,1224 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", + "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.8.19" } }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, - "license": "Apache-2.0", + "bin": { + "is-docker": "cli.js" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "estraverse": "^5.1.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "estraverse": "^5.2.0" + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" }, "engines": { - "node": ">=4.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=0.12.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "BSD-2-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.6.0" + "node": ">=8" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, - "license": "ISC", "dependencies": { - "reusify": "^1.0.4" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "bser": "2.1.1" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/file-type": { - "version": "18.7.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.7.0.tgz", - "integrity": "sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==", + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "readable-web-to-node-stream": "^3.0.2", - "strtok3": "^7.0.0", - "token-types": "^5.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "minimatch": "^5.0.1" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, - "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=7.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">=8.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=7.0.0" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "is-glob": "^4.0.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=8" } }, - "node_modules/globals": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", - "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=10.17.0" + "node": ">=8" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">= 4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "has": "^1.0.3" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "bin": { - "is-docker": "cli.js" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "is-inside-container": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", + "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -3750,58 +6738,84 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jake/node_modules/ansi-styles": { + "node_modules/jest-resolve/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3812,12 +6826,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jake/node_modules/chalk": { + "node_modules/jest-resolve/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3829,12 +6842,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { + "node_modules/jest-resolve/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3842,19 +6854,17 @@ "node": ">=7.0.0" } }, - "node_modules/jake/node_modules/color-name": { + "node_modules/jest-resolve/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "dev": true }, - "node_modules/jake/node_modules/supports-color": { + "node_modules/jest-resolve/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3862,78 +6872,133 @@ "node": ">=8" } }, - "node_modules/jest": { + "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "engines": { + "node": ">=8" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-circus": { + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { + "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -3948,7 +7013,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-circus/node_modules/chalk": { + "node_modules/jest-runtime/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -3964,7 +7029,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-circus/node_modules/color-convert": { + "node_modules/jest-runtime/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -3976,13 +7041,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-circus/node_modules/color-name": { + "node_modules/jest-runtime/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-circus/node_modules/supports-color": { + "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -3994,40 +7059,38 @@ "node": ">=8" } }, - "node_modules/jest-cli": { + "node_modules/jest-snapshot": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-cli/node_modules/ansi-styles": { + "node_modules/jest-snapshot/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -4042,7 +7105,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/node_modules/chalk": { + "node_modules/jest-snapshot/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -4058,7 +7121,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/color-convert": { + "node_modules/jest-snapshot/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -4070,13 +7133,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-cli/node_modules/color-name": { + "node_modules/jest-snapshot/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-cli/node_modules/supports-color": { + "node_modules/jest-snapshot/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -4088,52 +7151,24 @@ "node": ">=8" } }, - "node_modules/jest-config": { + "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", + "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } } }, - "node_modules/jest-config/node_modules/ansi-styles": { + "node_modules/jest-util/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -4148,7 +7183,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config/node_modules/chalk": { + "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -4164,7 +7199,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-config/node_modules/color-convert": { + "node_modules/jest-util/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -4176,13 +7211,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-config/node_modules/color-name": { + "node_modules/jest-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-config/node_modules/supports-color": { + "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -4194,22 +7229,24 @@ "node": ">=8" } }, - "node_modules/jest-diff": { + "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", + "leven": "^3.1.0", "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { + "node_modules/jest-validate/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -4224,7 +7261,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-diff/node_modules/chalk": { + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -4240,7 +7289,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-diff/node_modules/color-convert": { + "node_modules/jest-validate/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -4252,13 +7301,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-diff/node_modules/color-name": { + "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-diff/node_modules/supports-color": { + "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -4270,35 +7319,26 @@ "node": ">=8" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { + "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", + "emittery": "^0.13.1", "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { + "node_modules/jest-watcher/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -4313,7 +7353,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-each/node_modules/chalk": { + "node_modules/jest-watcher/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -4329,7 +7369,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-each/node_modules/color-convert": { + "node_modules/jest-watcher/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -4341,13 +7381,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-each/node_modules/color-name": { + "node_modules/jest-watcher/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-each/node_modules/supports-color": { + "node_modules/jest-watcher/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -4359,2894 +7399,3108 @@ "node": ">=8" } }, - "node_modules/jest-environment-node": { + "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8.0" } }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "uc.micro": "^2.0.0" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "p-locate": "^4.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "yallist": "^3.0.2" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "semver": "^7.5.3" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "tmpl": "1.0.5" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } + "license": "Python-2.0" }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=8.6" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=7.0.0" + "node": "*" } }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "path-key": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "wrappy": "1" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/open-cli": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-8.0.0.tgz", + "integrity": "sha512-3muD3BbfLyzl+aMVSEfn2FfOqGdPYR0O4KNnxXsLEPE2q9OSjBfJAaB6XKbrUzLgymoSMejvb5jpXJfru/Ko2A==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "file-type": "^18.7.0", + "get-stdin": "^9.0.0", + "meow": "^12.1.1", + "open": "^10.0.0", + "tempy": "^3.1.0" + }, + "bin": { + "open-cli": "cli.js" }, "engines": { - "node": ">=7.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "callsites": "^3.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "dev": true, + "engines": { + "node": ">=14.16" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "find-up": "^4.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "fast-diff": "^1.1.2" }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/jest-util": { + "node_modules/pretty-format": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 6" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "license": "MIT", "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "readable-stream": "^3.6.0" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "regenerate": "^1.4.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=4" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "has-flag": "^4.0.0" + "jsesc": "~3.0.2" }, - "engines": { - "node": ">=8" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "resolve": "bin/resolve" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=10" - }, + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/rollup": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", + "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.35.0", + "@rollup/rollup-android-arm64": "4.35.0", + "@rollup/rollup-darwin-arm64": "4.35.0", + "@rollup/rollup-darwin-x64": "4.35.0", + "@rollup/rollup-freebsd-arm64": "4.35.0", + "@rollup/rollup-freebsd-x64": "4.35.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", + "@rollup/rollup-linux-arm-musleabihf": "4.35.0", + "@rollup/rollup-linux-arm64-gnu": "4.35.0", + "@rollup/rollup-linux-arm64-musl": "4.35.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", + "@rollup/rollup-linux-riscv64-gnu": "4.35.0", + "@rollup/rollup-linux-s390x-gnu": "4.35.0", + "@rollup/rollup-linux-x64-gnu": "4.35.0", + "@rollup/rollup-linux-x64-musl": "4.35.0", + "@rollup/rollup-win32-arm64-msvc": "4.35.0", + "@rollup/rollup-win32-ia32-msvc": "4.35.0", + "@rollup/rollup-win32-x64-msvc": "4.35.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-dts": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz", + "integrity": "sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==", "dev": true, + "license": "LGPL-3.0-only", "dependencies": { - "has-flag": "^4.0.0" + "magic-string": "^0.30.10" }, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^7.24.2" + }, + "peerDependencies": { + "rollup": "^3.29.4 || ^4", + "typescript": "^4.5 || ^5.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/rollup-plugin-esbuild": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.2.1.tgz", + "integrity": "sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "debug": "^4.4.0", + "es-module-lexer": "^1.6.0", + "get-tsconfig": "^4.10.0", + "unplugin-utils": "^0.2.4" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=14.18.0" + }, + "peerDependencies": { + "esbuild": ">=0.18.0", + "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, + "license": "ISC", "bin": { - "json5": "lib/cli.js" + "semver": "bin/semver.js" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "license": "MIT", "dependencies": { - "uc.micro": "^2.0.0" + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { "node": ">=8" } }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { - "yallist": "^3.0.2" + "safe-buffer": "~5.2.0" } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "tmpl": "1.0.5" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" + "ansi-regex": "^5.0.1" }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" + "engines": { + "node": ">=8" } }, - "node_modules/markdown-it/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "license": "Python-2.0" + "engines": { + "node": ">=8" + } }, - "node_modules/mdurl": { + "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=6" + } }, - "node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { - "node": ">=16.10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", "dev": true, - "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" }, "engines": { - "node": ">=8.6" + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, + "node_modules/supports-color": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", + "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", + "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "node": ">=18" }, - "engines": { - "node": "*" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=8" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", "dev": true, - "dependencies": { - "wrappy": "1" + "engines": { + "node": ">=14.16" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/tempy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", + "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, "engines": { - "node": ">=18" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open-cli": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-8.0.0.tgz", - "integrity": "sha512-3muD3BbfLyzl+aMVSEfn2FfOqGdPYR0O4KNnxXsLEPE2q9OSjBfJAaB6XKbrUzLgymoSMejvb5jpXJfru/Ko2A==", + "node_modules/tempy/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, - "dependencies": { - "file-type": "^18.7.0", - "get-stdin": "^9.0.0", - "meow": "^12.1.1", - "open": "^10.0.0", - "tempy": "^3.1.0" - }, - "bin": { - "open-cli": "cli.js" - }, "engines": { - "node": ">=18" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=8.0" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/token-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" }, "engines": { - "node": ">=6" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/ts-api-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/ts-jest": { + "version": "29.2.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.6.tgz", + "integrity": "sha512-yTNZVZqc8lSixm+QGVFcPe6+yj7+TWZwIesuOWvfcn4B9bz5x4NDzVCQQjOs7Hfouu36aEqfEbo9Qpo+gq8dDg==", "dev": true, "license": "MIT", "dependencies": { - "callsites": "^3.0.0" + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.1", + "yargs-parser": "^21.1.1" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "bin": { + "ts-jest": "cli.js" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/peek-readable": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", - "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "node_modules/typedoc": { + "version": "0.27.9", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.27.9.tgz", + "integrity": "sha512-/z585740YHURLl9DN2jCWe6OW7zKYm6VoQ93H0sxZ1cwHQEQrUn5BJrEnkWhfzUdyO+BLGjnKUZ9iz9hKloFDw==", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@gerrit0/mini-shiki": "^1.24.0", + "lunr": "^2.3.9", + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "yaml": "^2.6.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, "engines": { - "node": ">=14.16" + "node": ">= 18" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" + "peerDependencies": { + "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x" } }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=8.6" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "node_modules/typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">= 6" + "node": ">=14.17" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/typescript-eslint": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz", + "integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "@typescript-eslint/eslint-plugin": "8.26.1", + "@typescript-eslint/parser": "8.26.1", + "@typescript-eslint/utils": "8.26.1" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true, - "engines": { - "node": ">= 0.8.0" - } + "license": "MIT" }, - "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "node": ">=4" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=4" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "crypto-random-string": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/unplugin-utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz", + "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", "dev": true, "license": "MIT", + "dependencies": { + "pathe": "^2.0.2", + "picomatch": "^4.0.2" + }, "engines": { - "node": ">=6" + "node": ">=18.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" } }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "node_modules/unplugin-utils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, { "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "url": "https://opencollective.com/browserslist" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT" + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": ">= 6" + "node": ">= 8" } }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "readable-stream": "^3.6.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { - "resolve-from": "^5.0.0" + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">=10" + "node": ">= 14" } }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { - "node": ">=18" + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "dev": true + }, + "@babel/core": { + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.8.tgz", + "integrity": "sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "@nicolo-ribaudo/semver-v6": "^6.3.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2" + } + }, + "@babel/generator": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "dev": true, + "requires": { + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "requires": { + "@babel/types": "^7.25.9" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "requires": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true } - ] + } }, - "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "@babel/helper-create-class-features-plugin": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", + "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.26.9", + "semver": "^6.3.1" }, - "engines": { - "node": ">=10" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" }, - "engines": { - "node": ">=8" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "requires": { + "@babel/types": "^7.25.9" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } + "@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "@babel/helpers": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", + "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.10" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "@babel/parser": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "@babel/types": "^7.26.9" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/strtok3": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", - "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/supports-color": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", - "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" } }, - "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" + "requires": {} + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/temp-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", - "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "engines": { - "node": ">=14.16" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/tempy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", - "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" } }, - "node_modules/tempy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/tempy/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/token-types": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", - "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/ts-api-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", - "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/ts-jest": { - "version": "29.2.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.6.tgz", - "integrity": "sha512-yTNZVZqc8lSixm+QGVFcPe6+yj7+TWZwIesuOWvfcn4B9bz5x4NDzVCQQjOs7Hfouu36aEqfEbo9Qpo+gq8dDg==", + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "license": "MIT", - "dependencies": { - "bs-logger": "^0.2.6", - "ejs": "^3.1.10", - "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.7.1", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/tslib": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "license": "0BSD" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/typedoc": { - "version": "0.27.9", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.27.9.tgz", - "integrity": "sha512-/z585740YHURLl9DN2jCWe6OW7zKYm6VoQ93H0sxZ1cwHQEQrUn5BJrEnkWhfzUdyO+BLGjnKUZ9iz9hKloFDw==", + "@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@gerrit0/mini-shiki": "^1.24.0", - "lunr": "^2.3.9", - "markdown-it": "^14.1.0", - "minimatch": "^9.0.5", - "yaml": "^2.6.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "@babel/plugin-transform-async-generator-functions": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" + "requires": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.26.8" } }, - "node_modules/typescript-eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.0.tgz", - "integrity": "sha512-PtVz9nAnuNJuAVeUFvwztjuUgSnJInODAUx47VDwWPXzd5vismPOtPtt83tzNXyOjVQbPRp786D6WFW/M2koIA==", + "@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.26.0", - "@typescript-eslint/parser": "8.26.0", - "@typescript-eslint/utils": "8.26.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "requires": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" } }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.26.5" + } }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" }, - "engines": { - "node": ">=10.12.0" + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, - "dependencies": { - "makeerror": "1.0.12" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "@babel/plugin-transform-for-of": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", + "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + } }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, - "engines": { - "node": ">=12" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" } - } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true }, - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/compat-data": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz", - "integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==", - "dev": true + "@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + } }, - "@babel/core": { - "version": "7.22.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.8.tgz", - "integrity": "sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw==", + "@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.7", - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "@nicolo-ribaudo/semver-v6": "^6.3.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, "requires": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/helper-compilation-targets": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz", - "integrity": "sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==", + "@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-validator-option": "^7.22.5", - "@nicolo-ribaudo/semver-v6": "^6.3.3", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", - "dev": true + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.26.5" + } }, - "@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" } }, - "@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true + "@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + } }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" } }, - "@babel/helper-string-parser": { + "@babel/plugin-transform-parameters": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } }, - "@babel/helper-validator-identifier": { + "@babel/plugin-transform-private-methods": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } }, - "@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", - "dev": true + "@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } }, - "@babel/helpers": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, "requires": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, "requires": { - "@babel/types": "^7.26.3" + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "@babel/plugin-transform-template-literals": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.26.5" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.26.5" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "@babel/plugin-transform-typescript": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz", + "integrity": "sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" } }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/preset-env": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", + "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.26.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.40.0", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" } }, - "@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", "dev": true, "requires": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" } }, "@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", "dev": true, "requires": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -7260,9 +10514,9 @@ } }, "@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", + "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.25.9", @@ -7275,6 +10529,181 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@esbuild/aix-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "dev": true, + "optional": true + }, "@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -7301,6 +10730,12 @@ "minimatch": "^3.1.2" } }, + "@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true + }, "@eslint/core": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", @@ -7351,9 +10786,9 @@ } }, "@eslint/js": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", - "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true }, "@eslint/object-schema": { @@ -7926,9 +11361,9 @@ "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "@jridgewell/trace-mapping": { @@ -7979,6 +11414,139 @@ "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", + "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", + "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", + "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", + "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", + "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", + "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", + "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", + "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", + "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", + "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", + "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", + "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", + "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", + "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", + "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", + "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", + "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", + "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", + "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", + "dev": true, + "optional": true + }, "@shikijs/engine-oniguruma": { "version": "1.26.1", "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.26.1.tgz", @@ -8189,16 +11757,16 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.0.tgz", - "integrity": "sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", + "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.26.0", - "@typescript-eslint/type-utils": "8.26.0", - "@typescript-eslint/utils": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/type-utils": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8206,54 +11774,54 @@ } }, "@typescript-eslint/parser": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.0.tgz", - "integrity": "sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", + "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "8.26.0", - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/typescript-estree": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.0.tgz", - "integrity": "sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", "dev": true, "requires": { - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0" + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" } }, "@typescript-eslint/type-utils": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.0.tgz", - "integrity": "sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", + "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "8.26.0", - "@typescript-eslint/utils": "8.26.0", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/utils": "8.26.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" } }, "@typescript-eslint/types": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.0.tgz", - "integrity": "sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz", - "integrity": "sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", "dev": true, "requires": { - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/visitor-keys": "8.26.0", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8283,24 +11851,24 @@ } }, "@typescript-eslint/utils": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.0.tgz", - "integrity": "sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", + "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.26.0", - "@typescript-eslint/types": "8.26.0", - "@typescript-eslint/typescript-estree": "8.26.0" + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1" } }, "@typescript-eslint/visitor-keys": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.0.tgz", - "integrity": "sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", "dev": true, "requires": { - "@typescript-eslint/types": "8.26.0", + "@typescript-eslint/types": "8.26.1", "eslint-visitor-keys": "^4.2.0" }, "dependencies": { @@ -8462,6 +12030,44 @@ "@types/babel__traverse": "^7.0.6" } }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + } + }, "babel-preset-current-node-syntax": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", @@ -8518,15 +12124,15 @@ } }, "browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" } }, "bs-logger": { @@ -8575,9 +12181,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001515", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", - "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "version": "1.0.30001703", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz", + "integrity": "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==", "dev": true }, "char-regex": { @@ -8633,6 +12239,15 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "core-js-compat": { + "version": "3.41.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz", + "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==", + "dev": true, + "requires": { + "browserslist": "^4.24.4" + } + }, "create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -8792,9 +12407,9 @@ } }, "electron-to-chromium": { - "version": "1.4.455", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz", - "integrity": "sha512-8tgdX0Odl24LtmLwxotpJCVjIndN559AvaOtd67u+2mo+IDsgsTF580NB+uuDCqsHw8yFg53l5+imFV9Fw3cbA==", + "version": "1.5.114", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz", + "integrity": "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==", "dev": true }, "emittery": { @@ -8824,24 +12439,64 @@ "is-arrayish": "^0.2.1" } }, + "es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true + }, + "esbuild": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" + } + }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, "eslint": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", - "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", "@eslint/core": "^0.12.0", "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.21.0", + "@eslint/js": "9.22.0", "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -8853,7 +12508,7 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", + "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", @@ -8984,9 +12639,9 @@ } }, "eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -9289,6 +12944,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -10791,6 +14455,12 @@ "p-locate": "^4.1.0" } }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -10818,6 +14488,15 @@ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, + "magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -10931,9 +14610,9 @@ "dev": true }, "node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true }, "normalize-path": { @@ -11088,6 +14767,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true + }, "peek-readable": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", @@ -11095,9 +14780,9 @@ "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -11221,6 +14906,73 @@ "readable-stream": "^3.6.0" } }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "requires": { + "jsesc": "~3.0.2" + }, + "dependencies": { + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true + } + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -11253,6 +15005,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -11265,6 +15023,57 @@ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true }, + "rollup": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", + "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.35.0", + "@rollup/rollup-android-arm64": "4.35.0", + "@rollup/rollup-darwin-arm64": "4.35.0", + "@rollup/rollup-darwin-x64": "4.35.0", + "@rollup/rollup-freebsd-arm64": "4.35.0", + "@rollup/rollup-freebsd-x64": "4.35.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", + "@rollup/rollup-linux-arm-musleabihf": "4.35.0", + "@rollup/rollup-linux-arm64-gnu": "4.35.0", + "@rollup/rollup-linux-arm64-musl": "4.35.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", + "@rollup/rollup-linux-riscv64-gnu": "4.35.0", + "@rollup/rollup-linux-s390x-gnu": "4.35.0", + "@rollup/rollup-linux-x64-gnu": "4.35.0", + "@rollup/rollup-linux-x64-musl": "4.35.0", + "@rollup/rollup-win32-arm64-msvc": "4.35.0", + "@rollup/rollup-win32-ia32-msvc": "4.35.0", + "@rollup/rollup-win32-x64-msvc": "4.35.0", + "@types/estree": "1.0.6", + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-dts": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz", + "integrity": "sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.2", + "magic-string": "^0.30.10" + } + }, + "rollup-plugin-esbuild": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.2.1.tgz", + "integrity": "sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==", + "dev": true, + "requires": { + "debug": "^4.4.0", + "es-module-lexer": "^1.6.0", + "get-tsconfig": "^4.10.0", + "unplugin-utils": "^0.2.4" + } + }, "run-applescript": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", @@ -11611,14 +15420,14 @@ "dev": true }, "typescript-eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.0.tgz", - "integrity": "sha512-PtVz9nAnuNJuAVeUFvwztjuUgSnJInODAUx47VDwWPXzd5vismPOtPtt83tzNXyOjVQbPRp786D6WFW/M2koIA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz", + "integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==", "dev": true, "requires": { - "@typescript-eslint/eslint-plugin": "8.26.0", - "@typescript-eslint/parser": "8.26.0", - "@typescript-eslint/utils": "8.26.0" + "@typescript-eslint/eslint-plugin": "8.26.1", + "@typescript-eslint/parser": "8.26.1", + "@typescript-eslint/utils": "8.26.1" } }, "uc.micro": { @@ -11627,6 +15436,34 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, "unique-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", @@ -11636,14 +15473,32 @@ "crypto-random-string": "^4.0.0" } }, + "unplugin-utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz", + "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", + "dev": true, + "requires": { + "pathe": "^2.0.2", + "picomatch": "^4.0.2" + }, + "dependencies": { + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + } + } + }, "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" } }, "uri-js": { diff --git a/package.json b/package.json index 6bc0d54..bc05c51 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,13 @@ "type": "git", "url": "git+https://github.com/versatica/rtp.js.git" }, - "main": "lib/index.js", - "types": "lib/index.d.ts", + "main": "lib/rtp.js.bundle.cjs", + "module": "lib/rtp.js.bundle.mjs", + "types": "lib/rtp.js.bundle.d.ts", + "exports": { + "import": "./lib/rtp.js.bundle.mjs", + "require": "./lib/rtp.js.bundle.cjs" + }, "files": [ "npm-scripts.mjs", "lib" @@ -44,19 +49,13 @@ "jest": { "verbose": true, "testEnvironment": "node", - "testRegex": "src/test/.*\\.test.*\\.ts", - "transform": { - "^.*\\.ts$": [ - "ts-jest", - { - "diagnostics": { - "ignoreCodes": [ - "TS151001" - ] - } - } - ] - }, + "moduleFileExtensions": [ + "js", + "mjs", + "ts", + "mts" + ], + "testRegex": "src/test/.*.test.ts", "coveragePathIgnorePatterns": [ "src/Logger.ts", "src/utils", @@ -69,12 +68,15 @@ "supports-color": "^10.0.0" }, "devDependencies": { + "@babel/preset-env": "^7.26.9", + "@babel/preset-typescript": "^7.26.0", + "@eslint/js": "^9.22.0", "@types/debug": "^4.1.12", - "@eslint/js": "^9.21.0", "@types/jest": "^29.5.14", - "@typescript-eslint/eslint-plugin": "^8.26.0", - "@typescript-eslint/parser": "^8.26.0", - "eslint": "^9.21.0", + "@typescript-eslint/eslint-plugin": "^8.26.1", + "@typescript-eslint/parser": "^8.26.1", + "esbuild": "^0.25.1", + "eslint": "^9.22.0", "eslint-config-prettier": "^10.1.1", "eslint-plugin-jest": "^28.11.0", "eslint-plugin-prettier": "^5.2.3", @@ -82,9 +84,12 @@ "jest": "^29.7.0", "open-cli": "^8.0.0", "prettier": "^3.5.3", + "rollup": "^4.35.0", + "rollup-plugin-dts": "^6.1.1", + "rollup-plugin-esbuild": "^6.2.1", "ts-jest": "^29.2.6", "typedoc": "^0.27.9", "typescript": "~5.8.2", - "typescript-eslint": "^8.26.0" + "typescript-eslint": "^8.26.1" } } diff --git a/rollup.config.mjs b/rollup.config.mjs new file mode 100644 index 0000000..1a23236 --- /dev/null +++ b/rollup.config.mjs @@ -0,0 +1,41 @@ +import esbuild from 'rollup-plugin-esbuild'; +import dts from 'rollup-plugin-dts'; + +// Make it explicit that we don't want to include external deps in bundle +// files. +const external = id => !/^[./]/.test(id); + +export default [ + /** + * Create ES and CJS bundle files and their source map files. + */ + { + input: 'src/index.ts', + plugins: [esbuild({ include: /\.ts$/ })], + output: [ + { + format: 'es', + file: 'lib/rtp.js.bundle.mjs', + sourcemap: true, + }, + { + format: 'cjs', + file: 'lib/rtp.js.bundle.cjs', + sourcemap: true, + }, + ], + external: external, + }, + /** + * Create a .d.ts bundle file for TypeScript types. + */ + { + input: 'src/index.ts', + plugins: [dts({ include: /\.ts$/ })], + output: { + format: 'es', + file: 'lib/rtp.js.bundle.d.ts', + }, + external: external, + }, +]; diff --git a/src/index.ts b/src/index.ts index a0f2b4f..a2d1d8f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,2 @@ -export * as packets from './packets/public'; -export * as utils from './utils/public'; +export * as packets from './packets'; +export * as utils from './utils'; diff --git a/src/packets.ts b/src/packets.ts new file mode 100644 index 0000000..ab4bf6c --- /dev/null +++ b/src/packets.ts @@ -0,0 +1,137 @@ +/** + * @module packets + */ + +// NOTE: We need to export Serializable, otherwise TypeDoc doesn't document +// inherited methods. +export { Serializable } from './packets/Serializable'; +export type { SerializableDump } from './packets/Serializable'; + +export { Packet } from './packets/Packet'; +export type { PacketDump } from './packets/Packet'; + +export { isRtp, RtpPacket } from './packets/RTP/RtpPacket'; +export type { RtpPacketDump } from './packets/RTP/RtpPacket'; + +export { + rtpExtensionUriToType, + timeMsToAbsSendTime, +} from './packets/RTP/rtpExtensions'; +export type { + RtpExtensionType, + RtpExtensionMapping, + SsrcAudioLevelExtension, + VideoOrientationExtension, +} from './packets/RTP/rtpExtensions'; + +export { isRtcp, RtcpPacket } from './packets/RTCP/RtcpPacket'; +export type { RtcpPacketType, RtcpPacketDump } from './packets/RTCP/RtcpPacket'; + +export { CompoundPacket } from './packets/RTCP/CompoundPacket'; +export type { CompoundPacketDump } from './packets/RTCP/CompoundPacket'; + +export { + ReceiverReportPacket, + ReceptionReport, +} from './packets/RTCP/ReceiverReportPacket'; +export type { + ReceiverReportPacketDump, + ReceptionReportDump, +} from './packets/RTCP/ReceiverReportPacket'; + +export { SenderReportPacket } from './packets/RTCP/SenderReportPacket'; +export type { SenderReportPacketDump } from './packets/RTCP/SenderReportPacket'; + +export { ByePacket } from './packets/RTCP/ByePacket'; +export type { ByePacketDump } from './packets/RTCP/ByePacket'; + +export { SdesPacket, SdesChunk } from './packets/RTCP/SdesPacket'; +export type { + SdesPacketDump, + SdesChunkDump, + SdesItemType, +} from './packets/RTCP/SdesPacket'; + +export { FeedbackPacket } from './packets/RTCP/FeedbackPacket'; +export type { + RtpFeedbackMessageType, + PsFeedbackMessageType, + FeedbackPacketDump, +} from './packets/RTCP/FeedbackPacket'; + +export { + NackPacket, + parseNackItem, + createNackItem, +} from './packets/RTCP/NackPacket'; +export type { NackPacketDump } from './packets/RTCP/NackPacket'; + +export { SrReqPacket } from './packets/RTCP/SrReqPacket'; +export type { SrReqPacketDump } from './packets/RTCP/SrReqPacket'; + +export { EcnPacket } from './packets/RTCP/EcnPacket'; +export type { EcnPacketDump } from './packets/RTCP/EcnPacket'; + +export { PliPacket } from './packets/RTCP/PliPacket'; +export type { PliPacketDump } from './packets/RTCP/PliPacket'; + +export { SliPacket } from './packets/RTCP/SliPacket'; +export type { SliPacketDump } from './packets/RTCP/SliPacket'; + +export { RpsiPacket } from './packets/RTCP/RpsiPacket'; +export type { RpsiPacketDump } from './packets/RTCP/RpsiPacket'; + +export { GenericFeedbackPacket } from './packets/RTCP/GenericFeedbackPacket'; +export type { GenericFeedbackPacketDump } from './packets/RTCP/GenericFeedbackPacket'; + +export { XrPacket } from './packets/RTCP/XrPacket'; +export type { XrPacketDump } from './packets/RTCP/XrPacket'; + +export { ExtendedReport } from './packets/RTCP/extendedReports/ExtendedReport'; +export type { + ExtendedReportType, + ExtendedReportDump, +} from './packets/RTCP/extendedReports/ExtendedReport'; + +export { LrleExtendedReport } from './packets/RTCP/extendedReports/LrleExtendedReport'; +export type { LrleExtendedReportDump } from './packets/RTCP/extendedReports/LrleExtendedReport'; + +export { DrleExtendedReport } from './packets/RTCP/extendedReports/DrleExtendedReport'; +export type { DrleExtendedReportDump } from './packets/RTCP/extendedReports/DrleExtendedReport'; + +export { PrtExtendedReport } from './packets/RTCP/extendedReports/PrtExtendedReport'; +export type { PrtExtendedReportDump } from './packets/RTCP/extendedReports/PrtExtendedReport'; + +export { RrtExtendedReport } from './packets/RTCP/extendedReports/RrtExtendedReport'; +export type { RrtExtendedReportDump } from './packets/RTCP/extendedReports/RrtExtendedReport'; + +export { DlrrExtendedReport } from './packets/RTCP/extendedReports/DlrrExtendedReport'; +export type { + DlrrExtendedReportDump, + DlrrSubReport, +} from './packets/RTCP/extendedReports/DlrrExtendedReport'; + +export { SsExtendedReport } from './packets/RTCP/extendedReports/SsExtendedReport'; +export type { SsExtendedReportDump } from './packets/RTCP/extendedReports/SsExtendedReport'; + +export { VmExtendedReport } from './packets/RTCP/extendedReports/VmExtendedReport'; +export type { VmExtendedReportDump } from './packets/RTCP/extendedReports/VmExtendedReport'; + +export { EcnExtendedReport } from './packets/RTCP/extendedReports/EcnExtendedReport'; +export type { EcnExtendedReportDump } from './packets/RTCP/extendedReports/EcnExtendedReport'; + +export { GenericExtendedReport } from './packets/RTCP/extendedReports/GenericExtendedReport'; +export type { GenericExtendedReportDump } from './packets/RTCP/extendedReports/GenericExtendedReport'; + +export { + parseExtendedReportChunk, + createExtendedReportRunLengthChunk, + createExtendedReportBitVectorChunk, +} from './packets/RTCP/extendedReports/chunks'; +export type { ExtendedReportChunk } from './packets/RTCP/extendedReports/chunks'; + +export { ExtendedJitterReportsPacket } from './packets/RTCP/ExtendedJitterReportsPacket'; +export type { ExtendedJitterReportsPacketDump } from './packets/RTCP/ExtendedJitterReportsPacket'; + +export { GenericPacket } from './packets/RTCP/GenericPacket'; +export type { GenericPacketDump } from './packets/RTCP/GenericPacket'; diff --git a/src/packets/RTCP/FeedbackPacket.ts b/src/packets/RTCP/FeedbackPacket.ts index c7628fb..cc62363 100644 --- a/src/packets/RTCP/FeedbackPacket.ts +++ b/src/packets/RTCP/FeedbackPacket.ts @@ -79,39 +79,64 @@ export function getRtcpFeedbackMessageType( } function messageTypeToString( + packetType: RtcpPacketType.RTPFB | RtcpPacketType.PSFB, messageType: RtpFeedbackMessageType | PsFeedbackMessageType ): string { - switch (messageType) { - case RtpFeedbackMessageType.NACK: { - return 'Generic NACK'; - } + switch (packetType) { + case RtcpPacketType.RTPFB: { + messageType = messageType as RtpFeedbackMessageType; - case RtpFeedbackMessageType.SR_REQ: { - return 'Rapid Resynchronisation Request'; - } + switch (messageType) { + case RtpFeedbackMessageType.NACK: { + return 'Generic NACK'; + } - case RtpFeedbackMessageType.ECN: { - return 'Explicit Congestion Notification (ECN)'; - } + case RtpFeedbackMessageType.SR_REQ: { + return 'Rapid Resynchronisation Request'; + } - case PsFeedbackMessageType.PLI: { - return 'Picture Loss Indication'; - } + case RtpFeedbackMessageType.ECN: { + return 'Explicit Congestion Notification (ECN)'; + } - case PsFeedbackMessageType.SLI: { - return 'Slice Loss Indication'; - } + default: { + assertUnreachable(messageType); + } + } - case PsFeedbackMessageType.RPSI: { - return 'Reference Picture Selection Indication'; + break; } - case PsFeedbackMessageType.AFB: { - return 'Application layer FB message'; + case RtcpPacketType.PSFB: { + messageType = messageType as PsFeedbackMessageType; + + switch (messageType) { + case PsFeedbackMessageType.PLI: { + return 'Picture Loss Indication'; + } + + case PsFeedbackMessageType.SLI: { + return 'Slice Loss Indication'; + } + + case PsFeedbackMessageType.RPSI: { + return 'Reference Picture Selection Indication'; + } + + case PsFeedbackMessageType.AFB: { + return 'Application layer FB message'; + } + + default: { + assertUnreachable(messageType); + } + } + + break; } default: { - assertUnreachable(messageType); + assertUnreachable(packetType); } } } @@ -156,7 +181,7 @@ export abstract class FeedbackPacket extends RtcpPacket { throw new TypeError( `given buffer view is not a RTCP ${packetTypeToString( this.getPacketType() - )} packet with ${messageTypeToString(this.#messageType)} message type` + )} packet with ${messageTypeToString(packetType, this.#messageType)} message type` ); } } diff --git a/src/packets/RTCP/XrPacket.ts b/src/packets/RTCP/XrPacket.ts index 484a1dc..b62ad0b 100644 --- a/src/packets/RTCP/XrPacket.ts +++ b/src/packets/RTCP/XrPacket.ts @@ -4,16 +4,16 @@ import { ExtendedReportDump, getExtendedReportType, getExtendedReportLength, -} from './ExtendedReports/ExtendedReport'; -import { LrleExtendedReport } from './ExtendedReports/LrleExtendedReport'; -import { DrleExtendedReport } from './ExtendedReports/DrleExtendedReport'; -import { PrtExtendedReport } from './ExtendedReports/PrtExtendedReport'; -import { RrtExtendedReport } from './ExtendedReports/RrtExtendedReport'; -import { DlrrExtendedReport } from './ExtendedReports/DlrrExtendedReport'; -import { SsExtendedReport } from './ExtendedReports/SsExtendedReport'; -import { VmExtendedReport } from './ExtendedReports/VmExtendedReport'; -import { EcnExtendedReport } from './ExtendedReports/EcnExtendedReport'; -import { GenericExtendedReport } from './ExtendedReports/GenericExtendedReport'; +} from './extendedReports/ExtendedReport'; +import { LrleExtendedReport } from './extendedReports/LrleExtendedReport'; +import { DrleExtendedReport } from './extendedReports/DrleExtendedReport'; +import { PrtExtendedReport } from './extendedReports/PrtExtendedReport'; +import { RrtExtendedReport } from './extendedReports/RrtExtendedReport'; +import { DlrrExtendedReport } from './extendedReports/DlrrExtendedReport'; +import { SsExtendedReport } from './extendedReports/SsExtendedReport'; +import { VmExtendedReport } from './extendedReports/VmExtendedReport'; +import { EcnExtendedReport } from './extendedReports/EcnExtendedReport'; +import { GenericExtendedReport } from './extendedReports/GenericExtendedReport'; import { RtcpPacket, RtcpPacketType, diff --git a/src/packets/RTCP/ExtendedReports/DlrrExtendedReport.ts b/src/packets/RTCP/extendedReports/DlrrExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/DlrrExtendedReport.ts rename to src/packets/RTCP/extendedReports/DlrrExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/DrleExtendedReport.ts b/src/packets/RTCP/extendedReports/DrleExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/DrleExtendedReport.ts rename to src/packets/RTCP/extendedReports/DrleExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/EcnExtendedReport.ts b/src/packets/RTCP/extendedReports/EcnExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/EcnExtendedReport.ts rename to src/packets/RTCP/extendedReports/EcnExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/ExtendedReport.ts b/src/packets/RTCP/extendedReports/ExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/ExtendedReport.ts rename to src/packets/RTCP/extendedReports/ExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/GenericExtendedReport.ts b/src/packets/RTCP/extendedReports/GenericExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/GenericExtendedReport.ts rename to src/packets/RTCP/extendedReports/GenericExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/LrleExtendedReport.ts b/src/packets/RTCP/extendedReports/LrleExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/LrleExtendedReport.ts rename to src/packets/RTCP/extendedReports/LrleExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/PrtExtendedReport.ts b/src/packets/RTCP/extendedReports/PrtExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/PrtExtendedReport.ts rename to src/packets/RTCP/extendedReports/PrtExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/RrtExtendedReport.ts b/src/packets/RTCP/extendedReports/RrtExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/RrtExtendedReport.ts rename to src/packets/RTCP/extendedReports/RrtExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/SsExtendedReport.ts b/src/packets/RTCP/extendedReports/SsExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/SsExtendedReport.ts rename to src/packets/RTCP/extendedReports/SsExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/VmExtendedReport.ts b/src/packets/RTCP/extendedReports/VmExtendedReport.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/VmExtendedReport.ts rename to src/packets/RTCP/extendedReports/VmExtendedReport.ts diff --git a/src/packets/RTCP/ExtendedReports/chunks.ts b/src/packets/RTCP/extendedReports/chunks.ts similarity index 100% rename from src/packets/RTCP/ExtendedReports/chunks.ts rename to src/packets/RTCP/extendedReports/chunks.ts diff --git a/src/packets/public.ts b/src/packets/public.ts deleted file mode 100644 index 3c91823..0000000 --- a/src/packets/public.ts +++ /dev/null @@ -1,148 +0,0 @@ -/** - * @module packets - */ - -// NOTE: We need to export Serializable, otherwise TypeDoc doesn't document -// inherited methods. -export { Serializable, SerializableDump } from './Serializable'; - -export { Packet, PacketDump } from './Packet'; - -export { isRtp, RtpPacket, RtpPacketDump } from './RTP/RtpPacket'; - -export { - RtpExtensionType, - RtpExtensionMapping, - rtpExtensionUriToType, - SsrcAudioLevelExtension, - VideoOrientationExtension, - timeMsToAbsSendTime, -} from './RTP/rtpExtensions'; - -export { - isRtcp, - RtcpPacket, - RtcpPacketType, - RtcpPacketDump, -} from './RTCP/RtcpPacket'; - -export { CompoundPacket, CompoundPacketDump } from './RTCP/CompoundPacket'; - -export { - ReceiverReportPacket, - ReceiverReportPacketDump, - ReceptionReport, - ReceptionReportDump, -} from './RTCP/ReceiverReportPacket'; - -export { - SenderReportPacket, - SenderReportPacketDump, -} from './RTCP/SenderReportPacket'; - -export { ByePacket, ByePacketDump } from './RTCP/ByePacket'; - -export { - SdesPacket, - SdesPacketDump, - SdesChunk, - SdesChunkDump, - SdesItemType, -} from './RTCP/SdesPacket'; - -export { - FeedbackPacket, - RtpFeedbackMessageType, - PsFeedbackMessageType, - FeedbackPacketDump, -} from './RTCP/FeedbackPacket'; - -export { - NackPacket, - NackPacketDump, - parseNackItem, - createNackItem, -} from './RTCP/NackPacket'; - -export { SrReqPacket, SrReqPacketDump } from './RTCP/SrReqPacket'; - -export { EcnPacket, EcnPacketDump } from './RTCP/EcnPacket'; - -export { PliPacket, PliPacketDump } from './RTCP/PliPacket'; - -export { SliPacket, SliPacketDump } from './RTCP/SliPacket'; - -export { RpsiPacket, RpsiPacketDump } from './RTCP/RpsiPacket'; - -export { - GenericFeedbackPacket, - GenericFeedbackPacketDump, -} from './RTCP/GenericFeedbackPacket'; - -export { XrPacket, XrPacketDump } from './RTCP/XrPacket'; - -export { - ExtendedReport, - ExtendedReportType, - ExtendedReportDump, -} from './RTCP/ExtendedReports/ExtendedReport'; - -export { - LrleExtendedReport, - LrleExtendedReportDump, -} from './RTCP/ExtendedReports/LrleExtendedReport'; - -export { - DrleExtendedReport, - DrleExtendedReportDump, -} from './RTCP/ExtendedReports/DrleExtendedReport'; - -export { - PrtExtendedReport, - PrtExtendedReportDump, -} from './RTCP/ExtendedReports/PrtExtendedReport'; - -export { - RrtExtendedReport, - RrtExtendedReportDump, -} from './RTCP/ExtendedReports/RrtExtendedReport'; - -export { - DlrrExtendedReport, - DlrrExtendedReportDump, - DlrrSubReport, -} from './RTCP/ExtendedReports/DlrrExtendedReport'; - -export { - SsExtendedReport, - SsExtendedReportDump, -} from './RTCP/ExtendedReports/SsExtendedReport'; - -export { - VmExtendedReport, - VmExtendedReportDump, -} from './RTCP/ExtendedReports/VmExtendedReport'; - -export { - EcnExtendedReport, - EcnExtendedReportDump, -} from './RTCP/ExtendedReports/EcnExtendedReport'; - -export { - GenericExtendedReport, - GenericExtendedReportDump, -} from './RTCP/ExtendedReports/GenericExtendedReport'; - -export { - ExtendedReportChunk, - parseExtendedReportChunk, - createExtendedReportRunLengthChunk, - createExtendedReportBitVectorChunk, -} from './RTCP/ExtendedReports/chunks'; - -export { - ExtendedJitterReportsPacket, - ExtendedJitterReportsPacketDump, -} from './RTCP/ExtendedJitterReportsPacket'; - -export { GenericPacket, GenericPacketDump } from './RTCP/GenericPacket'; diff --git a/src/test/packets/RTCP/XrPacket.test.ts b/src/test/packets/RTCP/XrPacket.test.ts index 8f246ed..1b61fb7 100644 --- a/src/test/packets/RTCP/XrPacket.test.ts +++ b/src/test/packets/RTCP/XrPacket.test.ts @@ -1,19 +1,19 @@ import { XrPacket, XrPacketDump } from '../../../packets/RTCP/XrPacket'; import { isRtcp, RtcpPacketType } from '../../../packets/RTCP/RtcpPacket'; -import { ExtendedReportType } from '../../../packets/RTCP/ExtendedReports/ExtendedReport'; +import { ExtendedReportType } from '../../../packets/RTCP/extendedReports/ExtendedReport'; import { LrleExtendedReport, LrleExtendedReportDump, -} from '../../../packets/RTCP/ExtendedReports/LrleExtendedReport'; +} from '../../../packets/RTCP/extendedReports/LrleExtendedReport'; import { DlrrExtendedReport, DlrrExtendedReportDump, -} from '../../../packets/RTCP/ExtendedReports/DlrrExtendedReport'; +} from '../../../packets/RTCP/extendedReports/DlrrExtendedReport'; import { parseExtendedReportChunk, createExtendedReportRunLengthChunk, createExtendedReportBitVectorChunk, -} from '../../../packets/RTCP/ExtendedReports/chunks'; +} from '../../../packets/RTCP/extendedReports/chunks'; import { areDataViewsEqual } from '../../../utils/helpers'; const runLengthZerosChunk = 0b0010101010101010; diff --git a/src/utils/public.ts b/src/utils.ts similarity index 91% rename from src/utils/public.ts rename to src/utils.ts index ad83827..f993b44 100644 --- a/src/utils/public.ts +++ b/src/utils.ts @@ -14,4 +14,4 @@ export { arrayBufferToString, stringToDataView, getStringByteLength, -} from './helpers'; +} from './utils/helpers'; diff --git a/tsconfig.json b/tsconfig.json index 1a7d323..a3714a2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,9 +2,11 @@ "compileOnSave": true, "compilerOptions": { "lib": ["es2022"], - "target": "es2022", - "module": "commonjs", - "moduleResolution": "node", + "target": "es2024", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "allowImportingTsExtensions": true, + "rewriteRelativeImportExtensions": true, "strict": true, "outDir": "lib", "declaration": true, diff --git a/typedoc.config.mjs b/typedoc.config.mjs index eacd773..d4e714d 100644 --- a/typedoc.config.mjs +++ b/typedoc.config.mjs @@ -1,6 +1,6 @@ /** @type {Partial} */ const config = { - entryPoints: ['src/packets/public.ts', 'src/utils/public.ts'], + entryPoints: ['src/packets.ts', 'src/utils.ts'], out: 'docs', skipErrorChecking: false, excludePrivate: true,