diff --git a/README.md b/README.md index 4c0bb48..8578d62 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ ## Start Server ```sh +git submodule update --init --recursive hugo server --disableFastRender -D #D to include drafts ``` diff --git a/config.yaml b/config.yaml index d1f91fe..af49916 100644 --- a/config.yaml +++ b/config.yaml @@ -1,6 +1,6 @@ baseURL: "https://trude.dev" title: trude.dev -paginate: 5 +pagerSize: 5 theme: PaperMod copyright: "Open-source - MIT License" #canonifyURLs: true @@ -12,6 +12,10 @@ outputs: - RSS - JSON # necessary for search +ignoreFiles: + - "notes/drafts/_Templates" + - "notes/drafts/TODO.md" + taxonomies: tag: tags @@ -36,6 +40,7 @@ params: DateFormat: "January 2, 2006" defaultTheme: auto # dark, light disableThemeToggle: false + social: true ShowReadingTime: true ShowShareButtons: true @@ -79,8 +84,8 @@ params: buttons: - name: My Portfolio url: https://me.trude.dev - - name: My Knowledge Base - url: https://trude.notion.site/Trude-s-Knowledge-Base-10449cf14b4c80ff89d1f2c9541fe789?pvs=4 + - name: My Notes + url: /notes/ # home-info mode homeInfoParams: @@ -90,8 +95,6 @@ params: socialIcons: - name: email url: "mailto:ehtrude@gmail.com" - - name: matrix - url: "https://matrix.to/#/@ehtrude:matrix.org" - name: github url: "https://github.com/TrudeEH" - name: rss @@ -125,6 +128,10 @@ params: menu: main: + - identifier: notes + name: Notes + url: /notes/ + weight: 5 - identifier: categories name: Posts url: /posts/ diff --git a/content/notes/.obsidian/.DS_Store b/content/notes/.obsidian/.DS_Store new file mode 100644 index 0000000..9872521 Binary files /dev/null and b/content/notes/.obsidian/.DS_Store differ diff --git a/content/notes/.obsidian/app.json b/content/notes/.obsidian/app.json new file mode 100644 index 0000000..637902a --- /dev/null +++ b/content/notes/.obsidian/app.json @@ -0,0 +1,5 @@ +{ + "promptDelete": false, + "tabSize": 2, + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/content/notes/.obsidian/appearance.json b/content/notes/.obsidian/appearance.json new file mode 100644 index 0000000..992ecb1 --- /dev/null +++ b/content/notes/.obsidian/appearance.json @@ -0,0 +1,9 @@ +{ + "accentColor": "#f5bd5c", + "cssTheme": "Adwaita", + "interfaceFontFamily": "Adwaita Sans", + "textFontFamily": "Adwaita Sans", + "monospaceFontFamily": "Adwaita Mono", + "nativeMenus": false, + "baseFontSize": 16 +} \ No newline at end of file diff --git a/content/notes/.obsidian/community-plugins.json b/content/notes/.obsidian/community-plugins.json new file mode 100644 index 0000000..c6f6adc --- /dev/null +++ b/content/notes/.obsidian/community-plugins.json @@ -0,0 +1,7 @@ +[ + "obsidian-importer", + "obsidian-linter", + "table-editor-obsidian", + "obsidian-languagetool-plugin", + "obsidian-link-converter" +] \ No newline at end of file diff --git a/content/notes/.obsidian/core-plugins.json b/content/notes/.obsidian/core-plugins.json new file mode 100644 index 0000000..53d4d11 --- /dev/null +++ b/content/notes/.obsidian/core-plugins.json @@ -0,0 +1,31 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": true, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": true, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false, + "webviewer": false +} \ No newline at end of file diff --git a/content/notes/.obsidian/graph.json b/content/notes/.obsidian/graph.json new file mode 100644 index 0000000..2201aeb --- /dev/null +++ b/content/notes/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": false, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": false, + "colorGroups": [], + "collapse-display": false, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 0.12668834340524918, + "close": true +} \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/.DS_Store b/content/notes/.obsidian/plugins/.DS_Store new file mode 100644 index 0000000..6029eba Binary files /dev/null and b/content/notes/.obsidian/plugins/.DS_Store differ diff --git a/content/notes/.obsidian/plugins/obsidian-importer/main.js b/content/notes/.obsidian/plugins/obsidian-importer/main.js new file mode 100644 index 0000000..295585b --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-importer/main.js @@ -0,0 +1,228 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var hd=Object.create;var vi=Object.defineProperty;var gd=Object.getOwnPropertyDescriptor;var yd=Object.getOwnPropertyNames;var bd=Object.getPrototypeOf,xd=Object.prototype.hasOwnProperty;var Y=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Se=(n,t)=>{for(var e in t)vi(n,e,{get:t[e],enumerable:!0})},is=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of yd(t))!xd.call(n,r)&&r!==e&&vi(n,r,{get:()=>t[r],enumerable:!(i=gd(t,r))||i.enumerable});return n};var rs=(n,t,e)=>(e=n!=null?hd(bd(n)):{},is(t||!n||!n.__esModule?vi(e,"default",{value:n,enumerable:!0}):e,n)),wd=n=>is(vi({},"__esModule",{value:!0}),n);var Do=Y((Mx,Ml)=>{"use strict";Ml.exports=sh;function sh(n,t){for(var e=new Array(arguments.length-1),i=0,r=2,o=!0;r{"use strict";var zi=Ul;zi.length=function(t){var e=t.length;if(!e)return 0;for(var i=0;--e%4>1&&t.charAt(e)==="=";)++i;return Math.ceil(t.length*3)/4-i};var wn=new Array(64),Bl=new Array(123);for(Ye=0;Ye<64;)Bl[wn[Ye]=Ye<26?Ye+65:Ye<52?Ye+71:Ye<62?Ye-4:Ye-59|43]=Ye++;var Ye;zi.encode=function(t,e,i){for(var r=null,o=[],a=0,s=0,l;e>2],l=(c&3)<<4,s=1;break;case 1:o[a++]=wn[l|c>>4],l=(c&15)<<2,s=2;break;case 2:o[a++]=wn[l|c>>6],o[a++]=wn[c&63],s=0;break}a>8191&&((r||(r=[])).push(String.fromCharCode.apply(String,o)),a=0)}return s&&(o[a++]=wn[l],o[a++]=61,s===1&&(o[a++]=61)),r?(a&&r.push(String.fromCharCode.apply(String,o.slice(0,a))),r.join("")):String.fromCharCode.apply(String,o.slice(0,a))};var $l="invalid encoding";zi.decode=function(t,e,i){for(var r=i,o=0,a,s=0;s1)break;if((l=Bl[l])===void 0)throw Error($l);switch(o){case 0:a=l,o=1;break;case 1:e[i++]=a<<2|(l&48)>>4,a=l,o=2;break;case 2:e[i++]=(a&15)<<4|(l&60)>>2,a=l,o=3;break;case 3:e[i++]=(a&3)<<6|l,o=0;break}}if(o===1)throw Error($l);return i-r};zi.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var ql=Y((Bx,Hl)=>{"use strict";Hl.exports=Gi;function Gi(){this._listeners={}}Gi.prototype.on=function(t,e,i){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:i||this}),this};Gi.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var i=this._listeners[t],r=0;r{"use strict";Vl.exports=Wl(Wl);function Wl(n){return typeof Float32Array!="undefined"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),i=e[3]===128;function r(l,c,p){t[0]=l,c[p]=e[0],c[p+1]=e[1],c[p+2]=e[2],c[p+3]=e[3]}function o(l,c,p){t[0]=l,c[p]=e[3],c[p+1]=e[2],c[p+2]=e[1],c[p+3]=e[0]}n.writeFloatLE=i?r:o,n.writeFloatBE=i?o:r;function a(l,c){return e[0]=l[c],e[1]=l[c+1],e[2]=l[c+2],e[3]=l[c+3],t[0]}function s(l,c){return e[3]=l[c],e[2]=l[c+1],e[1]=l[c+2],e[0]=l[c+3],t[0]}n.readFloatLE=i?a:s,n.readFloatBE=i?s:a}():function(){function t(i,r,o,a){var s=r<0?1:0;if(s&&(r=-r),r===0)i(1/r>0?0:2147483648,o,a);else if(isNaN(r))i(2143289344,o,a);else if(r>34028234663852886e22)i((s<<31|2139095040)>>>0,o,a);else if(r<11754943508222875e-54)i((s<<31|Math.round(r/1401298464324817e-60))>>>0,o,a);else{var l=Math.floor(Math.log(r)/Math.LN2),c=Math.round(r*Math.pow(2,-l)*8388608)&8388607;i((s<<31|l+127<<23|c)>>>0,o,a)}}n.writeFloatLE=t.bind(null,Zl),n.writeFloatBE=t.bind(null,Yl);function e(i,r,o){var a=i(r,o),s=(a>>31)*2+1,l=a>>>23&255,c=a&8388607;return l===255?c?NaN:s*(1/0):l===0?s*1401298464324817e-60*c:s*Math.pow(2,l-150)*(c+8388608)}n.readFloatLE=e.bind(null,zl),n.readFloatBE=e.bind(null,Gl)}(),typeof Float64Array!="undefined"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),i=e[7]===128;function r(l,c,p){t[0]=l,c[p]=e[0],c[p+1]=e[1],c[p+2]=e[2],c[p+3]=e[3],c[p+4]=e[4],c[p+5]=e[5],c[p+6]=e[6],c[p+7]=e[7]}function o(l,c,p){t[0]=l,c[p]=e[7],c[p+1]=e[6],c[p+2]=e[5],c[p+3]=e[4],c[p+4]=e[3],c[p+5]=e[2],c[p+6]=e[1],c[p+7]=e[0]}n.writeDoubleLE=i?r:o,n.writeDoubleBE=i?o:r;function a(l,c){return e[0]=l[c],e[1]=l[c+1],e[2]=l[c+2],e[3]=l[c+3],e[4]=l[c+4],e[5]=l[c+5],e[6]=l[c+6],e[7]=l[c+7],t[0]}function s(l,c){return e[7]=l[c],e[6]=l[c+1],e[5]=l[c+2],e[4]=l[c+3],e[3]=l[c+4],e[2]=l[c+5],e[1]=l[c+6],e[0]=l[c+7],t[0]}n.readDoubleLE=i?a:s,n.readDoubleBE=i?s:a}():function(){function t(i,r,o,a,s,l){var c=a<0?1:0;if(c&&(a=-a),a===0)i(0,s,l+r),i(1/a>0?0:2147483648,s,l+o);else if(isNaN(a))i(0,s,l+r),i(2146959360,s,l+o);else if(a>17976931348623157e292)i(0,s,l+r),i((c<<31|2146435072)>>>0,s,l+o);else{var p;if(a<22250738585072014e-324)p=a/5e-324,i(p>>>0,s,l+r),i((c<<31|p/4294967296)>>>0,s,l+o);else{var m=Math.floor(Math.log(a)/Math.LN2);m===1024&&(m=1023),p=a*Math.pow(2,-m),i(p*4503599627370496>>>0,s,l+r),i((c<<31|m+1023<<20|p*1048576&1048575)>>>0,s,l+o)}}}n.writeDoubleLE=t.bind(null,Zl,0,4),n.writeDoubleBE=t.bind(null,Yl,4,0);function e(i,r,o,a,s){var l=i(a,s+r),c=i(a,s+o),p=(c>>31)*2+1,m=c>>>20&2047,y=4294967296*(c&1048575)+l;return m===2047?y?NaN:p*(1/0):m===0?p*5e-324*y:p*Math.pow(2,m-1075)*(y+4503599627370496)}n.readDoubleLE=e.bind(null,zl,0,4),n.readDoubleBE=e.bind(null,Gl,4,0)}(),n}function Zl(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}function Yl(n,t,e){t[e]=n>>>24,t[e+1]=n>>>16&255,t[e+2]=n>>>8&255,t[e+3]=n&255}function zl(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0}function Gl(n,t){return(n[t]<<24|n[t+1]<<16|n[t+2]<<8|n[t+3])>>>0}});var Co=Y((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(n){}return null}});var Jl=Y(Xl=>{"use strict";var Io=Xl;Io.length=function(t){for(var e=0,i=0,r=0;r191&&l<224?a[s++]=(l&31)<<6|t[e++]&63:l>239&&l<365?(l=((l&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,a[s++]=55296+(l>>10),a[s++]=56320+(l&1023)):a[s++]=(l&15)<<12|(t[e++]&63)<<6|t[e++]&63,s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,a)),s=0);return o?(s&&o.push(String.fromCharCode.apply(String,a.slice(0,s))),o.join("")):String.fromCharCode.apply(String,a.slice(0,s))};Io.write=function(t,e,i){for(var r=i,o,a,s=0;s>6|192,e[i++]=o&63|128):(o&64512)===55296&&((a=t.charCodeAt(s+1))&64512)===56320?(o=65536+((o&1023)<<10)+(a&1023),++s,e[i++]=o>>18|240,e[i++]=o>>12&63|128,e[i++]=o>>6&63|128,e[i++]=o&63|128):(e[i++]=o>>12|224,e[i++]=o>>6&63|128,e[i++]=o&63|128);return i-r}});var ec=Y((Hx,Ql)=>{"use strict";Ql.exports=lh;function lh(n,t,e){var i=e||8192,r=i>>>1,o=null,a=i;return function(l){if(l<1||l>r)return n(l);a+l>i&&(o=n(i),a=0);var c=t.call(o,a,a+=l);return a&7&&(a=(a|7)+1),c}}});var nc=Y((qx,tc)=>{"use strict";tc.exports=ge;var ei=et();function ge(n,t){this.lo=n>>>0,this.hi=t>>>0}var Jt=ge.zero=new ge(0,0);Jt.toNumber=function(){return 0};Jt.zzEncode=Jt.zzDecode=function(){return this};Jt.length=function(){return 1};var ch=ge.zeroHash="\0\0\0\0\0\0\0\0";ge.fromNumber=function(t){if(t===0)return Jt;var e=t<0;e&&(t=-t);var i=t>>>0,r=(t-i)/4294967296>>>0;return e&&(r=~r>>>0,i=~i>>>0,++i>4294967295&&(i=0,++r>4294967295&&(r=0))),new ge(i,r)};ge.from=function(t){if(typeof t=="number")return ge.fromNumber(t);if(ei.isString(t))if(ei.Long)t=ei.Long.fromString(t);else return ge.fromNumber(parseInt(t,10));return t.low||t.high?new ge(t.low>>>0,t.high>>>0):Jt};ge.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,i=~this.hi>>>0;return e||(i=i+1>>>0),-(e+i*4294967296)}return this.lo+this.hi*4294967296};ge.prototype.toLong=function(t){return ei.Long?new ei.Long(this.lo|0,this.hi|0,Boolean(t)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(t)}};var Ot=String.prototype.charCodeAt;ge.fromHash=function(t){return t===ch?Jt:new ge((Ot.call(t,0)|Ot.call(t,1)<<8|Ot.call(t,2)<<16|Ot.call(t,3)<<24)>>>0,(Ot.call(t,4)|Ot.call(t,5)<<8|Ot.call(t,6)<<16|Ot.call(t,7)<<24)>>>0)};ge.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};ge.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};ge.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};ge.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,i=this.hi>>>24;return i===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:i<128?9:10}});var et=Y(Fo=>{"use strict";var H=Fo;H.asPromise=Do();H.base64=jl();H.EventEmitter=ql();H.float=Kl();H.inquire=Co();H.utf8=Jl();H.pool=ec();H.LongBits=nc();H.isNode=Boolean(typeof global!="undefined"&&global&&global.process&&global.process.versions&&global.process.versions.node);H.global=H.isNode&&global||typeof window!="undefined"&&window||typeof self!="undefined"&&self||Fo;H.emptyArray=Object.freeze?Object.freeze([]):[];H.emptyObject=Object.freeze?Object.freeze({}):{};H.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};H.isString=function(t){return typeof t=="string"||t instanceof String};H.isObject=function(t){return t&&typeof t=="object"};H.isset=H.isSet=function(t,e){var i=t[e];return i!=null&&t.hasOwnProperty(e)?typeof i!="object"||(Array.isArray(i)?i.length:Object.keys(i).length)>0:!1};H.Buffer=function(){try{var n=H.inquire("buffer").Buffer;return n.prototype.utf8Write?n:null}catch(t){return null}}();H._Buffer_from=null;H._Buffer_allocUnsafe=null;H.newBuffer=function(t){return typeof t=="number"?H.Buffer?H._Buffer_allocUnsafe(t):new H.Array(t):H.Buffer?H._Buffer_from(t):typeof Uint8Array=="undefined"?t:new Uint8Array(t)};H.Array=typeof Uint8Array!="undefined"?Uint8Array:Array;H.Long=H.global.dcodeIO&&H.global.dcodeIO.Long||H.global.Long||H.inquire("long");H.key2Re=/^true|false|0|1$/;H.key32Re=/^-?(?:0|[1-9][0-9]*)$/;H.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;H.longToHash=function(t){return t?H.LongBits.from(t).toHash():H.LongBits.zeroHash};H.longFromHash=function(t,e){var i=H.LongBits.fromHash(t);return H.Long?H.Long.fromBits(i.lo,i.hi,e):i.toNumber(Boolean(e))};function ic(n,t,e){for(var i=Object.keys(t),r=0;r-1;--o)if(e[r[o]]===1&&this[r[o]]!==void 0&&this[r[o]]!==null)return r[o]}};H.oneOfSetter=function(t){return function(e){for(var i=0;i{"use strict";lc.exports=X;var $e=et(),Lo,Vi=$e.LongBits,oc=$e.base64,ac=$e.utf8;function ti(n,t,e){this.fn=n,this.len=t,this.next=void 0,this.val=e}function Mo(){}function ph(n){this.head=n.head,this.tail=n.tail,this.len=n.len,this.next=n.states}function X(){this.len=0,this.head=new ti(Mo,0,0),this.tail=this.head,this.states=null}var sc=function(){return $e.Buffer?function(){return(X.create=function(){return new Lo})()}:function(){return new X}};X.create=sc();X.alloc=function(t){return new $e.Array(t)};$e.Array!==Array&&(X.alloc=$e.pool(X.alloc,$e.Array.prototype.subarray));X.prototype._push=function(t,e,i){return this.tail=this.tail.next=new ti(t,e,i),this.len+=e,this};function $o(n,t,e){t[e]=n&255}function uh(n,t,e){for(;n>127;)t[e++]=n&127|128,n>>>=7;t[e]=n}function Bo(n,t){this.len=n,this.next=void 0,this.val=t}Bo.prototype=Object.create(ti.prototype);Bo.prototype.fn=uh;X.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new Bo((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};X.prototype.int32=function(t){return t<0?this._push(Uo,10,Vi.fromNumber(t)):this.uint32(t)};X.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Uo(n,t,e){for(;n.hi;)t[e++]=n.lo&127|128,n.lo=(n.lo>>>7|n.hi<<25)>>>0,n.hi>>>=7;for(;n.lo>127;)t[e++]=n.lo&127|128,n.lo=n.lo>>>7;t[e++]=n.lo}X.prototype.uint64=function(t){var e=Vi.from(t);return this._push(Uo,e.length(),e)};X.prototype.int64=X.prototype.uint64;X.prototype.sint64=function(t){var e=Vi.from(t).zzEncode();return this._push(Uo,e.length(),e)};X.prototype.bool=function(t){return this._push($o,1,t?1:0)};function Po(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}X.prototype.fixed32=function(t){return this._push(Po,4,t>>>0)};X.prototype.sfixed32=X.prototype.fixed32;X.prototype.fixed64=function(t){var e=Vi.from(t);return this._push(Po,4,e.lo)._push(Po,4,e.hi)};X.prototype.sfixed64=X.prototype.fixed64;X.prototype.float=function(t){return this._push($e.float.writeFloatLE,4,t)};X.prototype.double=function(t){return this._push($e.float.writeDoubleLE,8,t)};var fh=$e.Array.prototype.set?function(t,e,i){e.set(t,i)}:function(t,e,i){for(var r=0;r>>0;if(!e)return this._push($o,1,0);if($e.isString(t)){var i=X.alloc(e=oc.length(t));oc.decode(t,i,0),t=i}return this.uint32(e)._push(fh,e,t)};X.prototype.string=function(t){var e=ac.length(t);return e?this.uint32(e)._push(ac.write,e,t):this._push($o,1,0)};X.prototype.fork=function(){return this.states=new ph(this),this.head=this.tail=new ti(Mo,0,0),this.len=0,this};X.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new ti(Mo,0,0),this.len=0),this};X.prototype.ldelim=function(){var t=this.head,e=this.tail,i=this.len;return this.reset().uint32(i),i&&(this.tail.next=t.next,this.tail=e,this.len+=i),this};X.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),i=0;t;)t.fn(t.val,e,i),i+=t.len,t=t.next;return e};X._configure=function(n){Lo=n,X.create=sc(),Lo._configure()}});var uc=Y((Yx,pc)=>{"use strict";pc.exports=tt;var cc=Ki();(tt.prototype=Object.create(cc.prototype)).constructor=tt;var Dt=et();function tt(){cc.call(this)}tt._configure=function(){tt.alloc=Dt._Buffer_allocUnsafe,tt.writeBytesBuffer=Dt.Buffer&&Dt.Buffer.prototype instanceof Uint8Array&&Dt.Buffer.prototype.set.name==="set"?function(t,e,i){e.set(t,i)}:function(t,e,i){if(t.copy)t.copy(e,i,0,t.length);else for(var r=0;r>>0;return this.uint32(e),e&&this._push(tt.writeBytesBuffer,e,t),this};function dh(n,t,e){n.length<40?Dt.utf8.write(n,t,e):t.utf8Write?t.utf8Write(n,e):t.write(n,e)}tt.prototype.string=function(t){var e=Dt.Buffer.byteLength(t);return this.uint32(e),e&&this._push(dh,e,t),this};tt._configure()});var Ji=Y((zx,gc)=>{"use strict";gc.exports=se;var ze=et(),Ho,mc=ze.LongBits,mh=ze.utf8;function Ge(n,t){return RangeError("index out of range: "+n.pos+" + "+(t||1)+" > "+n.len)}function se(n){this.buf=n,this.pos=0,this.len=n.length}var fc=typeof Uint8Array!="undefined"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new se(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new se(t);throw Error("illegal buffer")},hc=function(){return ze.Buffer?function(e){return(se.create=function(r){return ze.Buffer.isBuffer(r)?new Ho(r):fc(r)})(e)}:fc};se.create=hc();se.prototype._slice=ze.Array.prototype.subarray||ze.Array.prototype.slice;se.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ge(this,10);return t}}();se.prototype.int32=function(){return this.uint32()|0};se.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function jo(){var n=new mc(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(n.lo=(n.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return n;if(n.lo=(n.lo|(this.buf[this.pos]&127)<<28)>>>0,n.hi=(n.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return n;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Ge(this);if(n.lo=(n.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return n}return n.lo=(n.lo|(this.buf[this.pos++]&127)<>>0,n}if(this.len-this.pos>4){for(;t<5;++t)if(n.hi=(n.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return n}else for(;t<5;++t){if(this.pos>=this.len)throw Ge(this);if(n.hi=(n.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return n}throw Error("invalid varint encoding")}se.prototype.bool=function(){return this.uint32()!==0};function Xi(n,t){return(n[t-4]|n[t-3]<<8|n[t-2]<<16|n[t-1]<<24)>>>0}se.prototype.fixed32=function(){if(this.pos+4>this.len)throw Ge(this,4);return Xi(this.buf,this.pos+=4)};se.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Ge(this,4);return Xi(this.buf,this.pos+=4)|0};function dc(){if(this.pos+8>this.len)throw Ge(this,8);return new mc(Xi(this.buf,this.pos+=4),Xi(this.buf,this.pos+=4))}se.prototype.float=function(){if(this.pos+4>this.len)throw Ge(this,4);var t=ze.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};se.prototype.double=function(){if(this.pos+8>this.len)throw Ge(this,4);var t=ze.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};se.prototype.bytes=function(){var t=this.uint32(),e=this.pos,i=this.pos+t;if(i>this.len)throw Ge(this,t);if(this.pos+=t,Array.isArray(this.buf))return this.buf.slice(e,i);if(e===i){var r=ze.Buffer;return r?r.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,e,i)};se.prototype.string=function(){var t=this.bytes();return mh.read(t,0,t.length)};se.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ge(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ge(this);while(this.buf[this.pos++]&128);return this};se.prototype.skipType=function(n){switch(n){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(n=this.uint32()&7)!==4;)this.skipType(n);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+n+" at offset "+this.pos)}return this};se._configure=function(n){Ho=n,se.create=hc(),Ho._configure();var t=ze.Long?"toLong":"toNumber";ze.merge(se.prototype,{int64:function(){return jo.call(this)[t](!1)},uint64:function(){return jo.call(this)[t](!0)},sint64:function(){return jo.call(this).zzDecode()[t](!1)},fixed64:function(){return dc.call(this)[t](!0)},sfixed64:function(){return dc.call(this)[t](!1)}})}});var wc=Y((Gx,xc)=>{"use strict";xc.exports=Qt;var bc=Ji();(Qt.prototype=Object.create(bc.prototype)).constructor=Qt;var yc=et();function Qt(n){bc.call(this,n)}Qt._configure=function(){yc.Buffer&&(Qt.prototype._slice=yc.Buffer.prototype.slice)};Qt.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};Qt._configure()});var Ec=Y((Vx,vc)=>{"use strict";vc.exports=ni;var qo=et();(ni.prototype=Object.create(qo.EventEmitter.prototype)).constructor=ni;function ni(n,t,e){if(typeof n!="function")throw TypeError("rpcImpl must be a function");qo.EventEmitter.call(this),this.rpcImpl=n,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(e)}ni.prototype.rpcCall=function n(t,e,i,r,o){if(!r)throw TypeError("request must be specified");var a=this;if(!o)return qo.asPromise(n,a,t,e,i,r);if(!a.rpcImpl){setTimeout(function(){o(Error("already ended"))},0);return}try{return a.rpcImpl(t,e[a.requestDelimited?"encodeDelimited":"encode"](r).finish(),function(l,c){if(l)return a.emit("error",l,t),o(l);if(c===null){a.end(!0);return}if(!(c instanceof i))try{c=i[a.responseDelimited?"decodeDelimited":"decode"](c)}catch(p){return a.emit("error",p,t),o(p)}return a.emit("data",c,t),o(null,c)})}catch(s){a.emit("error",s,t),setTimeout(function(){o(s)},0);return}};ni.prototype.end=function(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var Wo=Y(_c=>{"use strict";var hh=_c;hh.Service=Ec()});var Zo=Y((Xx,Tc)=>{"use strict";Tc.exports={}});var Nc=Y(kc=>{"use strict";var Oe=kc;Oe.build="minimal";Oe.Writer=Ki();Oe.BufferWriter=uc();Oe.Reader=Ji();Oe.BufferReader=wc();Oe.util=et();Oe.rpc=Wo();Oe.roots=Zo();Oe.configure=Ac;function Ac(){Oe.util._configure(),Oe.Writer._configure(Oe.BufferWriter),Oe.Reader._configure(Oe.BufferReader)}Ac()});var Rc=Y((Qx,Sc)=>{"use strict";Sc.exports=Yo;function Yo(n,t){typeof n=="string"&&(t=n,n=void 0);var e=[];function i(o){if(typeof o!="string"){var a=r();if(Yo.verbose&&console.log("codegen: "+a),a="return "+a,o){for(var s=Object.keys(o),l=new Array(s.length+1),c=new Array(s.length),p=0;p{"use strict";Oc.exports=ii;var gh=Do(),yh=Co(),zo=yh("fs");function ii(n,t,e){return typeof t=="function"?(e=t,t={}):t||(t={}),e?!t.xhr&&zo&&zo.readFile?zo.readFile(n,function(r,o){return r&&typeof XMLHttpRequest!="undefined"?ii.xhr(n,t,e):r?e(r):e(null,t.binary?o:o.toString("utf8"))}):ii.xhr(n,t,e):gh(ii,this,n,t)}ii.xhr=function(t,e,i){var r=new XMLHttpRequest;r.onreadystatechange=function(){if(r.readyState===4){if(r.status!==0&&r.status!==200)return i(Error("status "+r.status));if(e.binary){var a=r.response;if(!a){a=[];for(var s=0;s{"use strict";var Vo=Ic,Cc=Vo.isAbsolute=function(t){return/^(?:\/|\w+:)/.test(t)},Go=Vo.normalize=function(t){t=t.replace(/\\/g,"/").replace(/\/{2,}/g,"/");var e=t.split("/"),i=Cc(t),r="";i&&(r=e.shift()+"/");for(var o=0;o0&&e[o-1]!==".."?e.splice(--o,2):i?e.splice(o,1):++o:e[o]==="."?e.splice(o,1):++o;return r+e.join("/")};Vo.resolve=function(t,e,i){return i||(e=Go(e)),Cc(e)?e:(i||(t=Go(t)),(t=t.replace(/(?:\/|^)[^/]+$/,"")).length?Go(t+"/"+e):e)}});var en=Y(Lc=>{"use strict";var ri=Lc,bh=ye(),xh=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function oi(n,t){var e=0,i={};for(t|=0;e{"use strict";$c.exports=Be;var Qi=tn();((Be.prototype=Object.create(Qi.prototype)).constructor=Be).className="Field";var Pc=Ve(),Mc=en(),pe=ye(),Ko,wh=/^required|optional|repeated$/;Be.fromJSON=function(t,e){return new Be(t,e.id,e.type,e.rule,e.extend,e.options,e.comment)};function Be(n,t,e,i,r,o,a){if(pe.isObject(i)?(a=r,o=i,i=r=void 0):pe.isObject(r)&&(a=o,o=r,r=void 0),Qi.call(this,n,o),!pe.isInteger(t)||t<0)throw TypeError("id must be a non-negative integer");if(!pe.isString(e))throw TypeError("type must be a string");if(i!==void 0&&!wh.test(i=i.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(r!==void 0&&!pe.isString(r))throw TypeError("extend must be a string");i==="proto3_optional"&&(i="optional"),this.rule=i&&i!=="optional"?i:void 0,this.type=e,this.id=t,this.extend=r||void 0,this.required=i==="required",this.optional=!this.required,this.repeated=i==="repeated",this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=pe.Long?Mc.long[e]!==void 0:!1,this.bytes=e==="bytes",this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=a}Object.defineProperty(Be.prototype,"packed",{get:function(){return this._packed===null&&(this._packed=this.getOption("packed")!==!1),this._packed}});Be.prototype.setOption=function(t,e,i){return t==="packed"&&(this._packed=null),Qi.prototype.setOption.call(this,t,e,i)};Be.prototype.toJSON=function(t){var e=t?Boolean(t.keepComments):!1;return pe.toObject(["rule",this.rule!=="optional"&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",e?this.comment:void 0])};Be.prototype.resolve=function(){if(this.resolved)return this;if((this.typeDefault=Mc.defaults[this.type])===void 0?(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof Ko?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]):this.options&&this.options.proto3_optional&&(this.typeDefault=null),this.options&&this.options.default!=null&&(this.typeDefault=this.options.default,this.resolvedType instanceof Pc&&typeof this.typeDefault=="string"&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&((this.options.packed===!0||this.options.packed!==void 0&&this.resolvedType&&!(this.resolvedType instanceof Pc))&&delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=pe.Long.fromNumber(this.typeDefault,this.type.charAt(0)==="u"),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&typeof this.typeDefault=="string"){var t;pe.base64.test(this.typeDefault)?pe.base64.decode(this.typeDefault,t=pe.newBuffer(pe.base64.length(this.typeDefault)),0):pe.utf8.write(this.typeDefault,t=pe.newBuffer(pe.utf8.length(this.typeDefault)),0),this.typeDefault=t}return this.map?this.defaultValue=pe.emptyObject:this.repeated?this.defaultValue=pe.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof Ko&&(this.parent.ctor.prototype[this.name]=this.defaultValue),Qi.prototype.resolve.call(this)};Be.d=function(t,e,i,r){return typeof e=="function"?e=pe.decorateType(e).name:e&&typeof e=="object"&&(e=pe.decorateEnum(e).name),function(a,s){pe.decorateType(a.constructor).add(new Be(s,t,e,i,{default:r}))}};Be._configure=function(t){Ko=t}});var vn=Y((rw,jc)=>{"use strict";jc.exports=Ue;var tr=tn();((Ue.prototype=Object.create(tr.prototype)).constructor=Ue).className="OneOf";var Bc=Ct(),er=ye();function Ue(n,t,e,i){if(Array.isArray(t)||(e=t,t=void 0),tr.call(this,n,e),!(t===void 0||Array.isArray(t)))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=i}Ue.fromJSON=function(t,e){return new Ue(t,e.oneof,e.options,e.comment)};Ue.prototype.toJSON=function(t){var e=t?Boolean(t.keepComments):!1;return er.toObject(["options",this.options,"oneof",this.oneof,"comment",e?this.comment:void 0])};function Uc(n){if(n.parent)for(var t=0;t-1&&this.oneof.splice(e,1),t.partOf=null,this};Ue.prototype.onAdd=function(t){tr.prototype.onAdd.call(this,t);for(var e=this,i=0;i{"use strict";Zc.exports=J;var Xo=tn();((J.prototype=Object.create(Xo.prototype)).constructor=J).className="Namespace";var Hc=Ct(),nr=ye(),vh=vn(),En,ai,_n;J.fromJSON=function(t,e){return new J(t,e.options).addJSON(e.nested)};function qc(n,t){if(n&&n.length){for(var e={},i=0;ie)return!0}return!1};J.isReservedName=function(t,e){if(t){for(var i=0;i0;){var r=t.shift();if(i.nested&&i.nested[r]){if(i=i.nested[r],!(i instanceof J))throw Error("path conflicts with non-namespace objects")}else i.add(i=new J(r))}return e&&i.addJSON(e),i};J.prototype.resolveAll=function(){for(var t=this.nestedArray,e=0;e-1)return r}else if(r instanceof J&&(r=r.lookup(t.slice(1),e,!0)))return r}else for(var o=0;o{"use strict";Yc.exports=dt;var Jo=Ct();((dt.prototype=Object.create(Jo.prototype)).constructor=dt).className="MapField";var Eh=en(),si=ye();function dt(n,t,e,i,r,o){if(Jo.call(this,n,t,i,void 0,void 0,r,o),!si.isString(e))throw TypeError("keyType must be a string");this.keyType=e,this.resolvedKeyType=null,this.map=!0}dt.fromJSON=function(t,e){return new dt(t,e.id,e.keyType,e.type,e.options,e.comment)};dt.prototype.toJSON=function(t){var e=t?Boolean(t.keepComments):!1;return si.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",e?this.comment:void 0])};dt.prototype.resolve=function(){if(this.resolved)return this;if(Eh.mapKey[this.keyType]===void 0)throw Error("invalid key type: "+this.keyType);return Jo.prototype.resolve.call(this)};dt.d=function(t,e,i){return typeof i=="function"?i=si.decorateType(i).name:i&&typeof i=="object"&&(i=si.decorateEnum(i).name),function(o,a){si.decorateType(o.constructor).add(new dt(a,t,e,i))}}});var rr=Y((sw,zc)=>{"use strict";zc.exports=nn;var Qo=tn();((nn.prototype=Object.create(Qo.prototype)).constructor=nn).className="Method";var An=ye();function nn(n,t,e,i,r,o,a,s,l){if(An.isObject(r)?(a=r,r=o=void 0):An.isObject(o)&&(a=o,o=void 0),!(t===void 0||An.isString(t)))throw TypeError("type must be a string");if(!An.isString(e))throw TypeError("requestType must be a string");if(!An.isString(i))throw TypeError("responseType must be a string");Qo.call(this,n,a),this.type=t||"rpc",this.requestType=e,this.requestStream=r?!0:void 0,this.responseType=i,this.responseStream=o?!0:void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=s,this.parsedOptions=l}nn.fromJSON=function(t,e){return new nn(t,e.type,e.requestType,e.responseType,e.requestStream,e.responseStream,e.options,e.comment,e.parsedOptions)};nn.prototype.toJSON=function(t){var e=t?Boolean(t.keepComments):!1;return An.toObject(["type",this.type!=="rpc"&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",e?this.comment:void 0,"parsedOptions",this.parsedOptions])};nn.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),Qo.prototype.resolve.call(this))}});var or=Y((lw,Vc)=>{"use strict";Vc.exports=je;var It=Tn();((je.prototype=Object.create(It.prototype)).constructor=je).className="Service";var ea=rr(),li=ye(),_h=Wo();function je(n,t){It.call(this,n,t),this.methods={},this._methodsArray=null}je.fromJSON=function(t,e){var i=new je(t,e.options);if(e.methods)for(var r=Object.keys(e.methods),o=0;o{"use strict";Kc.exports=nt;var Th=et();function nt(n){if(n)for(var t=Object.keys(n),e=0;e{"use strict";Jc.exports=Nh;var Ah=Ve(),mt=en(),Xc=ye();function kh(n){return"missing required '"+n.name+"'"}function Nh(n){var t=Xc.codegen(["r","l"],n.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(n.fieldsArray.filter(function(s){return s.map}).length?",k,value":""))("while(r.pos>>3){");for(var e=0;e>>3){")("case 1: k=r.%s(); break",i.keyType)("case 2:"),mt.basic[r]===void 0?t("value=types[%i].decode(r,r.uint32())",e):t("value=r.%s()",r),t("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),mt.long[i.keyType]!==void 0?t('%s[typeof k==="object"?util.longToHash(k):k]=value',o):t("%s[k]=value",o)):i.repeated?(t("if(!(%s&&%s.length))",o,o)("%s=[]",o),mt.packed[r]!==void 0&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos{"use strict";Qc.exports=Oh;var Sh=Ve(),na=ye();function He(n,t){return n.name+": "+t+(n.repeated&&t!=="array"?"[]":n.map&&t!=="object"?"{k:"+n.keyType+"}":"")+" expected"}function ia(n,t,e,i){if(t.resolvedType)if(t.resolvedType instanceof Sh){n("switch(%s){",i)("default:")("return%j",He(t,"enum value"));for(var r=Object.keys(t.resolvedType.values),o=0;o{"use strict";var ep=tp,ci=Ve(),it=ye();function oa(n,t,e,i){var r=!1;if(t.resolvedType)if(t.resolvedType instanceof ci){n("switch(d%s){",i);for(var o=t.resolvedType.values,a=Object.keys(o),s=0;s>>0",i,i);break;case"int32":case"sint32":case"sfixed32":n("m%s=d%s|0",i,i);break;case"uint64":l=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":n("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",i,i,l)('else if(typeof d%s==="string")',i)("m%s=parseInt(d%s,10)",i,i)('else if(typeof d%s==="number")',i)("m%s=d%s",i,i)('else if(typeof d%s==="object")',i)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",i,i,i,l?"true":"");break;case"bytes":n('if(typeof d%s==="string")',i)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",i,i,i)("else if(d%s.length >= 0)",i)("m%s=d%s",i,i);break;case"string":n("m%s=String(d%s)",i,i);break;case"bool":n("m%s=Boolean(d%s)",i,i);break}}return n}ep.fromObject=function(t){var e=t.fieldsArray,i=it.codegen(["d"],t.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!e.length)return i("return new this.ctor");i("var m=new this.ctor");for(var r=0;r>>0,m%s.high>>>0).toNumber(%s):m%s",i,i,i,i,r?"true":"",i);break;case"bytes":n("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",i,i,i,i,i);break;default:n("d%s=m%s",i,i);break}}return n}ep.toObject=function(t){var e=t.fieldsArray.slice().sort(it.compareFieldsById);if(!e.length)return it.codegen()("return {}");for(var i=it.codegen(["m","o"],t.name+"$toObject")("if(!o)")("o={}")("var d={}"),r=[],o=[],a=[],s=0;s{"use strict";var Dh=np,Ch=ar();Dh[".google.protobuf.Any"]={fromObject:function(n){if(n&&n["@type"]){var t=n["@type"].substring(n["@type"].lastIndexOf("/")+1),e=this.lookup(t);if(e){var i=n["@type"].charAt(0)==="."?n["@type"].slice(1):n["@type"];return i.indexOf("/")===-1&&(i="/"+i),this.create({type_url:i,value:e.encode(e.fromObject(n)).finish()})}}return this.fromObject(n)},toObject:function(n,t){var e="type.googleapis.com/",i="",r="";if(t&&t.json&&n.type_url&&n.value){r=n.type_url.substring(n.type_url.lastIndexOf("/")+1),i=n.type_url.substring(0,n.type_url.lastIndexOf("/")+1);var o=this.lookup(r);o&&(n=o.decode(n.value))}if(!(n instanceof this.ctor)&&n instanceof Ch){var a=n.$type.toObject(n,t),s=n.$type.fullName[0]==="."?n.$type.fullName.slice(1):n.$type.fullName;return i===""&&(i=e),r=i+s,a["@type"]=r,a}return this.toObject(n,t)}}});var cr=Y((mw,rp)=>{"use strict";rp.exports=ne;var Ke=Tn();((ne.prototype=Object.create(Ke.prototype)).constructor=ne).className="Type";var Ih=Ve(),ua=vn(),sr=Ct(),Fh=ir(),Lh=or(),ca=ar(),pa=Ji(),Ph=Ki(),ve=ye(),Mh=fa(),$h=ta(),Bh=ra(),ip=sa(),Uh=la();function ne(n,t){Ke.call(this,n,t),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}Object.defineProperties(ne.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var n=Object.keys(this.fields),t=0;t{"use strict";cp.exports=Ce;var ur=Tn();((Ce.prototype=Object.create(ur.prototype)).constructor=Ce).className="Root";var ma=Ct(),ap=Ve(),jh=vn(),Ft=ye(),sp,da,pi;function Ce(n){ur.call(this,"",n),this.deferred=[],this.files=[]}Ce.fromJSON=function(t,e){return e||(e=new Ce),t.options&&e.setOptions(t.options),e.addJSON(t.nested)};Ce.prototype.resolvePath=Ft.path.resolve;Ce.prototype.fetch=Ft.fetch;function lp(){}Ce.prototype.load=function n(t,e,i){typeof e=="function"&&(i=e,e=void 0);var r=this;if(!i)return Ft.asPromise(n,r,t,e);var o=i===lp;function a(w,E){if(i){var d=i;if(i=null,o)throw w;d(w,E)}}function s(w){var E=w.lastIndexOf("google/protobuf/");if(E>-1){var d=w.substring(E);if(d in pi)return d}return null}function l(w,E){try{if(Ft.isString(E)&&E.charAt(0)==="{"&&(E=JSON.parse(E)),!Ft.isString(E))r.setOptions(E.options).addJSON(E.nested);else{da.filename=w;var d=da(E,r,e),f,g=0;if(d.imports)for(;g-1)){if(r.files.push(w),w in pi){o?l(w,pi[w]):(++p,setTimeout(function(){--p,l(w,pi[w])}));return}if(o){var d;try{d=Ft.fs.readFileSync(w).toString("utf8")}catch(f){E||a(f);return}l(w,d)}else++p,r.fetch(w,function(f,g){if(--p,!!i){if(f){E?p||a(null,r):a(f);return}l(w,g)}})}}var p=0;Ft.isString(t)&&(t=[t]);for(var m=0,y;m-1&&this.deferred.splice(e,1)}}else if(t instanceof ap)pr.test(t.name)&&delete t.parent[t.name];else if(t instanceof ur){for(var i=0;i{"use strict";var le=up.exports=et(),pp=Zo(),ha,ga;le.codegen=Rc();le.fetch=Dc();le.path=Fc();le.fs=le.inquire("fs");le.toArray=function(t){if(t){for(var e=Object.keys(t),i=new Array(e.length),r=0;r0)o[l]=r(o[l]||{},a,s);else{var c=o[l];c&&(s=[].concat(c).concat(s)),o[l]=s}return o}if(typeof t!="object")throw TypeError("dst must be an object");if(!e)throw TypeError("path must be specified");return e=e.split("."),r(t,e,i)};Object.defineProperty(le,"decorateRoot",{get:function(){return pp.decorated||(pp.decorated=new(fr()))}})});var tn=Y((yw,fp)=>{"use strict";fp.exports=Ie;Ie.className="ReflectionObject";var dr=ye(),mr;function Ie(n,t){if(!dr.isString(n))throw TypeError("name must be a string");if(t&&!dr.isObject(t))throw TypeError("options must be an object");this.options=t,this.parsedOptions=null,this.name=n,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(Ie.prototype,{root:{get:function(){for(var n=this;n.parent!==null;)n=n.parent;return n}},fullName:{get:function(){for(var n=[this.name],t=this.parent;t;)n.unshift(t.name),t=t.parent;return n.join(".")}}});Ie.prototype.toJSON=function(){throw Error()};Ie.prototype.onAdd=function(t){this.parent&&this.parent!==t&&this.parent.remove(this),this.parent=t,this.resolved=!1;var e=t.root;e instanceof mr&&e._handleAdd(this)};Ie.prototype.onRemove=function(t){var e=t.root;e instanceof mr&&e._handleRemove(this),this.parent=null,this.resolved=!1};Ie.prototype.resolve=function(){return this.resolved?this:(this.root instanceof mr&&(this.resolved=!0),this)};Ie.prototype.getOption=function(t){if(this.options)return this.options[t]};Ie.prototype.setOption=function(t,e,i){return(!i||!this.options||this.options[t]===void 0)&&((this.options||(this.options={}))[t]=e),this};Ie.prototype.setParsedOption=function(t,e,i){this.parsedOptions||(this.parsedOptions=[]);var r=this.parsedOptions;if(i){var o=r.find(function(l){return Object.prototype.hasOwnProperty.call(l,t)});if(o){var a=o[t];dr.setProperty(a,i,e)}else o={},o[t]=dr.setProperty({},i,e),r.push(o)}else{var s={};s[t]=e,r.push(s)}return this};Ie.prototype.setOptions=function(t,e){if(t)for(var i=Object.keys(t),r=0;r{"use strict";hp.exports=rt;var dp=tn();((rt.prototype=Object.create(dp.prototype)).constructor=rt).className="Enum";var mp=Tn(),hr=ye();function rt(n,t,e,i,r,o){if(dp.call(this,n,e),t&&typeof t!="object")throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=i,this.comments=r||{},this.valuesOptions=o,this.reserved=void 0,t)for(var a=Object.keys(t),s=0;s{"use strict";yp.exports=zh;var Yh=Ve(),ya=en(),ba=ye();function gp(n,t,e,i){return t.resolvedType.group?n("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",e,i,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):n("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",e,i,(t.id<<3|2)>>>0)}function zh(n){for(var t=ba.codegen(["m","w"],n.name+"$encode")("if(!w)")("w=Writer.create()"),e,i,r=n.fieldsArray.slice().sort(ba.compareFieldsById),e=0;e>>0,8|ya.mapKey[o.keyType],o.keyType),l===void 0?t("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",a,i):t(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|l,s,i),t("}")("}")):o.repeated?(t("if(%s!=null&&%s.length){",i,i),o.packed&&ya.packed[s]!==void 0?t("w.uint32(%i).fork()",(o.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",i)("w.%s(%s[i])",s,i)("w.ldelim()"):(t("for(var i=0;i<%s.length;++i)",i),l===void 0?gp(t,o,a,i+"[i]"):t("w.uint32(%i).%s(%s[i])",(o.id<<3|l)>>>0,s,i)),t("}")):(o.optional&&t("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",i,o.name),l===void 0?gp(t,o,a,i):t("w.uint32(%i).%s(%s)",(o.id<<3|l)>>>0,s,i))}return t("return w")}});var xp=Y((ww,bp)=>{"use strict";var V=bp.exports=Nc();V.build="light";function Gh(n,t,e){return typeof t=="function"?(e=t,t=new V.Root):t||(t=new V.Root),t.load(n,e)}V.load=Gh;function Vh(n,t){return t||(t=new V.Root),t.loadSync(n)}V.loadSync=Vh;V.encoder=fa();V.decoder=ta();V.verifier=ra();V.converter=sa();V.ReflectionObject=tn();V.Namespace=Tn();V.Root=fr();V.Enum=Ve();V.Type=cr();V.Field=Ct();V.OneOf=vn();V.MapField=ir();V.Service=or();V.Method=rr();V.Message=ar();V.wrappers=la();V.types=en();V.util=ye();V.ReflectionObject._configure(V.Root);V.Namespace._configure(V.Type,V.Service,V.Enum);V.Root._configure(V.Type);V.Field._configure(V.Type)});var wa=Y((vw,Ep)=>{"use strict";Ep.exports=vp;var xa=/[\s{}=;:[\],'"()<>]/g,Kh=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,Xh=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,Jh=/^ *[*/]+ */,Qh=/^\s*\*?\/*/,eg=/\n/g,tg=/\s/,ng=/\\(.?)/g,ig={0:"\0",r:"\r",n:` +`,t:" "};function wp(n){return n.replace(ng,function(t,e){switch(e){case"\\":case"":return e;default:return ig[e]||""}})}vp.unescape=wp;function vp(n,t){n=n.toString();var e=0,i=n.length,r=1,o=0,a={},s=[],l=null;function c(A){return Error("illegal "+A+" (line "+r+")")}function p(){var A=l==="'"?Xh:Kh;A.lastIndex=e-1;var D=A.exec(n);if(!D)throw c("string");return e=A.lastIndex,f(l),l=null,wp(D[1])}function m(A){return n.charAt(A)}function y(A,D,T){var k={type:n.charAt(A++),lineEmpty:!1,leading:T},b;t?b=2:b=3;var C=A-b,O;do if(--C<0||(O=n.charAt(C))===` +`){k.lineEmpty=!0;break}while(O===" "||O===" ");for(var S=n.substring(A,D).split(eg),M=0;M0)return s.shift();if(l)return p();var A,D,T,k,b,C=e===0;do{if(e===i)return null;for(A=!1;tg.test(T=m(e));)if(T===` +`&&(C=!0,++r),++e===i)return null;if(m(e)==="/"){if(++e===i)throw c("comment");if(m(e)==="/")if(t){if(k=e,b=!1,w(e-1)){b=!0;do if(e=E(e),e===i||(e++,!C))break;while(w(e))}else e=Math.min(i,E(e)+1);b&&(y(k,e,C),C=!0),r++,A=!0}else{for(b=m(k=e+1)==="/";m(++e)!==` +`;)if(e===i)return null;++e,b&&(y(k,e-1,C),C=!0),++r,A=!0}else if((T=m(e))==="*"){k=e+1,b=t||m(k)==="*";do{if(T===` +`&&++r,++e===i)throw c("comment");D=T,T=m(e)}while(D!=="*"||T!=="/");++e,b&&(y(k,e-2,C),C=!0),A=!0}else return"/"}}while(A);var O=e;xa.lastIndex=0;var S=xa.test(m(O++));if(!S)for(;O{"use strict";Np.exports=ht;ht.filename=null;ht.defaults={keepCase:!1};var rg=wa(),_p=fr(),Tp=cr(),Ap=Ct(),og=ir(),kp=vn(),ag=Ve(),sg=or(),lg=rr(),va=en(),Ea=ye(),cg=/^[1-9][0-9]*$/,pg=/^-?[1-9][0-9]*$/,ug=/^0[x][0-9a-fA-F]+$/,fg=/^-?0[x][0-9a-fA-F]+$/,dg=/^0[0-7]+$/,mg=/^-?0[0-7]+$/,hg=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,ot=/^[a-zA-Z_][a-zA-Z_0-9]*$/,at=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,gg=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function ht(n,t,e){t instanceof _p||(e=t,t=new _p),e||(e=ht.defaults);var i=e.preferTrailingComment||!1,r=rg(n,e.alternateCommentMode||!1),o=r.next,a=r.push,s=r.peek,l=r.skip,c=r.cmnt,p=!0,m,y,w,E,d=!1,f=t,g=e.keepCase?function(x){return x}:Ea.camelCase;function v(x,N,I){var P=ht.filename;return I||(ht.filename=null),Error("illegal "+(N||"token")+" '"+x+"' ("+(P?P+", ":"")+"line "+r.line+")")}function _(){var x=[],N;do{if((N=o())!=='"'&&N!=="'")throw v(N);x.push(o()),l(N),N=s()}while(N==='"'||N==="'");return x.join("")}function A(x){var N=o();switch(N){case"'":case'"':return a(N),_();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return T(N,!0)}catch(I){if(x&&at.test(N))return N;throw v(N,"value")}}function D(x,N){var I,P;do N&&((I=s())==='"'||I==="'")?x.push(_()):x.push([P=k(o()),l("to",!0)?k(o()):P]);while(l(",",!0));l(";")}function T(x,N){var I=1;switch(x.charAt(0)==="-"&&(I=-1,x=x.substring(1)),x){case"inf":case"INF":case"Inf":return I*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(cg.test(x))return I*parseInt(x,10);if(ug.test(x))return I*parseInt(x,16);if(dg.test(x))return I*parseInt(x,8);if(hg.test(x))return I*parseFloat(x);throw v(x,"number",N)}function k(x,N){switch(x){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!N&&x.charAt(0)==="-")throw v(x,"id");if(pg.test(x))return parseInt(x,10);if(fg.test(x))return parseInt(x,16);if(mg.test(x))return parseInt(x,8);throw v(x,"id")}function b(){if(m!==void 0)throw v("package");if(m=o(),!at.test(m))throw v(m,"name");f=f.define(m),l(";")}function C(){var x=s(),N;switch(x){case"weak":N=w||(w=[]),o();break;case"public":o();default:N=y||(y=[]);break}x=_(),l(";"),N.push(x)}function O(){if(l("="),E=_(),d=E==="proto3",!d&&E!=="proto2")throw v(E,"syntax");l(";")}function S(x,N){switch(N){case"option":return U(x,N),l(";"),!0;case"message":return L(x,N),!0;case"enum":return z(x,N),!0;case"service":return pn(x,N),!0;case"extend":return u(x,N),!0}return!1}function M(x,N,I){var P=r.line;if(x&&(typeof x.comment!="string"&&(x.comment=c()),x.filename=ht.filename),l("{",!0)){for(var $;($=o())!=="}";)N($);l(";",!0)}else I&&I(),l(";"),x&&(typeof x.comment!="string"||i)&&(x.comment=c(P)||x.comment)}function L(x,N){if(!ot.test(N=o()))throw v(N,"type name");var I=new Tp(N);M(I,function($){if(!S(I,$))switch($){case"map":F(I,$);break;case"required":case"repeated":j(I,$);break;case"optional":d?j(I,"proto3_optional"):j(I,"optional");break;case"oneof":ee(I,$);break;case"extensions":D(I.extensions||(I.extensions=[]));break;case"reserved":D(I.reserved||(I.reserved=[]),!0);break;default:if(!d||!at.test($))throw v($);a($),j(I,"optional");break}}),x.add(I)}function j(x,N,I){var P=o();if(P==="group"){Z(x,N);return}for(;P.endsWith(".")||s().startsWith(".");)P+=o();if(!at.test(P))throw v(P,"type");var $=o();if(!ot.test($))throw v($,"name");$=g($),l("=");var W=new Ap($,k(o()),P,N,I);if(M(W,function(oe){if(oe==="option")U(W,oe),l(";");else throw v(oe)},function(){lt(W)}),N==="proto3_optional"){var ie=new kp("_"+$);W.setOption("proto3_optional",!0),ie.add(W),x.add(ie)}else x.add(W);!d&&W.repeated&&(va.packed[P]!==void 0||va.basic[P]===void 0)&&W.setOption("packed",!1,!0)}function Z(x,N){var I=o();if(!ot.test(I))throw v(I,"name");var P=Ea.lcFirst(I);I===P&&(I=Ea.ucFirst(I)),l("=");var $=k(o()),W=new Tp(I);W.group=!0;var ie=new Ap(P,$,I,N);ie.filename=ht.filename,M(W,function(oe){switch(oe){case"option":U(W,oe),l(";");break;case"required":case"repeated":j(W,oe);break;case"optional":d?j(W,"proto3_optional"):j(W,"optional");break;case"message":L(W,oe);break;case"enum":z(W,oe);break;default:throw v(oe)}}),x.add(W).add(ie)}function F(x){l("<");var N=o();if(va.mapKey[N]===void 0)throw v(N,"type");l(",");var I=o();if(!at.test(I))throw v(I,"type");l(">");var P=o();if(!ot.test(P))throw v(P,"name");l("=");var $=new og(g(P),k(o()),N,I);M($,function(ie){if(ie==="option")U($,ie),l(";");else throw v(ie)},function(){lt($)}),x.add($)}function ee(x,N){if(!ot.test(N=o()))throw v(N,"name");var I=new kp(g(N));M(I,function($){$==="option"?(U(I,$),l(";")):(a($),j(I,"optional"))}),x.add(I)}function z(x,N){if(!ot.test(N=o()))throw v(N,"name");var I=new ag(N);M(I,function($){switch($){case"option":U(I,$),l(";");break;case"reserved":D(I.reserved||(I.reserved=[]),!0);break;default:We(I,$)}}),x.add(I)}function We(x,N){if(!ot.test(N))throw v(N,"name");l("=");var I=k(o(),!0),P={options:void 0};P.setOption=function($,W){this.options===void 0&&(this.options={}),this.options[$]=W},M(P,function(W){if(W==="option")U(P,W),l(";");else throw v(W)},function(){lt(P)}),x.add(N,I,P.comment,P.options)}function U(x,N){var I=l("(",!0);if(!at.test(N=o()))throw v(N,"name");var P=N,$=P,W;I&&(l(")"),P="("+P+")",$=P,N=s(),gg.test(N)&&(W=N.slice(1),P+=N,o())),l("=");var ie=Ne(x,P);Q(x,$,ie,W)}function Ne(x,N){if(l("{",!0)){for(var I={};!l("}",!0);){if(!ot.test(R=o()))throw v(R,"name");if(R===null)throw v(R,"end of input");var P,$=R;if(l(":",!0),s()==="{")P=Ne(x,N+"."+R);else if(s()==="["){P=[];var W;if(l("[",!0)){do W=A(!0),P.push(W);while(l(",",!0));l("]"),typeof W!="undefined"&&G(x,N+"."+R,W)}}else P=A(!0),G(x,N+"."+R,P);var ie=I[$];ie&&(P=[].concat(ie).concat(P)),I[$]=P,l(",",!0),l(";",!0)}return I}var te=A(!0);return G(x,N,te),te}function G(x,N,I){x.setOption&&x.setOption(N,I)}function Q(x,N,I,P){x.setParsedOption&&x.setParsedOption(N,I,P)}function lt(x){if(l("[",!0)){do U(x,"option");while(l(",",!0));l("]")}return x}function pn(x,N){if(!ot.test(N=o()))throw v(N,"service name");var I=new sg(N);M(I,function($){if(!S(I,$))if($==="rpc")h(I,$);else throw v($)}),x.add(I)}function h(x,N){var I=c(),P=N;if(!ot.test(N=o()))throw v(N,"name");var $=N,W,ie,te,oe;if(l("("),l("stream",!0)&&(ie=!0),!at.test(N=o())||(W=N,l(")"),l("returns"),l("("),l("stream",!0)&&(oe=!0),!at.test(N=o())))throw v(N);te=N,l(")");var un=new lg($,P,W,te,ie,oe);un.comment=I,M(un,function(qt){if(qt==="option")U(un,qt),l(";");else throw v(qt)}),x.add(un)}function u(x,N){if(!at.test(N=o()))throw v(N,"reference");var I=N;M(null,function($){switch($){case"required":case"repeated":j(x,$,I);break;case"optional":d?j(x,"proto3_optional",I):j(x,"optional",I);break;default:if(!d||!at.test($))throw v($);a($),j(x,"optional",I);break}})}for(var R;(R=o())!==null;)switch(R){case"package":if(!p)throw v(R);b();break;case"import":if(!p)throw v(R);C();break;case"syntax":if(!p)throw v(R);O();break;case"option":U(f,R),l(";");break;default:if(S(f,R)){p=!1;continue}throw v(R)}return ht.filename=null,{package:m,imports:y,weakImports:w,syntax:E,root:t}}});var Dp=Y((_w,Op)=>{"use strict";Op.exports=Xe;var yg=/\/|\./;function Xe(n,t){yg.test(n)||(n="google/protobuf/"+n+".proto",t={nested:{google:{nested:{protobuf:{nested:t}}}}}),Xe[n]=t}Xe("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}});var Rp;Xe("duration",{Duration:Rp={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}});Xe("timestamp",{Timestamp:Rp});Xe("empty",{Empty:{fields:{}}});Xe("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}});Xe("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}});Xe("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}});Xe.get=function(t){return Xe[t]||null}});var Ip=Y((Tw,Cp)=>{"use strict";var Lt=Cp.exports=xp();Lt.build="full";Lt.tokenize=wa();Lt.parse=Sp();Lt.common=Dp();Lt.Root._configure(Lt.Type,Lt.parse,Lt.common)});var Lp=Y((Aw,Fp)=>{"use strict";Fp.exports=Ip()});var Df=Y(Rr=>{(function(n){n.parser=function(h,u){return new e(h,u)},n.SAXParser=e,n.SAXStream=c,n.createStream=l,n.MAX_BUFFER_LENGTH=64*1024;var t=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];n.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function e(h,u){if(!(this instanceof e))return new e(h,u);var R=this;r(R),R.q=R.c="",R.bufferCheckPosition=n.MAX_BUFFER_LENGTH,R.opt=u||{},R.opt.lowercase=R.opt.lowercase||R.opt.lowercasetags,R.looseCase=R.opt.lowercase?"toLowerCase":"toUpperCase",R.tags=[],R.closed=R.closedRoot=R.sawRoot=!1,R.tag=R.error=null,R.strict=!!h,R.noscript=!!(h||R.opt.noscript),R.state=b.BEGIN,R.strictEntities=R.opt.strictEntities,R.ENTITIES=R.strictEntities?Object.create(n.XML_ENTITIES):Object.create(n.ENTITIES),R.attribList=[],R.opt.xmlns&&(R.ns=Object.create(E)),R.trackPosition=R.opt.position!==!1,R.trackPosition&&(R.position=R.line=R.column=0),O(R,"onready")}Object.create||(Object.create=function(h){function u(){}u.prototype=h;var R=new u;return R}),Object.keys||(Object.keys=function(h){var u=[];for(var R in h)h.hasOwnProperty(R)&&u.push(R);return u});function i(h){for(var u=Math.max(n.MAX_BUFFER_LENGTH,10),R=0,x=0,N=t.length;xu)switch(t[x]){case"textNode":M(h);break;case"cdata":S(h,"oncdata",h.cdata),h.cdata="";break;case"script":S(h,"onscript",h.script),h.script="";break;default:j(h,"Max buffer length exceeded: "+t[x])}R=Math.max(R,I)}var P=n.MAX_BUFFER_LENGTH-R;h.bufferCheckPosition=P+h.position}function r(h){for(var u=0,R=t.length;u"||_(h)}function T(h,u){return h.test(u)}function k(h,u){return!T(h,u)}var b=0;n.STATE={BEGIN:b++,BEGIN_WHITESPACE:b++,TEXT:b++,TEXT_ENTITY:b++,OPEN_WAKA:b++,SGML_DECL:b++,SGML_DECL_QUOTED:b++,DOCTYPE:b++,DOCTYPE_QUOTED:b++,DOCTYPE_DTD:b++,DOCTYPE_DTD_QUOTED:b++,COMMENT_STARTING:b++,COMMENT:b++,COMMENT_ENDING:b++,COMMENT_ENDED:b++,CDATA:b++,CDATA_ENDING:b++,CDATA_ENDING_2:b++,PROC_INST:b++,PROC_INST_BODY:b++,PROC_INST_ENDING:b++,OPEN_TAG:b++,OPEN_TAG_SLASH:b++,ATTRIB:b++,ATTRIB_NAME:b++,ATTRIB_NAME_SAW_WHITE:b++,ATTRIB_VALUE:b++,ATTRIB_VALUE_QUOTED:b++,ATTRIB_VALUE_CLOSED:b++,ATTRIB_VALUE_UNQUOTED:b++,ATTRIB_VALUE_ENTITY_Q:b++,ATTRIB_VALUE_ENTITY_U:b++,CLOSE_TAG:b++,CLOSE_TAG_SAW_WHITE:b++,SCRIPT:b++,SCRIPT_ENDING:b++},n.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},n.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(n.ENTITIES).forEach(function(h){var u=n.ENTITIES[h],R=typeof u=="number"?String.fromCharCode(u):u;n.ENTITIES[h]=R});for(var C in n.STATE)n.STATE[n.STATE[C]]=C;b=n.STATE;function O(h,u,R){h[u]&&h[u](R)}function S(h,u,R){h.textNode&&M(h),O(h,u,R)}function M(h){h.textNode=L(h.opt,h.textNode),h.textNode&&O(h,"ontext",h.textNode),h.textNode=""}function L(h,u){return h.trim&&(u=u.trim()),h.normalize&&(u=u.replace(/\s+/g," ")),u}function j(h,u){return M(h),h.trackPosition&&(u+=` +Line: `+h.line+` +Column: `+h.column+` +Char: `+h.c),u=new Error(u),h.error=u,O(h,"onerror",u),h}function Z(h){return h.sawRoot&&!h.closedRoot&&F(h,"Unclosed root tag"),h.state!==b.BEGIN&&h.state!==b.BEGIN_WHITESPACE&&h.state!==b.TEXT&&j(h,"Unexpected end"),M(h),h.c="",h.closed=!0,O(h,"onend"),e.call(h,h.strict,h.opt),h}function F(h,u){if(typeof h!="object"||!(h instanceof e))throw new Error("bad call to strictFail");h.strict&&j(h,u)}function ee(h){h.strict||(h.tagName=h.tagName[h.looseCase]());var u=h.tags[h.tags.length-1]||h,R=h.tag={name:h.tagName,attributes:{}};h.opt.xmlns&&(R.ns=u.ns),h.attribList.length=0,S(h,"onopentagstart",R)}function z(h,u){var R=h.indexOf(":"),x=R<0?["",h]:h.split(":"),N=x[0],I=x[1];return u&&h==="xmlns"&&(N="xmlns",I=""),{prefix:N,local:I}}function We(h){if(h.strict||(h.attribName=h.attribName[h.looseCase]()),h.attribList.indexOf(h.attribName)!==-1||h.tag.attributes.hasOwnProperty(h.attribName)){h.attribName=h.attribValue="";return}if(h.opt.xmlns){var u=z(h.attribName,!0),R=u.prefix,x=u.local;if(R==="xmlns")if(x==="xml"&&h.attribValue!==y)F(h,"xml: prefix must be bound to "+y+` +Actual: `+h.attribValue);else if(x==="xmlns"&&h.attribValue!==w)F(h,"xmlns: prefix must be bound to "+w+` +Actual: `+h.attribValue);else{var N=h.tag,I=h.tags[h.tags.length-1]||h;N.ns===I.ns&&(N.ns=Object.create(I.ns)),N.ns[x]=h.attribValue}h.attribList.push([h.attribName,h.attribValue])}else h.tag.attributes[h.attribName]=h.attribValue,S(h,"onattribute",{name:h.attribName,value:h.attribValue});h.attribName=h.attribValue=""}function U(h,u){if(h.opt.xmlns){var R=h.tag,x=z(h.tagName);R.prefix=x.prefix,R.local=x.local,R.uri=R.ns[x.prefix]||"",R.prefix&&!R.uri&&(F(h,"Unbound namespace prefix: "+JSON.stringify(h.tagName)),R.uri=x.prefix);var N=h.tags[h.tags.length-1]||h;R.ns&&N.ns!==R.ns&&Object.keys(R.ns).forEach(function(ns){S(h,"onopennamespace",{prefix:ns,uri:R.ns[ns]})});for(var I=0,P=h.attribList.length;I",h.tagName="",h.state=b.SCRIPT;return}S(h,"onscript",h.script),h.script=""}var u=h.tags.length,R=h.tagName;h.strict||(R=R[h.looseCase]());for(var x=R;u--;){var N=h.tags[u];if(N.name!==x)F(h,"Unexpected close tag");else break}if(u<0){F(h,"Unmatched closing tag: "+h.tagName),h.textNode+="",h.state=b.TEXT;return}h.tagName=R;for(var I=h.tags.length;I-- >u;){var P=h.tag=h.tags.pop();h.tagName=h.tag.name,S(h,"onclosetag",h.tagName);var $={};for(var W in P.ns)$[W]=P.ns[W];var ie=h.tags[h.tags.length-1]||h;h.opt.xmlns&&P.ns!==ie.ns&&Object.keys(P.ns).forEach(function(te){var oe=P.ns[te];S(h,"onclosenamespace",{prefix:te,uri:oe})})}u===0&&(h.closedRoot=!0),h.tagName=h.attribValue=h.attribName="",h.attribList.length=0,h.state=b.TEXT}function G(h){var u=h.entity,R=u.toLowerCase(),x,N="";return h.ENTITIES[u]?h.ENTITIES[u]:h.ENTITIES[R]?h.ENTITIES[R]:(u=R,u.charAt(0)==="#"&&(u.charAt(1)==="x"?(u=u.slice(2),x=parseInt(u,16),N=x.toString(16)):(u=u.slice(1),x=parseInt(u,10),N=x.toString(10))),u=u.replace(/^0+/,""),isNaN(x)||N.toLowerCase()!==u?(F(h,"Invalid character entity"),"&"+h.entity+";"):String.fromCodePoint(x))}function Q(h,u){u==="<"?(h.state=b.OPEN_WAKA,h.startTagPosition=h.position):_(u)||(F(h,"Non-whitespace before first tag."),h.textNode=u,h.state=b.TEXT)}function lt(h,u){var R="";return u"?(S(u,"onsgmldeclaration",u.sgmlDecl),u.sgmlDecl="",u.state=b.TEXT):(A(x)&&(u.state=b.SGML_DECL_QUOTED),u.sgmlDecl+=x);continue;case b.SGML_DECL_QUOTED:x===u.q&&(u.state=b.SGML_DECL,u.q=""),u.sgmlDecl+=x;continue;case b.DOCTYPE:x===">"?(u.state=b.TEXT,S(u,"ondoctype",u.doctype),u.doctype=!0):(u.doctype+=x,x==="["?u.state=b.DOCTYPE_DTD:A(x)&&(u.state=b.DOCTYPE_QUOTED,u.q=x));continue;case b.DOCTYPE_QUOTED:u.doctype+=x,x===u.q&&(u.q="",u.state=b.DOCTYPE);continue;case b.DOCTYPE_DTD:u.doctype+=x,x==="]"?u.state=b.DOCTYPE:A(x)&&(u.state=b.DOCTYPE_DTD_QUOTED,u.q=x);continue;case b.DOCTYPE_DTD_QUOTED:u.doctype+=x,x===u.q&&(u.state=b.DOCTYPE_DTD,u.q="");continue;case b.COMMENT:x==="-"?u.state=b.COMMENT_ENDING:u.comment+=x;continue;case b.COMMENT_ENDING:x==="-"?(u.state=b.COMMENT_ENDED,u.comment=L(u.opt,u.comment),u.comment&&S(u,"oncomment",u.comment),u.comment=""):(u.comment+="-"+x,u.state=b.COMMENT);continue;case b.COMMENT_ENDED:x!==">"?(F(u,"Malformed comment"),u.comment+="--"+x,u.state=b.COMMENT):u.state=b.TEXT;continue;case b.CDATA:x==="]"?u.state=b.CDATA_ENDING:u.cdata+=x;continue;case b.CDATA_ENDING:x==="]"?u.state=b.CDATA_ENDING_2:(u.cdata+="]"+x,u.state=b.CDATA);continue;case b.CDATA_ENDING_2:x===">"?(u.cdata&&S(u,"oncdata",u.cdata),S(u,"onclosecdata"),u.cdata="",u.state=b.TEXT):x==="]"?u.cdata+="]":(u.cdata+="]]"+x,u.state=b.CDATA);continue;case b.PROC_INST:x==="?"?u.state=b.PROC_INST_ENDING:_(x)?u.state=b.PROC_INST_BODY:u.procInstName+=x;continue;case b.PROC_INST_BODY:if(!u.procInstBody&&_(x))continue;x==="?"?u.state=b.PROC_INST_ENDING:u.procInstBody+=x;continue;case b.PROC_INST_ENDING:x===">"?(S(u,"onprocessinginstruction",{name:u.procInstName,body:u.procInstBody}),u.procInstName=u.procInstBody="",u.state=b.TEXT):(u.procInstBody+="?"+x,u.state=b.PROC_INST_BODY);continue;case b.OPEN_TAG:T(f,x)?u.tagName+=x:(ee(u),x===">"?U(u):x==="/"?u.state=b.OPEN_TAG_SLASH:(_(x)||F(u,"Invalid character in tag name"),u.state=b.ATTRIB));continue;case b.OPEN_TAG_SLASH:x===">"?(U(u,!0),Ne(u)):(F(u,"Forward-slash in opening tag not followed by >"),u.state=b.ATTRIB);continue;case b.ATTRIB:if(_(x))continue;x===">"?U(u):x==="/"?u.state=b.OPEN_TAG_SLASH:T(d,x)?(u.attribName=x,u.attribValue="",u.state=b.ATTRIB_NAME):F(u,"Invalid attribute name");continue;case b.ATTRIB_NAME:x==="="?u.state=b.ATTRIB_VALUE:x===">"?(F(u,"Attribute without value"),u.attribValue=u.attribName,We(u),U(u)):_(x)?u.state=b.ATTRIB_NAME_SAW_WHITE:T(f,x)?u.attribName+=x:F(u,"Invalid attribute name");continue;case b.ATTRIB_NAME_SAW_WHITE:if(x==="=")u.state=b.ATTRIB_VALUE;else{if(_(x))continue;F(u,"Attribute without value"),u.tag.attributes[u.attribName]="",u.attribValue="",S(u,"onattribute",{name:u.attribName,value:""}),u.attribName="",x===">"?U(u):T(d,x)?(u.attribName=x,u.state=b.ATTRIB_NAME):(F(u,"Invalid attribute name"),u.state=b.ATTRIB)}continue;case b.ATTRIB_VALUE:if(_(x))continue;A(x)?(u.q=x,u.state=b.ATTRIB_VALUE_QUOTED):(F(u,"Unquoted attribute value"),u.state=b.ATTRIB_VALUE_UNQUOTED,u.attribValue=x);continue;case b.ATTRIB_VALUE_QUOTED:if(x!==u.q){x==="&"?u.state=b.ATTRIB_VALUE_ENTITY_Q:u.attribValue+=x;continue}We(u),u.q="",u.state=b.ATTRIB_VALUE_CLOSED;continue;case b.ATTRIB_VALUE_CLOSED:_(x)?u.state=b.ATTRIB:x===">"?U(u):x==="/"?u.state=b.OPEN_TAG_SLASH:T(d,x)?(F(u,"No whitespace between attributes"),u.attribName=x,u.attribValue="",u.state=b.ATTRIB_NAME):F(u,"Invalid attribute name");continue;case b.ATTRIB_VALUE_UNQUOTED:if(!D(x)){x==="&"?u.state=b.ATTRIB_VALUE_ENTITY_U:u.attribValue+=x;continue}We(u),x===">"?U(u):u.state=b.ATTRIB;continue;case b.CLOSE_TAG:if(u.tagName)x===">"?Ne(u):T(f,x)?u.tagName+=x:u.script?(u.script+=""?Ne(u):F(u,"Invalid characters in closing tag");continue;case b.TEXT_ENTITY:case b.ATTRIB_VALUE_ENTITY_Q:case b.ATTRIB_VALUE_ENTITY_U:var P,$;switch(u.state){case b.TEXT_ENTITY:P=b.TEXT,$="textNode";break;case b.ATTRIB_VALUE_ENTITY_Q:P=b.ATTRIB_VALUE_QUOTED,$="attribValue";break;case b.ATTRIB_VALUE_ENTITY_U:P=b.ATTRIB_VALUE_UNQUOTED,$="attribValue";break}if(x===";")if(u.opt.unparsedEntities){var W=G(u);u.entity="",u.state=P,u.write(W)}else u[$]+=G(u),u.entity="",u.state=P;else T(u.entity.length?v:g,x)?u.entity+=x:(F(u,"Invalid character in entity name"),u[$]+="&"+u.entity+x,u.entity="",u.state=P);continue;default:throw new Error(u,"Unknown state: "+u.state)}return u.position>=u.bufferCheckPosition&&i(u),u}String.fromCodePoint||function(){var h=String.fromCharCode,u=Math.floor,R=function(){var x=16384,N=[],I,P,$=-1,W=arguments.length;if(!W)return"";for(var ie="";++$1114111||u(te)!==te)throw RangeError("Invalid code point: "+te);te<=65535?N.push(te):(te-=65536,I=(te>>10)+55296,P=te%1024+56320,N.push(I,P)),($+1===W||N.length>x)&&(ie+=h.apply(null,N),N.length=0)}return ie};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:R,configurable:!0,writable:!0}):String.fromCodePoint=R}()})(typeof Rr=="undefined"?Rr.sax={}:Rr)});var Lf=Y((o2,Ff)=>{var Cf=/[&<>"]/g,yy=RegExp(Cf.source),by={"&":"&","<":"<",">":">",'"':"""},xy=n=>{let t=String(n);return t&&yy.test(t)?t.replace(Cf,e=>by[e]):t},wy=(n,t)=>typeof n=="string"&&typeof t=="string"||n&&n[0].$name===t.$name,vy=(n,t)=>typeof n=="string"?n+t:n.concat(t),Ey=n=>n.reduce((t,e)=>{let i=t.length-1,r=t[i];return wy(r,e)?t[i]=vy(r,e):t.push(typeof e=="string"?e:[e]),t},[]),_y=(n,t,e)=>{let i=null,r={};return Object.keys(n).forEach(o=>{let a=Or(n[o])?n[o]:null;if(a)switch(o){case"$name":!t&&a&&(r.$name=a);break;case"$attrs":i=a;break;case"$markup":r.$markup=If(a);break;default:a&&(r[o]=e(a))}}),{stripped:r,$attrs:i}},Ty=n=>Array.isArray(n)&&n.length===1?n[0]:n,Ay=(n,t)=>Or(t)?n?Object.keys(t).length===1&&t.$name?Object.assign(t,n):Object.assign(t,{$attrs:n}):t:n,ky=n=>{if(!n)return;let t=Object.keys(n),[e]=t;return t.length===1&&e!=="$name"&&e!=="id"?n[t[0]]:n},Za=(n,t,e)=>{let i=e?l=>l:Ty,r=i(n);if(!Or(r))return null;if(typeof r!="object"||Array.isArray(r))return r;let{$attrs:o,stripped:a}=_y(r,t,i),s=Ay(o,a);return ky(s)},Ny=n=>{let t,e={},i=!0;return n.every(r=>(typeof r=="string"?t="$text":t=r[0].$name,e[t]?(i=!1,!1):(e[t]=!0,!0))),i},Ya=(n=[],t=[],e=!1)=>{let i=Array.isArray(n)?n:[n],r=Array.isArray(t)?t:[t],o=i.concat(r);return o.length===1&&!e?o[0]:o},If=(n,t)=>{let e=[];return n!==null&&typeof n=="object"&&n.constructor===Array?(n.forEach(i=>{e.push(Za(i,t))}),e):Za(n,t)},Sy=(n,t)=>{let e,i={};return Object.keys(n).forEach(r=>{r!=="$markup"&&(i[r]=n[r])}),n.$markup&&n.$markup.forEach(r=>{typeof r=="string"?i.$text=Ya(i.$text,r,t):typeof r=="object"&&(r.constructor===Array?e=r[0].$name:e=r.$name,i[e]=Ya(i[e],If(r,!0),t))}),i},Or=n=>n!=null&&(n.length==null||n.length!==0)&&(typeof n!="object"||Object.keys(n).length!==0);Ff.exports={condenseArray:Ey,escape:xy,isSomething:Or,moosh:Ya,objectifyMarkup:Sy,shouldObjectifyMarkup:Ny,simplifyNode:Za}});var $f=Y((a2,Mf)=>{var{EventEmitter:Ry}=require("events"),Oy=Df(),$t=Lf(),Dy=1,In=0,Bt=-1,Pf={preserveMarkup:In,simplifyNodes:!0,useArrays:In,lowercase:!0,trim:!0,normalize:!0,cdataAsText:!1,strict:!1},bi=function(t,e=Pf){let i=new Ry,r=[],o=Object.assign({},Pf,e),{preserveMarkup:a,simplifyNodes:s,useArrays:l,lowercase:c,trim:p,normalize:m,cdataAsText:y,strict:w}=o,E=null,d=null,f=Oy.createStream(w,{lowercase:c,trim:p,normalize:m,cdataAsText:y});return f.on("opentag",g=>{r.length===0&&!i.listeners(`tag:${g.name}`).length||(E={$name:g.name,$attrs:g.attributes},l>Bt&&(E.$markup=[]),r.push(E))}),f.on("text",g=>{E&&(l>Bt?E.$markup.push(g):E.$text?E.$text+=g:E.$text=g)}),f.on("opencdata",()=>{E&&(y||(d={$name:"$cdata",text:""},l>Bt?E.$markup.push(d):E.$cdata=d))}),f.on("cdata",g=>{E&&(d!==null?d.text+=g:l>Bt?E.$markup.push(g):E.$text?E.$text+=g:E.$text=g)}),f.on("closecdata",()=>{d=null}),f.on("script",g=>{E&&(E.$script=g)}),f.on("closetag",g=>{let v,_=null,A=l>In;r.length!==0&&(l>Bt&&(a<=Bt?(E.$markup=$t.condenseArray(E.$markup),E=$t.objectifyMarkup(E,A)):a===In&&(v=$t.condenseArray(E.$markup),$t.shouldObjectifyMarkup(v)&&(E.$markup=v,E=$t.objectifyMarkup(E,A)))),i.listeners(`tag:${g}`).length&&i.emit(`tag:${g}`,s?$t.simplifyNode(E,!1,l>In):E),r.pop(),r.length>0&&(_=r[r.length-1],l>Bt?_.$markup.push(E):_[g]||(_[g]=$t.simplifyNode(E,!0))),E=_)}),f.on("end",()=>{i.emit("end")}),f.on("error",g=>{i.emit("error",g)}),t.pipe(f),i.pause=function(){t.pause()},i.resume=function(){t.resume()},i};bi.ALWAYS=Dy;bi.SOMETIMES=In;bi.NEVER=Bt;bi.toXml=function(t,{indent:e="",selfClosing:i=!0,escape:r=$t.escape,nodeName:o}={}){let a=e?` +`:"";function s(l,c,p){let m="",y,w=c,E=p?a+p:"",d=p+e,f="";return l=l||"",l.constructor===Array?(l.forEach(g=>{m+=s(g,w,p)}),m):(!w&&l.$name&&(w=l.$name),w&&(m=`${E}<${w}`,l.$attrs&&typeof l.$attrs=="object"&&(y=Object.keys(l.$attrs),y.forEach(g=>{m+=` ${g}=${JSON.stringify(String(l.$attrs[g]))}`}))),l==null||l===""||(typeof l=="object"?(y=Object.keys(l),y.forEach(g=>{let v=l[g];switch(g){case"$name":case"$attrs":break;case"$text":case"$markup":f+=s(v,null,d);break;case"$script":f+=s(v,"script",d);break;case"$cdata":f+=`${E}`;break;default:f+=s(v,g,d)}})):f+=E+r(l)),w?f?m+=`>${f}${a}${p}`:i?m+="/>":m+=`>`:m+=f,m)}return s(t,o,"")};Mf.exports=bi});var I1={};Se(I1,{ATTACHMENT_EXTS:()=>Ln,AUTH_REDIRECT_URI:()=>$r,ImportContext:()=>Wr,ImporterModal:()=>wi,default:()=>Zr});module.exports=wd(I1);var Ht=require("obsidian");var st=require("obsidian");var wt=class{constructor(t){this.importer=t,this.app=t.app}};var Mn=class extends wt{constructor(e,i){super(e);this.scan=i.mergableDataObject,this.objects=this.scan.mergeableDataObjectData.mergeableDataObjectEntry}async format(){let e=[];for(let i of this.objects){if(!i.customMap)continue;let r=i.customMap.mapEntry[0].value.stringValue,o=await this.importer.database.get` + SELECT z_pk, zmedia, ztypeuti FROM ziccloudsyncingobject + WHERE zidentifier = ${r}`,a=await this.importer.resolveAttachment(o.Z_PK,"com.apple.notes.gallery");if(a||(a=await this.importer.resolveAttachment(o.ZMEDIA,o.ZTYPEUTI)),a)e.push(this.importer.app.fileManager.generateMarkdownLink(a,"/"));else return"**Cannot decode scan**"}return` +${e.join(` +`)} +`}};Mn.protobufType="ciofecaforensics.MergableDataProto";var $n=class extends wt{constructor(e,i){super(e);this.rowLocations={};this.columnLocations={};this.table=i.mergableDataObject;let r=this.table.mergeableDataObjectData;this.keys=r.mergeableDataObjectKeyItem,this.types=r.mergeableDataObjectTypeItem,this.uuids=r.mergeableDataObjectUuidItem.map(this.uuidToString),this.objects=r.mergeableDataObjectEntry}async parse(){let e=this.objects.find(r=>r.customMap&&this.types[r.customMap.type]=="com.apple.notes.ICTable");if(!e)return null;let i=null;for(let r of e.customMap.mapEntry){let o=this.objects[r.value.objectIndex];switch(this.keys[r.key]){case"crRows":[this.rowLocations,this.rowCount]=this.findLocations(o);break;case"crColumns":[this.columnLocations,this.columnCount]=this.findLocations(o);break;case"cellColumns":i=o;break}}return i?await this.computeCells(i):null}findLocations(e){let i=[],r={};for(let o of e.orderedSet.ordering.array.attachment)i.push(this.uuidToString(o.uuid));for(let o of e.orderedSet.ordering.contents.element){let a=this.getTargetUuid(o.key),s=this.getTargetUuid(o.value);r[s]=i.indexOf(a)}return[r,i.length]}async computeCells(e){let i=Array(this.rowCount).fill(0).map(()=>Array(this.columnCount));for(let r of e.dictionary.element){let o=this.columnLocations[this.getTargetUuid(r.key)],a=this.objects[r.value.objectIndex];for(let s of a.dictionary.element){let l=this.rowLocations[this.getTargetUuid(s.key)],c=this.objects[s.value.objectIndex];if(!(l in i)||!c)continue;let p=new Wt(this.importer,c);i[l][o]=await p.format(!0)}}return i}async format(){let e=await this.parse();if(!e)return"";let i=` +`;for(let r=0;r").replace("|","|"),o.trim()}formatMultiRun(e){var o,a,s,l,c,p;let i=(o=e.paragraphStyle)==null?void 0:o.styleType,r="";switch(this.multiRun){case 3:(((a=e.paragraphStyle)==null?void 0:a.indentAmount)==0&&!as.includes(i)||_d(e))&&(this.multiRun=0);break;case 1:i!=4&&(this.multiRun=0,r+="```\n");break;case 2:(s=e.paragraphStyle)!=null&&s.alignment||(this.multiRun=0,r+=`

+`);break}if(this.multiRun==0){if(i==4)this.multiRun=1,r+="\n```\n";else if(as.includes(i))this.multiRun=3,(l=e.paragraphStyle)!=null&&l.indentAmount&&(r+=` +-   +`);else if((c=e.paragraphStyle)!=null&&c.alignment){this.multiRun=2;let m=this.convertAlign((p=e==null?void 0:e.paragraphStyle)==null?void 0:p.alignment);r+=` +

`}}return r}async formatHtmlAttr(e){var r,o;e.strikethrough&&(e.fragment=`${e.fragment}`),e.underlined&&(e.fragment=`${e.fragment}`),e.superscript==1&&(e.fragment=`${e.fragment}`),e.superscript==-1&&(e.fragment=`${e.fragment}`);let i="";switch(e.fontWeight){case 1:e.fragment=`${e.fragment}`;break;case 2:e.fragment=`${e.fragment}`;break;case 3:e.fragment=`${e.fragment}`;break}return(r=e.font)!=null&&r.fontName&&e.font.fontName!==Ed&&(i+=`font-family:${e.font.fontName};`),(o=e.font)!=null&&o.pointSize&&(i+=`font-size:${e.font.pointSize}pt;`),e.color&&(i+=`color:${this.convertColor(e.color)};`),e.link&&!zr.test(e.link)?(i&&(i=` style="${i}"`),e.fragment=`${e.fragment}`):i&&(e.link&&(e.fragment=await this.getInternalLink(e.link,e.fragment)),e.fragment=`${e.fragment}`),e.atLineStart?this.formatParagraph(e):e.fragment}async formatAttr(e){switch(e.fontWeight){case 1:e.fragment=`**${e.fragment}**`;break;case 2:e.fragment=`*${e.fragment}*`;break;case 3:e.fragment=`***${e.fragment}***`;break}return e.strikethrough&&(e.fragment=`~~${e.fragment}~~`),e.link&&e.link!=e.fragment&&(zr.test(e.link)?e.fragment=await this.getInternalLink(e.link,e.fragment):e.fragment=`[${e.fragment}](${e.link})`),e.atLineStart?this.formatParagraph(e):e.fragment}formatParagraph(e){var a,s,l,c,p,m;let i=" ".repeat(((a=e.paragraphStyle)==null?void 0:a.indentAmount)||0),r=(s=e.paragraphStyle)==null?void 0:s.styleType,o=(l=e.paragraphStyle)!=null&&l.blockquote?"> ":"";switch(this.listNumber!=0&&(r!==102||this.listIndent!==((c=e.paragraphStyle)==null?void 0:c.indentAmount))&&(this.listIndent=((p=e.paragraphStyle)==null?void 0:p.indentAmount)||0,this.listNumber=0),r){case 0:return`${o}# ${e.fragment}`;case 1:return`${o}## ${e.fragment}`;case 2:return`${o}### ${e.fragment}`;case 101:case 100:return`${o}${i}- ${e.fragment}`;case 102:return this.listNumber++,`${o}${i}${this.listNumber}. ${e.fragment}`;case 103:let y=(m=e.paragraphStyle.checklist)!=null&&m.done?"[x]":"[ ]";return`${o}${i}- ${y} ${e.fragment}`}return this.multiRun==3&&(o+=i),`${o}${e.fragment}`}async formatAttachment(e){var l,c,p;let i,r,o;switch((l=e.attachmentInfo)==null?void 0:l.typeUti){case"com.apple.notes.inlinetextattachment.hashtag":case"com.apple.notes.inlinetextattachment.mention":return i=await this.importer.database.get` + SELECT zalttext FROM ziccloudsyncingobject + WHERE zidentifier = ${e.attachmentInfo.attachmentIdentifier}`,i.ZALTTEXT;case"com.apple.notes.inlinetextattachment.link":return i=await this.importer.database.get` + SELECT ztokencontentidentifier FROM ziccloudsyncingobject + WHERE zidentifier = ${e.attachmentInfo.attachmentIdentifier}`,await this.getInternalLink(i.ZTOKENCONTENTIDENTIFIER);case"com.apple.notes.table":return i=await this.importer.database.get` + SELECT hex(zmergeabledata1) as zhexdata FROM ziccloudsyncingobject + WHERE zidentifier = ${e.attachmentInfo.attachmentIdentifier}`,o=this.importer.decodeData(i.zhexdata,$n),await o.format();case"public.url":return i=await this.importer.database.get` + SELECT ztitle, zurlstring FROM ziccloudsyncingobject + WHERE zidentifier = ${e.attachmentInfo.attachmentIdentifier}`,`[**${i.ZTITLE}**](${i.ZURLSTRING})`;case"com.apple.notes.gallery":return i=await this.importer.database.get` + SELECT hex(zmergeabledata1) as zhexdata FROM ziccloudsyncingobject + WHERE zidentifier = ${e.attachmentInfo.attachmentIdentifier}`,o=this.importer.decodeData(i.zhexdata,Mn),await o.format();case"com.apple.paper.doc.scan":case"com.apple.drawing":case"com.apple.drawing.2":case"com.apple.paper":i=await this.importer.database.get` + SELECT z_pk, zhandwritingsummary + FROM (SELECT *, NULL AS zhandwritingsummary FROM ziccloudsyncingobject) + WHERE zidentifier = ${e.attachmentInfo.attachmentIdentifier}`,r=i==null?void 0:i.Z_PK;break;default:i=await this.importer.database.get` + SELECT zmedia FROM ziccloudsyncingobject + WHERE zidentifier = ${(c=e.attachmentInfo)==null?void 0:c.attachmentIdentifier}`,r=i==null?void 0:i.ZMEDIA;break}if(!r)return` **(unknown attachment: ${(p=e.attachmentInfo)==null?void 0:p.typeUti})** `;let a=await this.importer.resolveAttachment(r,e.attachmentInfo.typeUti),s=a?` +${this.app.fileManager.generateMarkdownLink(a,"/")} +`:" **(error reading attachment)**";return this.importer.includeHandwriting&&i.ZHANDWRITINGSUMMARY&&(s=` +> [!Handwriting]- +> ${i.ZHANDWRITINGSUMMARY.replace(` +`,` +> `)}${s}`),s}async getInternalLink(e,i=void 0){let r=e.match(zr)[1],o=await this.importer.database.get` + SELECT z_pk FROM ziccloudsyncingobject + WHERE zidentifier = ${r.toUpperCase()}`,a=await this.importer.resolveNote(o.Z_PK);return a?this.app.fileManager.generateMarkdownLink(a,this.importer.rootFolder.path,void 0,i):"(unknown file link)"}convertColor(e){let i="#";for(let r of Object.values(e))i+=Math.floor(r*255).toString(16);return i}convertAlign(e){switch(e){default:return"left";case 1:return"center";case 2:return"right";case 3:return"justify"}}};Wt.protobufType="ciofecaforensics.Document";function _d(n){return n.attachmentInfo?!n.attachmentInfo.typeUti.includes("com.apple.notes.inlinetextattachment"):!1}function ss(n,t){var e,i;if(!t||n.$type!=t.$type)return!1;for(let r of n.$type.fieldsArray)if(r.name!="length"){if((e=n[r.name])!=null&&e.$type&&((i=t[r.name])!=null&&i.$type)){if(!ss(n[r.name],t[r.name]))return!1}else if(n[r.name]!=t[r.name])return!1}return!0}var ls={nested:{ciofecaforensics:{nested:{Color:{fields:{red:{type:"float",id:1},green:{type:"float",id:2},blue:{type:"float",id:3},alpha:{type:"float",id:4}}},AttachmentInfo:{fields:{attachmentIdentifier:{type:"string",id:1},typeUti:{type:"string",id:2}}},Font:{fields:{fontName:{type:"string",id:1},pointSize:{type:"float",id:2},fontHints:{type:"int32",id:3}}},ParagraphStyle:{fields:{styleType:{type:"int32",id:1,options:{default:-1}},alignment:{type:"int32",id:2},indentAmount:{type:"int32",id:4},checklist:{type:"Checklist",id:5},blockquote:{type:"int32",id:8}}},Checklist:{fields:{uuid:{type:"bytes",id:1},done:{type:"int32",id:2}}},DictionaryElement:{fields:{key:{type:"ObjectID",id:1},value:{type:"ObjectID",id:2}}},Dictionary:{fields:{element:{rule:"repeated",type:"DictionaryElement",id:1,options:{packed:!1}}}},ObjectID:{fields:{unsignedIntegerValue:{type:"uint64",id:2},stringValue:{type:"string",id:4},objectIndex:{type:"int32",id:6}}},RegisterLatest:{fields:{contents:{type:"ObjectID",id:2}}},MapEntry:{fields:{key:{type:"int32",id:1},value:{type:"ObjectID",id:2}}},AttributeRun:{fields:{length:{type:"int32",id:1},paragraphStyle:{type:"ParagraphStyle",id:2},font:{type:"Font",id:3},fontWeight:{type:"int32",id:5},underlined:{type:"int32",id:6},strikethrough:{type:"int32",id:7},superscript:{type:"int32",id:8},link:{type:"string",id:9},color:{type:"Color",id:10},attachmentInfo:{type:"AttachmentInfo",id:12}}},NoteStoreProto:{fields:{document:{type:"Document",id:2}}},Document:{fields:{version:{type:"int32",id:2},note:{type:"Note",id:3}}},Note:{fields:{noteText:{type:"string",id:2},attributeRun:{rule:"repeated",type:"AttributeRun",id:5,options:{packed:!1}}}},MergableDataProto:{fields:{mergableDataObject:{type:"MergableDataObject",id:2}}},MergableDataObject:{fields:{version:{type:"int32",id:2},mergeableDataObjectData:{type:"MergeableDataObjectData",id:3}}},MergeableDataObjectData:{fields:{mergeableDataObjectEntry:{rule:"repeated",type:"MergeableDataObjectEntry",id:3,options:{packed:!1}},mergeableDataObjectKeyItem:{rule:"repeated",type:"string",id:4},mergeableDataObjectTypeItem:{rule:"repeated",type:"string",id:5},mergeableDataObjectUuidItem:{rule:"repeated",type:"bytes",id:6}}},MergeableDataObjectEntry:{fields:{registerLatest:{type:"RegisterLatest",id:1},list:{type:"List",id:5},dictionary:{type:"Dictionary",id:6},unknownMessage:{type:"UnknownMergeableDataObjectEntryMessage",id:9},note:{type:"Note",id:10},customMap:{type:"MergeableDataObjectMap",id:13},orderedSet:{type:"OrderedSet",id:16}}},UnknownMergeableDataObjectEntryMessage:{fields:{unknownEntry:{type:"UnknownMergeableDataObjectEntryMessageEntry",id:1}}},UnknownMergeableDataObjectEntryMessageEntry:{fields:{unknownInt1:{type:"int32",id:1},unknownInt2:{type:"int64",id:2}}},MergeableDataObjectMap:{fields:{type:{type:"int32",id:1},mapEntry:{rule:"repeated",type:"MapEntry",id:3,options:{packed:!1}}}},OrderedSet:{fields:{ordering:{type:"OrderedSetOrdering",id:1},elements:{type:"Dictionary",id:2}}},OrderedSetOrdering:{fields:{array:{type:"OrderedSetOrderingArray",id:1},contents:{type:"Dictionary",id:2}}},OrderedSetOrderingArray:{fields:{contents:{type:"Note",id:1},attachment:{rule:"repeated",type:"OrderedSetOrderingArrayAttachment",id:2,options:{packed:!1}}}},OrderedSetOrderingArrayAttachment:{fields:{index:{type:"int32",id:1},uuid:{type:"bytes",id:2}}},List:{fields:{listEntry:{rule:"repeated",type:"ListEntry",id:1,options:{packed:!1}}}},ListEntry:{fields:{id:{type:"ObjectID",id:2},details:{type:"ListEntryDetails",id:3},additionalDetails:{type:"ListEntryDetails",id:4}}},ListEntryDetails:{fields:{listEntryDetailsKey:{type:"ListEntryDetailsKey",id:1},id:{type:"ObjectID",id:2}}},ListEntryDetailsKey:{fields:{listEntryDetailsTypeIndex:{type:"int32",id:1},listEntryDetailsKey:{type:"int32",id:2}}}}}}};var De=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ss=1440,Td=0,Ad=4,kd=9,Nd=5,Sd=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Rd=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Od=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Dd=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Cd=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Id=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],vt=15;function Xr(){let n=this,t,e,i,r,o,a;function s(c,p,m,y,w,E,d,f,g,v,_){let A,D,T,k,b,C,O,S,M,L,j,Z,F,ee,z;L=0,b=m;do i[c[p+L]]++,L++,b--;while(b!==0);if(i[0]==m)return d[0]=-1,f[0]=0,0;for(S=f[0],C=1;C<=vt&&i[C]===0;C++);for(O=C,Sb&&(S=b),f[0]=S,ee=1<Z+S;){if(k++,Z+=S,z=T-Z,z=z>S?S:z,(D=1<<(C=O-Z))>A+1&&(D-=A+1,F=O,CSs)return-3;o[k]=j=v[0],v[0]+=z,k!==0?(a[k]=b,r[0]=C,r[1]=S,C=b>>>Z-S,r[2]=j-o[k-1]-C,g.set(r,(o[k-1]+C)*3)):d[0]=j}for(r[1]=O-Z,L>=m?r[0]=128+64:_[L]>>Z;C>>=1)b^=C;for(b^=C,M=(1<257?(v==-3?g.msg="oversubscribed distance tree":v==-5?(g.msg="incomplete distance tree",v=-3):v!=-4&&(g.msg="empty distance tree with lengths",v=-3),v):0)}}Xr.inflate_trees_fixed=function(n,t,e,i){return n[0]=kd,t[0]=Nd,e[0]=Sd,i[0]=Rd,0};var Ei=0,cs=1,ps=2,us=3,fs=4,ds=5,ms=6,Gr=7,hs=8,_i=9;function Fd(){let n=this,t,e=0,i,r=0,o=0,a=0,s=0,l=0,c=0,p=0,m,y=0,w,E=0;function d(f,g,v,_,A,D,T,k){let b,C,O,S,M,L,j,Z,F,ee,z,We,U,Ne,G,Q;j=k.next_in_index,Z=k.avail_in,M=T.bitb,L=T.bitk,F=T.write,ee=F>=C[Q+1],L-=C[Q+1],T.win[F++]=C[Q+2],ee--;continue}do{if(M>>=C[Q+1],L-=C[Q+1],S&16){for(S&=15,U=C[Q+2]+(M&De[S]),M>>=S,L-=S;L<15;)Z--,M|=(k.read_byte(j++)&255)<>=C[Q+1],L-=C[Q+1],S&16){for(S&=15;L>=S,L-=S,ee-=U,F>=Ne)G=F-Ne,F-G>0&&2>F-G?(T.win[F++]=T.win[G++],T.win[F++]=T.win[G++],U-=2):(T.win.set(T.win.subarray(G,G+2),F),F+=2,G+=2,U-=2);else{G=F-Ne;do G+=T.end;while(G<0);if(S=T.end-G,U>S){if(U-=S,F-G>0&&S>F-G)do T.win[F++]=T.win[G++];while(--S!==0);else T.win.set(T.win.subarray(G,G+S),F),F+=S,G+=S,S=0;G=0}}if(F-G>0&&U>F-G)do T.win[F++]=T.win[G++];while(--U!==0);else T.win.set(T.win.subarray(G,G+U),F),F+=U,G+=U,U=0;break}else if(!(S&64))b+=C[Q+2],b+=M&De[S],Q=(O+b)*3,S=C[Q];else return k.msg="invalid distance code",U=k.avail_in-Z,U=L>>3>3:U,Z+=U,j-=U,L-=U<<3,T.bitb=M,T.bitk=L,k.avail_in=Z,k.total_in+=j-k.next_in_index,k.next_in_index=j,T.write=F,-3;while(!0);break}if(S&64)return S&32?(U=k.avail_in-Z,U=L>>3>3:U,Z+=U,j-=U,L-=U<<3,T.bitb=M,T.bitk=L,k.avail_in=Z,k.total_in+=j-k.next_in_index,k.next_in_index=j,T.write=F,1):(k.msg="invalid literal/length code",U=k.avail_in-Z,U=L>>3>3:U,Z+=U,j-=U,L-=U<<3,T.bitb=M,T.bitk=L,k.avail_in=Z,k.total_in+=j-k.next_in_index,k.next_in_index=j,T.write=F,-3);if(b+=C[Q+2],b+=M&De[S],Q=(O+b)*3,(S=C[Q])===0){M>>=C[Q+1],L-=C[Q+1],T.win[F++]=C[Q+2],ee--;break}}while(!0)}while(ee>=258&&Z>=10);return U=k.avail_in-Z,U=L>>3>3:U,Z+=U,j-=U,L-=U<<3,T.bitb=M,T.bitk=L,k.avail_in=Z,k.total_in+=j-k.next_in_index,k.next_in_index=j,T.write=F,0}n.init=function(f,g,v,_,A,D){t=Ei,c=f,p=g,m=v,y=_,w=A,E=D,i=null},n.proc=function(f,g,v){let _,A,D,T=0,k=0,b=0,C,O,S,M;for(b=g.next_in_index,C=g.avail_in,T=f.bitb,k=f.bitk,O=f.write,S=O=258&&C>=10&&(f.bitb=T,f.bitk=k,g.avail_in=C,g.total_in+=b-g.next_in_index,g.next_in_index=b,f.write=O,v=d(c,p,m,y,w,E,f,g),b=g.next_in_index,C=g.avail_in,T=f.bitb,k=f.bitk,O=f.write,S=O>>=i[A+1],k-=i[A+1],D=i[A],D===0){a=i[A+2],t=ms;break}if(D&16){s=D&15,e=i[A+2],t=ps;break}if(!(D&64)){o=D,r=A/3+i[A+2];break}if(D&32){t=Gr;break}return t=_i,g.msg="invalid literal/length code",v=-3,f.bitb=T,f.bitk=k,g.avail_in=C,g.total_in+=b-g.next_in_index,g.next_in_index=b,f.write=O,f.inflate_flush(g,v);case ps:for(_=s;k<_;){if(C!==0)v=0;else return f.bitb=T,f.bitk=k,g.avail_in=C,g.total_in+=b-g.next_in_index,g.next_in_index=b,f.write=O,f.inflate_flush(g,v);C--,T|=(g.read_byte(b++)&255)<>=_,k-=_,o=p,i=w,r=E,t=us;case us:for(_=o;k<_;){if(C!==0)v=0;else return f.bitb=T,f.bitk=k,g.avail_in=C,g.total_in+=b-g.next_in_index,g.next_in_index=b,f.write=O,f.inflate_flush(g,v);C--,T|=(g.read_byte(b++)&255)<>=i[A+1],k-=i[A+1],D=i[A],D&16){s=D&15,l=i[A+2],t=fs;break}if(!(D&64)){o=D,r=A/3+i[A+2];break}return t=_i,g.msg="invalid distance code",v=-3,f.bitb=T,f.bitk=k,g.avail_in=C,g.total_in+=b-g.next_in_index,g.next_in_index=b,f.write=O,f.inflate_flush(g,v);case fs:for(_=s;k<_;){if(C!==0)v=0;else return f.bitb=T,f.bitk=k,g.avail_in=C,g.total_in+=b-g.next_in_index,g.next_in_index=b,f.write=O,f.inflate_flush(g,v);C--,T|=(g.read_byte(b++)&255)<>=_,k-=_,t=ds;case ds:for(M=O-l;M<0;)M+=f.end;for(;e!==0;){if(S===0&&(O==f.end&&f.read!==0&&(O=0,S=O7&&(k-=8,C++,b--),f.write=O,v=f.inflate_flush(g,v),O=f.write,S=Od.avail_out&&(g=d.avail_out),g!==0&&f==-5&&(f=0),d.avail_out-=g,d.total_out+=g,d.next_out.set(e.win.subarray(_,_+g),v),v+=g,_+=g,_==e.end&&(_=0,e.write==e.end&&(e.write=0),g=e.write-_,g>d.avail_out&&(g=d.avail_out),g!==0&&f==-5&&(f=0),d.avail_out-=g,d.total_out+=g,d.next_out.set(e.win.subarray(_,_+g),v),v+=g,_+=g),d.next_out_index=v,e.read=_,f},e.proc=function(d,f){let g,v,_,A,D,T,k,b;for(A=d.next_in_index,D=d.avail_in,v=e.bitb,_=e.bitk,T=e.write,k=T>>1){case 0:v>>>=3,_-=3,g=_&7,v>>>=g,_-=g,i=Vr;break;case 1:C=[],O=[],S=[[]],M=[[]],Xr.inflate_trees_fixed(C,O,S,M),p.init(C[0],O[0],S[0],0,M[0],0),v>>>=3,_-=3,i=Ti;break;case 2:v>>>=3,_-=3,i=bs;break;case 3:return v>>>=3,_-=3,i=Zt,d.msg="invalid block type",f=-3,e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f)}break;case Vr:for(;_<32;){if(D!==0)f=0;else return e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);D--,v|=(d.read_byte(A++)&255)<<_,_+=8}if((~v>>>16&65535)!=(v&65535))return i=Zt,d.msg="invalid stored block lengths",f=-3,e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);r=v&65535,v=_=0,i=r!==0?ys:m!==0?Ai:fn;break;case ys:if(D===0||k===0&&(T==e.end&&e.read!==0&&(T=0,k=TD&&(g=D),g>k&&(g=k),e.win.set(d.read_buf(A,g),T),A+=g,D-=g,T+=g,k-=g,(r-=g)!==0)break;i=m!==0?Ai:fn;break;case bs:for(;_<14;){if(D!==0)f=0;else return e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);D--,v|=(d.read_byte(A++)&255)<<_,_+=8}if(o=g=v&16383,(g&31)>29||(g>>5&31)>29)return i=Zt,d.msg="too many length or distance symbols",f=-3,e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);if(g=258+(g&31)+(g>>5&31),!s||s.length>>=14,_-=14,a=0,i=xs;case xs:for(;a<4+(o>>>10);){for(;_<3;){if(D!==0)f=0;else return e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);D--,v|=(d.read_byte(A++)&255)<<_,_+=8}s[gs[a++]]=v&7,v>>>=3,_-=3}for(;a<19;)s[gs[a++]]=0;if(l[0]=7,g=E.inflate_trees_bits(s,l,c,y,d),g!=0)return f=g,f==-3&&(s=null,i=Zt),e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);a=0,i=ws;case ws:for(;g=o,!(a>=258+(g&31)+(g>>5&31));){let ee,z;for(g=l[0];_>>=g,_-=g,s[a++]=z;else{for(b=z==18?7:z-14,ee=z==18?11:3;_>>=g,_-=g,ee+=v&De[b],v>>>=b,_-=b,b=a,g=o,b+ee>258+(g&31)+(g>>5&31)||z==16&&b<1)return s=null,i=Zt,d.msg="invalid bit length repeat",f=-3,e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);z=z==16?s[b-1]:0;do s[b++]=z;while(--ee!==0);a=b}}if(c[0]=-1,L=[],j=[],Z=[],F=[],L[0]=9,j[0]=6,g=o,g=E.inflate_trees_dynamic(257+(g&31),1+(g>>5&31),s,L,j,Z,F,y,d),g!=0)return g==-3&&(s=null,i=Zt),f=g,e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,e.inflate_flush(d,f);p.init(L[0],j[0],y,Z[0],y,F[0]),i=Ti;case Ti:if(e.bitb=v,e.bitk=_,d.avail_in=D,d.total_in+=A-d.next_in_index,d.next_in_index=A,e.write=T,(f=p.proc(e,d,f))!=1)return e.inflate_flush(d,f);if(f=0,p.free(d),A=d.next_in_index,D=d.avail_in,v=e.bitb,_=e.bitk,T=e.write,k=T15?(n.inflateEnd(e),-2):(n.wbits=i,e.istate.blocks=new Ld(e,1<>4)+8>a.wbits){a.mode=Et,e.msg="invalid win size",a.marker=5;break}a.mode=Es;case Es:if(e.avail_in===0)return r;if(r=i,e.avail_in--,e.total_in++,o=e.read_byte(e.next_in_index++)&255,((a.method<<8)+o)%31!==0){a.mode=Et,e.msg="incorrect header check",a.marker=5;break}if(!(o&Pd)){a.mode=Bn;break}a.mode=_s;case _s:if(e.avail_in===0)return r;r=i,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=Ts;case Ts:if(e.avail_in===0)return r;r=i,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=As;case As:if(e.avail_in===0)return r;r=i,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=ks;case ks:return e.avail_in===0?r:(r=i,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=Kr,2);case Kr:return a.mode=Et,e.msg="need dictionary",a.marker=0,-2;case Bn:if(r=a.blocks.proc(e,r),r==-3){a.mode=Et,a.marker=0;break}if(r==0&&(r=i),r!=1)return r;r=i,a.blocks.reset(e,a.was),a.mode=Ns;case Ns:return e.avail_in=0,1;case Et:return-3;default:return-2}},n.inflateSetDictionary=function(e,i,r){let o=0,a=r;if(!e||!e.istate||e.istate.mode!=Kr)return-2;let s=e.istate;return a>=1<0&&e.next_in_index!=y&&(l(e.next_in_index),y=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return c.length>1?(m=new Uint8Array(E),c.forEach(function(d){m.set(d,w),w+=d.length})):m=c[0]?new Uint8Array(c[0]):new Uint8Array,m}},t.flush=function(){e.inflateEnd()}}var Ds="/",db=new Date(2107,11,31),mb=new Date(1980,0,1),_e=void 0,dn="undefined",ki="function";var Un=class{constructor(t){return class extends TransformStream{constructor(e,i){let r=new t(i);super({transform(o,a){a.enqueue(r.append(o))},flush(o){let a=r.flush();a&&o.enqueue(a)}})}}}};var jd=64,Cs=2;try{typeof navigator!=dn&&navigator.hardwareConcurrency&&(Cs=navigator.hardwareConcurrency)}catch(n){}var Hd={chunkSize:512*1024,maxWorkers:Cs,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:_e,CompressionStreamNative:typeof CompressionStream!=dn&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=dn&&DecompressionStream},Tt=Object.assign({},Hd);function Jr(){return Tt}function Is(n){return Math.max(n.chunkSize,jd)}function Ni(n){let{baseURL:t,chunkSize:e,maxWorkers:i,terminateWorkerTimeout:r,useCompressionStream:o,useWebWorkers:a,Deflate:s,Inflate:l,CompressionStream:c,DecompressionStream:p,workerScripts:m}=n;if(_t("baseURL",t),_t("chunkSize",e),_t("maxWorkers",i),_t("terminateWorkerTimeout",r),_t("useCompressionStream",o),_t("useWebWorkers",a),s&&(Tt.CompressionStream=new Un(s)),l&&(Tt.DecompressionStream=new Un(l)),_t("CompressionStream",c),_t("DecompressionStream",p),m!==_e){let{deflate:y,inflate:w}=m;if((y||w)&&(Tt.workerScripts||(Tt.workerScripts={})),y){if(!Array.isArray(y))throw new Error("workerScripts.deflate must be an array");Tt.workerScripts.deflate=y}if(w){if(!Array.isArray(w))throw new Error("workerScripts.inflate must be an array");Tt.workerScripts.inflate=w}}}function _t(n,t){t!==_e&&(Tt[n]=t)}var Fs=[];for(let n=0;n<256;n++){let t=n;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;Fs[n]=t}var ct=class{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let i=0,r=t.length|0;i>>8^Fs[(e^t[i])&255];this.crc=e}get(){return~this.crc}};var jn=class extends TransformStream{constructor(){let t,e=new ct;super({transform(i,r){e.append(i),r.enqueue(i)},flush(){let i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,e.get()),t.value=i}}),t=this}};function Ls(n){if(typeof TextEncoder=="undefined"){n=unescape(encodeURIComponent(n));let t=new Uint8Array(n.length);for(let e=0;e0&&t&&(n[e-1]=Te.partial(t,n[e-1]&2147483648>>t-1,1)),n},partial(n,t,e){return n===32?t:(e?t|0:t<<32-n)+n*1099511627776},getPartial(n){return Math.round(n/1099511627776)||32},_shiftRight(n,t,e,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(e),e=0;if(t===0)return i.concat(n);for(let a=0;a>>t),e=n[a]<<32-t;let r=n.length?n[n.length-1]:0,o=Te.getPartial(r);return i.push(Te.partial(t+o&31,t+o>32?e:i.pop(),1)),i}},Hn={bytes:{fromBits(n){let e=Te.bitLength(n)/8,i=new Uint8Array(e),r;for(let o=0;o>>24,r<<=8;return i},toBits(n){let t=[],e,i=0;for(e=0;e9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let o=new Uint32Array(e),a=0;for(let s=t.blockSize+i-(t.blockSize+i&t.blockSize-1);s<=r;s+=t.blockSize)t._block(o.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){let n=this,t=n._buffer,e=n._h;t=Te.concat(t,[Te.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(n._length/4294967296)),t.push(n._length|0);t.length;)n._block(t.splice(0,16));return n.reset(),e}_f(n,t,e,i){if(n<=19)return t&e|~t&i;if(n<=39)return t^e^i;if(n<=59)return t&e|t&i|e&i;if(n<=79)return t^e^i}_S(n,t){return t<>>32-n}_block(n){let t=this,e=t._h,i=Array(80);for(let c=0;c<16;c++)i[c]=n[c];let r=e[0],o=e[1],a=e[2],s=e[3],l=e[4];for(let c=0;c<=79;c++){c>=16&&(i[c]=t._S(1,i[c-3]^i[c-8]^i[c-14]^i[c-16]));let p=t._S(5,r)+t._f(c,o,a,s)+l+i[c]+t._key[Math.floor(c/20)]|0;l=s,s=a,a=t._S(30,o),o=r,r=p}e[0]=e[0]+r|0,e[1]=e[1]+o|0,e[2]=e[2]+a|0,e[3]=e[3]+s|0,e[4]=e[4]+l|0}};var Qr={};Qr.aes=class{constructor(n){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let e=t._tables[0][4],i=t._tables[1],r=n.length,o,a,s,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[a=n.slice(0),s=[]],o=r;o<4*r+28;o++){let c=a[o-1];(o%r===0||r===8&&o%r===4)&&(c=e[c>>>24]<<24^e[c>>16&255]<<16^e[c>>8&255]<<8^e[c&255],o%r===0&&(c=c<<8^c>>>24^l<<24,l=l<<1^(l>>7)*283)),a[o]=a[o-r]^c}for(let c=0;o;c++,o--){let p=a[c&3?o:o-4];o<=4||c<4?s[c]=p:s[c]=i[0][e[p>>>24]]^i[1][e[p>>16&255]]^i[2][e[p>>8&255]]^i[3][e[p&255]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){let n=this._tables[0],t=this._tables[1],e=n[4],i=t[4],r=[],o=[],a,s,l,c;for(let p=0;p<256;p++)o[(r[p]=p<<1^(p>>7)*283)^p]=p;for(let p=a=0;!e[p];p^=s||1,a=o[a]||1){let m=a^a<<1^a<<2^a<<3^a<<4;m=m>>8^m&255^99,e[p]=m,i[m]=p,c=r[l=r[s=r[p]]];let y=c*16843009^l*65537^s*257^p*16843008,w=r[m]*257^m*16843008;for(let E=0;E<4;E++)n[E][p]=w=w<<24^w>>>8,t[E][m]=y=y<<24^y>>>8}for(let p=0;p<5;p++)n[p]=n[p].slice(0),t[p]=t[p].slice(0)}_crypt(n,t){if(n.length!==4)throw new Error("invalid aes block size");let e=this._key[t],i=e.length/4-2,r=[0,0,0,0],o=this._tables[t],a=o[0],s=o[1],l=o[2],c=o[3],p=o[4],m=n[0]^e[0],y=n[t?3:1]^e[1],w=n[2]^e[2],E=n[t?1:3]^e[3],d=4,f,g,v;for(let _=0;_>>24]^s[y>>16&255]^l[w>>8&255]^c[E&255]^e[d],g=a[y>>>24]^s[w>>16&255]^l[E>>8&255]^c[m&255]^e[d+1],v=a[w>>>24]^s[E>>16&255]^l[m>>8&255]^c[y&255]^e[d+2],E=a[E>>>24]^s[m>>16&255]^l[y>>8&255]^c[w&255]^e[d+3],d+=4,m=f,y=g,w=v;for(let _=0;_<4;_++)r[t?3&-_:_]=p[m>>>24]<<24^p[y>>16&255]<<16^p[w>>8&255]<<8^p[E&255]^e[d++],f=m,m=y,y=w,w=E,E=f;return r}};var Ms={getRandomValues(n){let t=new Uint32Array(n.buffer),e=i=>{let r=987654321,o=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&o,i=18e3*(i&65535)+(i>>16)&o,(((r<<16)+i&o)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,r;i>24&255)===255){let t=n>>16&255,e=n>>8&255,i=n&255;t===255?(t=0,e===255?(e=0,i===255?i=0:++i):++e):++t,n=0,n+=t<<16,n+=e<<8,n+=i}else n+=1<<24;return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,t,e){let i;if(!(i=t.length))return[];let r=Te.bitLength(t);for(let o=0;o>5)+1<<2,o,a,s,l,c,p=new ArrayBuffer(r),m=new DataView(p),y=0,w=Te;for(t=Hn.bytes.toBits(t),c=1;y<(r||1);c++){for(o=a=n.encrypt(w.concat(t,[c])),s=1;sr&&(n=new e().update(n).finalize());for(let o=0;othis.resolveReady=o),password:t,signed:e,strength:i-1,pending:new Uint8Array})},async transform(o,a){let s=this,{password:l,strength:c,resolveReady:p,ready:m}=s;l?(await Qd(s,c,l,Fe(o,0,Wn[c]+2)),o=Fe(o,Wn[c]+2),r?a.error(new Error(pt)):p()):await m;let y=new Uint8Array(o.length-Nt-(o.length-Nt)%mn);a.enqueue(Ws(s,o,y,0,Nt,!0))},async flush(o){let{signed:a,ctr:s,hmac:l,pending:c,ready:p}=this;await p;let m=Fe(c,0,c.length-Nt),y=Fe(c,c.length-Nt),w=new Uint8Array;if(m.length){let E=Yn(Je,m);l.update(E);let d=s.update(E);w=Zn(Je,d)}if(a){let E=Fe(Zn(Je,l.digest()),0,Nt);for(let d=0;dthis.resolveReady=r),password:t,strength:e-1,pending:new Uint8Array})},async transform(r,o){let a=this,{password:s,strength:l,resolveReady:c,ready:p}=a,m=new Uint8Array;s?(m=await em(a,l,s),c()):await p;let y=new Uint8Array(m.length+r.length-r.length%mn);y.set(m,0),o.enqueue(Ws(a,r,y,m.length,0))},async flush(r){let{ctr:o,hmac:a,pending:s,ready:l}=this;await l;let c=new Uint8Array;if(s.length){let p=o.update(Yn(Je,s));a.update(p),c=Zn(Je,p)}i.signature=Zn(Je,a.digest()).slice(0,Nt),r.enqueue(no(c,i.signature))}}),i=this}};function Ws(n,t,e,i,r,o){let{ctr:a,hmac:s,pending:l}=n,c=t.length-r;l.length&&(t=no(l,t),e=im(e,c-c%mn));let p;for(p=0;p<=c-mn;p+=mn){let m=Yn(Je,Fe(t,p,p+mn));o&&s.update(m);let y=a.update(m);o||s.update(y),e.set(Zn(Je,y),p+i)}return n.pending=Fe(t,p),e}async function Qd(n,t,e,i){let r=await Zs(n,t,e,Fe(i,0,Wn[t])),o=Fe(i,Wn[t]);if(r[0]!=o[0]||r[1]!=o[1])throw new Error(kt)}async function em(n,t,e){let i=Si(new Uint8Array(Wn[t])),r=await Zs(n,t,e,i);return no(i,r)}async function Zs(n,t,e,i){n.password=null;let r=Ls(e),o=await tm(Wd,r,zd,!1,Gd),a=await nm(Object.assign({salt:i},to),o,8*(qn[t]*2+2)),s=new Uint8Array(a),l=Yn(Je,Fe(s,0,qn[t])),c=Yn(Je,Fe(s,qn[t],qn[t]*2)),p=Fe(s,qn[t]*2);return Object.assign(n,{keys:{key:l,authentication:c,passwordVerification:p},ctr:new Xd(new Kd(l),Array.from(Vd)),hmac:new Jd(c)}),p}async function tm(n,t,e,i,r){if($s)try{return await zn.importKey(n,t,e,i,r)}catch(o){return $s=!1,At.importKey(t)}else return At.importKey(t)}async function nm(n,t,e){if(Bs)try{return await zn.deriveBits(n,t,e)}catch(i){return Bs=!1,At.pbkdf2(t,n.salt,to.iterations,e)}else return At.pbkdf2(t,n.salt,to.iterations,e)}function no(n,t){let e=n;return n.length+t.length&&(e=new Uint8Array(n.length+t.length),e.set(n,0),e.set(t,n.length)),e}function im(n,t){if(t&&t>n.length){let e=n;n=new Uint8Array(t),n.set(e,0)}return n}function Fe(n,t,e){return n.subarray(t,e)}function Zn(n,t){return n.fromBits(t)}function Yn(n,t){return n.toBits(t)}var hn=12,Ci=class extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:i}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),Vs(this,t)},transform(r,o){let a=this;if(a.password){let s=Ys(a,r.subarray(0,hn));if(a.password=null,s[hn-1]!=a.passwordVerification)throw new Error(kt);r=r.subarray(hn)}i?o.error(new Error(pt)):o.enqueue(Ys(a,r))}})}},Ii=class extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),Vs(this,t)},transform(i,r){let o=this,a,s;if(o.password){o.password=null;let l=Si(new Uint8Array(hn));l[hn-1]=o.passwordVerification,a=new Uint8Array(i.length+l.length),a.set(zs(o,l),0),s=hn}else a=new Uint8Array(i.length),s=0;a.set(zs(o,i),s),r.enqueue(a)}})}};function Ys(n,t){let e=new Uint8Array(t.length);for(let i=0;i>>24]),r=~n.crcKey2.get(),n.keys=[e,i,r]}function Ks(n){let t=n.keys[2]|2;return Xs(Math.imul(t,t^1)>>>8)}function Xs(n){return n&255}function Gs(n){return n&4294967295}var Js="deflate-raw",Fi=class extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:i,CompressionStreamNative:r}){super({});let{compressed:o,encrypted:a,useCompressionStream:s,zipCrypto:l,signed:c,level:p}=t,m=this,y,w,E=Qs(super.readable);(!a||l)&&c&&(y=new jn,E=Qe(E,y)),o&&(E=tl(E,s,{level:p,chunkSize:e},r,i)),a&&(l?E=Qe(E,new Ii(t)):(w=new Oi(t),E=Qe(E,w))),el(m,E,async()=>{let d;a&&!l&&(d=w.signature),(!a||l)&&c&&(d=new DataView(y.value.buffer).getUint32(0)),m.signature=d})}},Li=class extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:i,DecompressionStreamNative:r}){super({});let{zipCrypto:o,encrypted:a,signed:s,signature:l,compressed:c,useCompressionStream:p}=t,m,y,w=Qs(super.readable);a&&(o?w=Qe(w,new Ci(t)):(y=new Ri(t),w=Qe(w,y))),c&&(w=tl(w,p,{chunkSize:e},r,i)),(!a||o)&&s&&(m=new jn,w=Qe(w,m)),el(this,w,async()=>{if((!a||o)&&s){let E=new DataView(m.value.buffer);if(l!=E.getUint32(0,!1))throw new Error(Yt)}})}};function Qs(n){return Qe(n,new TransformStream({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function el(n,t,e){t=Qe(t,new TransformStream({flush:e})),Object.defineProperty(n,"readable",{get(){return t}})}function tl(n,t,e,i,r){try{let o=t&&i?i:r;n=Qe(n,new o(Js,e))}catch(o){if(t)n=Qe(n,new r(Js,e));else throw o}return n}function Qe(n,t){return n.pipeThrough(t)}var nl="message",il="start",rl="pull",ro="data",ol="ack",al="close",sl="deflate",Mi="inflate";var Pi=class extends TransformStream{constructor(t,e){super({});let i=this,{codecType:r}=t,o;r.startsWith(sl)?o=Fi:r.startsWith(Mi)&&(o=Li);let a=0,s=new o(t,e),l=super.readable,c=new TransformStream({transform(p,m){p&&p.length&&(a+=p.length,m.enqueue(p))},flush(){let{signature:p}=s;Object.assign(i,{signature:p,size:a})}});Object.defineProperty(i,"readable",{get(){return l.pipeThrough(s).pipeThrough(c)}})}};var rm=typeof Worker!=dn;var gn=class{constructor(t,{readable:e,writable:i},{options:r,config:o,streamOptions:a,useWebWorkers:s,transferStreams:l,scripts:c},p){let{signal:m}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new ao(e,a,o),{signal:m}),writable:i,options:Object.assign({},r),scripts:c,transferStreams:l,terminate(){let{worker:y,busy:w}=t;y&&!w&&(y.terminate(),t.interface=null)},onTaskFinished(){t.busy=!1,p(t)}}),(s&&rm?am:om)(t,o)}},ao=class extends TransformStream{constructor(t,{onstart:e,onprogress:i,size:r,onend:o},{chunkSize:a}){let s=0;super({start(){e&&oo(e,r)},async transform(l,c){s+=l.length,i&&await oo(i,s,r),c.enqueue(l)},flush(){t.size=s,o&&oo(o,s)}},{highWaterMark:1,size:()=>a})}};async function oo(n,...t){try{await n(...t)}catch(e){}}function om(n,t){return{run:()=>sm(n,t)}}function am(n,{baseURL:t,chunkSize:e}){return n.interface||Object.assign(n,{worker:pm(n.scripts[0],t,n),interface:{run:()=>lm(n,{chunkSize:e})}}),n.interface}async function sm({options:n,readable:t,writable:e,onTaskFinished:i},r){let o=new Pi(n,r);try{await t.pipeThrough(o).pipeTo(e,{preventClose:!0,preventAbort:!0});let{signature:a,size:s}=o;return{signature:a,size:s}}finally{i()}}async function lm(n,t){let e,i,r=new Promise((y,w)=>{e=y,i=w});Object.assign(n,{reader:null,writer:null,resolveResult:e,rejectResult:i,result:r});let{readable:o,options:a,scripts:s}=n,{writable:l,closed:c}=cm(n.writable);so({type:il,scripts:s.slice(1),options:a,config:t,readable:o,writable:l},n)||Object.assign(n,{reader:o.getReader(),writer:l.getWriter()});let m=await r;try{await l.getWriter().close()}catch(y){}return await c,m}function cm(n){let t=n.getWriter(),e,i=new Promise(o=>e=o);return{writable:new WritableStream({async write(o){await t.ready,await t.write(o)},close(){t.releaseLock(),e()},abort(o){return t.abort(o)}}),closed:i}}var ll=!0,cl=!0;function pm(n,t,e){let i={type:"module"},r,o;typeof n==ki&&(n=n());try{r=new URL(n,t)}catch(a){r=n}if(ll)try{o=new Worker(r)}catch(a){ll=!1,o=new Worker(r,i)}else o=new Worker(r,i);return o.addEventListener(nl,a=>um(a,e)),o}function so(n,{worker:t,writer:e,onTaskFinished:i,transferStreams:r}){try{let{value:o,readable:a,writable:s}=n,l=[];if(o&&(n.value=o.buffer,l.push(n.value)),r&&cl?(a&&l.push(a),s&&l.push(s)):n.readable=n.writable=null,l.length)try{return t.postMessage(n,l),!0}catch(c){cl=!1,n.readable=n.writable=null,t.postMessage(n)}else t.postMessage(n)}catch(o){throw e&&e.releaseLock(),i(),o}}async function um({data:n},t){let{type:e,value:i,messageId:r,result:o,error:a}=n,{reader:s,writer:l,resolveResult:c,rejectResult:p,onTaskFinished:m}=t;try{if(a){let{message:w,stack:E,code:d,name:f}=a,g=new Error(w);Object.assign(g,{stack:E,code:d,name:f}),y(g)}else{if(e==rl){let{value:w,done:E}=await s.read();so({type:ro,value:w,done:E,messageId:r},t)}e==ro&&(await l.ready,await l.write(new Uint8Array(i)),so({type:ol,messageId:r},t)),e==al&&y(null,o)}}catch(w){y(w)}function y(w,E){w?p(w):c(E),l&&l.releaseLock(),m()}}var zt=[],lo=[];var pl=0;async function fl(n,t){let{options:e,config:i}=t,{transferStreams:r,useWebWorkers:o,useCompressionStream:a,codecType:s,compressed:l,signed:c,encrypted:p}=e,{workerScripts:m,maxWorkers:y,terminateWorkerTimeout:w}=i;t.transferStreams=r||r===_e;let E=!l&&!c&&!p&&!t.transferStreams;t.useWebWorkers=!E&&(o||o===_e&&i.useWebWorkers),t.scripts=t.useWebWorkers&&m?m[s]:[],e.useCompressionStream=a||a===_e&&i.useCompressionStream;let d,f=zt.find(v=>!v.busy);if(f)ul(f),d=new gn(f,n,t,g);else if(zt.lengthlo.push({resolve:v,stream:n,workerOptions:t}));return d.run();function g(v){if(lo.length){let[{resolve:_,stream:A,workerOptions:D}]=lo.splice(0,1);_(new gn(v,A,D,g))}else v.worker?(ul(v),Number.isFinite(w)&&w>=0&&(v.terminateTimeout=setTimeout(()=>{zt=zt.filter(_=>_!=v),v.terminate()},w))):zt=zt.filter(_=>_!=v)}}function ul(n){let{terminateTimeout:t}=n;t&&(clearTimeout(t),n.terminateTimeout=null)}var fm="Writer iterator completed too soon";var dm="Content-Type";var mm=64*1024,dl="writable",Gn=class{constructor(){this.size=0}init(){this.initialized=!0}},yn=class extends Gn{get readable(){let t=this,{chunkSize:e=mm}=t,i=new ReadableStream({start(){this.chunkOffset=0},async pull(r){let{offset:o=0,size:a,diskNumberStart:s}=i,{chunkOffset:l}=this;r.enqueue(await xe(t,o+l,Math.min(e,a-l),s)),l+e>a?r.close():this.chunkOffset+=e}});return i}};var St=class extends yn{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){let i=this,r=t+e,a=await(t||re&&(a=a.slice(t,r)),new Uint8Array(a)}},Vn=class extends Gn{constructor(t){super();let e=this,i=new TransformStream,r=[];t&&r.push([dm,t]),Object.defineProperty(e,dl,{get(){return i.writable}}),e.blob=new Response(i.readable,{headers:r}).blob()}getData(){return this.blob}};var $i=class extends Vn{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){let{encoding:t,utf8:e}=this,i=await super.getData();if(i.text&&e)return i.text();{let r=new FileReader;return new Promise((o,a)=>{Object.assign(r,{onload:({target:s})=>o(s.result),onerror:()=>a(r.error)}),r.readAsText(i,t)})}}};var co=class extends yn{constructor(t){super(),this.readers=t}async init(){let t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(i,r)=>{await i.init(),r!=e.length-1&&(t.lastDiskOffset+=i.size),t.size+=i.size})),super.init()}async readUint8Array(t,e,i=0){let r=this,{readers:o}=this,a,s=i;s==-1&&(s=o.length-1);let l=t;for(;l>=o[s].size;)l-=o[s].size,s++;let c=o[s],p=c.size;if(l+e<=p)a=await xe(c,l,e);else{let m=p-l;a=new Uint8Array(e),a.set(await xe(c,l,m)),a.set(await r.readUint8Array(t+m,e-m,i),m)}return r.lastDiskNumber=Math.max(s,r.lastDiskNumber),a}},Bi=class extends Gn{constructor(t,e=4294967295){super();let i=this;Object.assign(i,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let r,o,a,s=new WritableStream({async write(p){let{availableSize:m}=i;if(a)p.length>=m?(await l(p.slice(0,m)),await c(),i.diskOffset+=r.size,i.diskNumber++,a=null,await this.write(p.slice(m))):await l(p);else{let{value:y,done:w}=await t.next();if(w&&!y)throw new Error(fm);r=y,r.size=0,r.maxSize&&(i.maxSize=r.maxSize),i.availableSize=i.maxSize,await Kn(r),o=y.writable,a=o.getWriter(),await this.write(p)}},async close(){await a.ready,await c()}});Object.defineProperty(i,dl,{get(){return s}});async function l(p){let m=p.length;m&&(await a.ready,await a.write(p),r.size+=m,i.size+=m,i.availableSize-=m)}async function c(){o.size=r.size,await a.close()}}};async function Kn(n,t){n.init&&!n.initialized&&await n.init(t)}function ml(n){return Array.isArray(n)&&(n=new co(n)),n instanceof ReadableStream&&(n={readable:n}),n}function hl(n){n.writable===_e&&typeof n.next==ki&&(n=new Bi(n)),n instanceof WritableStream&&(n={writable:n});let{writable:t}=n;return t.size===_e&&(t.size=0),n instanceof Bi||Object.assign(n,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),n}function xe(n,t,e,i){return n.readUint8Array(t,e,i)}var gl="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),hm=gl.length==256;function yl(n){if(hm){let t="";for(let e=0;ethis[e]=t[e])}};var To="File format is not recognized",Pm="End of central directory not found",Mm="End of Zip64 central directory not found",$m="End of Zip64 central directory locator not found",Bm="Central directory header not found",Um="Local file header not found",jm="Zip64 extra field not found",Hm="File contains encrypted entry",qm="Encryption method not supported",kl="Compression method not supported",Nl="Split zip file",Sl="utf-8",Rl="cp437",Wm=[[ho,4294967295],[go,4294967295],[yo,4294967295],[ji,65535]],Zm={[65535]:{getValue:ae,bytes:4},[4294967295]:{getValue:qi,bytes:8}},Vt=class{constructor(t,e={}){Object.assign(this,{reader:ml(t),options:e,config:Jr()})}async*getEntriesGenerator(t={}){let e=this,{reader:i}=e,{config:r}=e;if(await Kn(i),(i.size===_e||!i.readUint8Array)&&(i=new St(await new Response(i.readable).blob()),await Kn(i)),i.size<22)throw new Error(To);i.chunkSize=Is(r);let o=await Km(i,101010256,i.size,22,65535*16);if(!o){let O=await xe(i,0,4),S=he(O);throw ae(S)==134695760?new Error(Nl):new Error(Pm)}let a=he(o),s=ae(a,12),l=ae(a,16),c=o.offset,p=me(a,20),m=c+22+p,y=me(a,4),w=i.lastDiskNumber||0,E=me(a,6),d=me(a,8),f=0,g=0;if(l==4294967295||s==4294967295||d==65535||E==65535){let O=await xe(i,o.offset-20,20),S=he(O);if(ae(S,0)!=117853008)throw new Error(Mm);l=qi(S,8);let M=await xe(i,l,56,-1),L=he(M),j=o.offset-20-56;if(ae(L,0)!=101075792&&l!=j){let Z=l;l=j,f=l-Z,M=await xe(i,l,56,-1),L=he(M)}if(ae(L,0)!=101075792)throw new Error($m);y==65535&&(y=ae(L,16)),E==65535&&(E=ae(L,20)),d==65535&&(d=qi(L,32)),s==4294967295&&(s=qi(L,40)),l-=s}if(w!=y)throw new Error(Nl);if(l<0||l>=i.size)throw new Error(To);let v=0,_=await xe(i,l,s,E),A=he(_);if(s){let O=o.offset-s;if(ae(A,v)!=33639248&&l!=O){let S=l;l=O,f=l-S,_=await xe(i,l,s,E),A=he(_)}}let D=o.offset-l-(i.lastDiskOffset||0);if(s!=D&&D>=0&&(s=D,_=await xe(i,l,s,E),A=he(_)),l<0||l>=i.size)throw new Error(To);let T=Le(e,t,"filenameEncoding"),k=Le(e,t,"commentEncoding");for(let O=0;OS.getData(N,R,I),v=U;let{onprogress:x}=t;if(x)try{await x(O+1,d,new Xn(S))}catch(N){}yield R}let b=Le(e,t,"extractPrependedData"),C=Le(e,t,"extractAppendedData");return b&&(e.prependedData=g>0?await xe(i,0,g):new Uint8Array),e.comment=p?await xe(i,c+22,p):new Uint8Array,C&&(e.appendedData=m>>8&255:y>>>24&255),signature:y,compressed:c!=0,encrypted:A,useWebWorkers:Le(r,i,"useWebWorkers"),useCompressionStream:Le(r,i,"useCompressionStream"),transferStreams:Le(r,i,"transferStreams"),checkPasswordOnly:O},config:p,streamOptions:{signal:C,size:k,onstart:M,onprogress:L,onend:j}},F=0;try{({outputSize:F}=await fl({readable:b,writable:S},Z))}catch(ee){if(!O||ee.message!=pt)throw ee}finally{let ee=Le(r,i,"preventClose");S.size+=F,!ee&&!S.locked&&await S.getWriter().close()}return O?void 0:t.getData?t.getData():S}};function Dl(n,t,e){let i=n.rawBitFlag=me(t,e+2),r=(i&1)==1,o=ae(t,e+6);Object.assign(n,{encrypted:r,version:me(t,e),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:o,lastModDate:Xm(o),filenameLength:me(t,e+22),extraFieldLength:me(t,e+24)})}async function Cl(n,t,e,i){let{rawExtraField:r}=t,o=t.extraField=new Map,a=he(new Uint8Array(r)),s=0;try{for(;st[r]==o);for(let r=0,o=0;r{if(n.data.length>=a+4){let c=ae(e,a);t[s]=n[s]=new Date(c*1e3);let p=o[l];n[p]=c}a+=4})}async function Km(n,t,e,i,r){let o=new Uint8Array(4),a=he(o);Jm(a,0,t);let s=i+r;return await l(i)||await l(Math.min(s,e));async function l(c){let p=e-c,m=await xe(n,p,c);for(let y=m.length-i;y>=0;y--)if(m[y]==o[0]&&m[y+1]==o[1]&&m[y+2]==o[2]&&m[y+3]==o[3])return{offset:p+y,buffer:m.slice(y,y+i).buffer}}}function Le(n,t,e){return t[e]===_e?n.options[e]:t[e]}function Xm(n){let t=(n&4294901760)>>16,e=n&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch(i){}}function Ao(n){return new Date(Number(n/BigInt(1e4)-BigInt(116444736e5)))}function bn(n,t){return n.getUint8(t)}function me(n,t){return n.getUint16(t,!0)}function ae(n,t){return n.getUint32(t,!0)}function qi(n,t){return Number(n.getBigUint64(t,!0))}function Jm(n,t,e){n.setUint32(t,e,!0)}function he(n){return new DataView(n.buffer)}Ni({Inflate:Os});var Kt=require("obsidian");function Il(n){let t=()=>URL.createObjectURL(new Blob([`const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self;class k{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const v=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;v[e]=t}class S{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^v[255&(t^e[n])];this.t=t}get(){return~this.t}}class z extends p{constructor(){let e;const t=new S;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const C={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=C.i(n);return 32===r?e.concat(t):C.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+C.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=C.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=C.i(s);return r.push(C.h(t+i&31,t+i>32?n:r.pop(),1)),r}},x={p:{m(e){const t=C.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.C;const n=e.S;t=C.concat(t,[C.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.I(t.splice(0,16));return e.reset(),n}V(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}P(e,t){return t<>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.P(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.P(5,o)+n.V(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.P(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},A={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew I.R(x.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=C;for(t=x.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.K[0].update(r[0]),t.K[1].update(r[1]),t.U=new n(t.K[0])}reset(){const e=this;e.U=new e.M(e.K[0]),e.N=!1}update(e){this.N=!0,this.U.update(e)}digest(){const e=this,t=e.U.D(),n=new e.M(e.K[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},D=void 0!==h&&"function"==typeof h.getRandomValues,V="Invalid password",P="Invalid signature",R="zipjs-abort-check-password";function B(e){return D?h.getRandomValues(e):A.getRandomValues(e)}const E=16,M={name:"PBKDF2"},K=t.assign({hash:{name:"HMAC"}},M),U=t.assign({iterations:1e3,hash:{name:"SHA-1"}},M),N=["deriveBits"],O=[8,12,16],T=[16,24,32],W=10,j=[0,0,0,0],H="undefined",L="function",F=typeof h!=H,q=F&&h.subtle,G=F&&typeof q!=H,J=x.p,Q=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},X=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=C.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return C.u(t,s)}},Y=I.R;let Z=F&&G&&typeof q.importKey==L,$=F&&G&&typeof q.deriveBits==L;class ee extends p{constructor({password:e,signed:n,encryptionStrength:r,checkPasswordOnly:o}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,signed:n,X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:c,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await re(e,t,n,ie(r,0,O[t])),o=ie(r,O[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(V)})(n,c,r,ie(e,0,O[c]+2)),e=ie(e,O[c]+2),o?t.error(new s(R)):f()):await a;const l=new i(e.length-W-(e.length-W)%E);t.enqueue(ne(n,e,l,0,W,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;await c;const f=ie(o,0,o.length-W),a=ie(o,o.length-W);let l=new i;if(f.length){const e=ce(J,f);r.update(e);const t=n.update(e);l=oe(J,t)}if(t){const e=ie(oe(J,r.digest()),0,W);for(let t=0;W>t;t++)if(e[t]!=a[t])throw new s(P)}e.enqueue(l)}})}}class te extends p{constructor({password:e,encryptionStrength:n}){let r;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,X:n-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=B(new i(O[t]));return se(r,await re(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%E);a.set(f,0),t.enqueue(ne(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:s,ready:o}=this;await o;let c=new i;if(s.length){const e=t.update(ce(J,s));n.update(e),c=oe(J,e)}r.signature=oe(J,n.digest()).slice(0,W),e.enqueue(se(c,r.signature))}}),r=this}}function ne(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=se(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%E)),u=0;l-E>=u;u+=E){const e=ce(J,ie(t,u,u+E));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(oe(J,s),u+r)}return e.pending=ie(t,u),n}async function re(n,r,s,o){n.password=null;const c=(e=>{if(void 0===w){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n{if(!Z)return I.importKey(t);try{return await q.importKey("raw",t,n,!1,s)}catch(e){return Z=!1,I.importKey(t)}})(0,c,K,0,N),a=await(async(e,t,n)=>{if(!$)return I.B(t,e.salt,U.iterations,n);try{return await q.deriveBits(e,t,n)}catch(r){return $=!1,I.B(t,e.salt,U.iterations,n)}})(t.assign({salt:o},U),f,8*(2*T[r]+2)),l=new i(a),u=ce(J,ie(l,0,T[r])),h=ce(J,ie(l,T[r],2*T[r])),d=ie(l,2*T[r]);return t.assign(n,{keys:{key:u,$:h,passwordVerification:d},Y:new X(new Q(u),e.from(j)),Z:new Y(h)}),d}function se(e,t){let n=e;return e.length+t.length&&(n=new i(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ie(e,t,n){return e.subarray(t,n)}function oe(e,t){return e.m(t)}function ce(e,t){return e.g(t)}class fe extends p{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;if(n.password){const t=le(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(V);e=e.subarray(12)}r?t.error(new s(R)):t.enqueue(le(n,e))}})}}class ae extends p{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=B(new i(12));t[11]=n.passwordVerification,r=new i(e.length+t.length),r.set(ue(n,t),0),s=12}else r=new i(e.length),s=0;r.set(ue(n,e),s),t.enqueue(r)}})}}function le(e,t){const n=new i(t.length);for(let r=0;r>>24]),i=~e.te.get(),e.keys=[n,s,i]}function de(e){const t=2|e.keys[2];return pe(r.imul(t,1^t)>>>8)}function pe(e){return 255&e}function ye(e){return 4294967295&e}const me="deflate-raw";class be extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=ke(super.readable);i&&!c||!f||(w=new z,d=ze(d,w)),s&&(d=Se(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=ze(d,new ae(e)):(h=new te(e),d=ze(d,h))),ve(u,d,(async()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ge extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=ke(super.readable);o&&(i?d=ze(d,new fe(e)):(h=new ee(e),d=ze(d,h))),a&&(d=Se(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new z,d=ze(d,w)),ve(this,d,(async()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(P)}}))}}function ke(e){return ze(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,r){n=ze(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Se(e,t,n,r,s){try{e=ze(e,new(t&&r?r:s)(me,n))}catch(r){if(!t)throw r;e=ze(e,new s(me,n))}return e}function ze(e,t){return e.pipeThrough(t)}const Ce="data";class xe extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=be:s.startsWith("inflate")&&(i=ge);let o=0;const c=new i(e,n),f=super.readable,a=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=c;t.assign(r,{signature:e,size:o})}});t.defineProperty(r,"readable",{get:()=>f.pipeThrough(c).pipeThrough(a)})}}const _e=new a,Ae=new a;let Ie=0;async function De(e){try{const{options:t,scripts:r,config:s}=e;r&&r.length&&importScripts.apply(void 0,r),self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new k(self.Deflate)),self.Inflate&&(s.DecompressionStream=new k(self.Inflate));const i={highWaterMark:1,size:()=>s.chunkSize},o=e.readable||new y({async pull(e){const t=new u((e=>_e.set(Ie,e)));Ve({type:"pull",messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ae.set(Ie,t),Ve({type:Ce,value:e,messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new xe(t,s);await o.pipeThrough(f).pipeTo(c,{preventClose:!0,preventAbort:!0});try{await c.getWriter().close()}catch(e){}const{signature:a,size:l}=f;Ve({type:"close",result:{signature:a,size:l}})}catch(e){Pe(e)}}function Ve(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Pe(e){const{message:t,stack:n,code:r,name:s}=e;d({error:{message:t,stack:n,code:r,name:s}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&De(e),t==Ce){const e=_e.get(n);_e.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ae.get(n);Ae.delete(n),e()}}catch(e){Pe(e)}}));const Re=-2;function Be(t){return Ee(t.map((([t,n])=>new e(t).fill(n,0,t))))}function Ee(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?Ee(n):n)),[])}const Me=[0,1,2,3].concat(...Be([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Ke(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Ue(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}Ke.ge=[0,1,2,3,4,5,6,7].concat(...Be([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Ke.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Ke.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Ke.Se=e=>256>e?Me[e]:Me[256+(e>>>7)],Ke.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Ke.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ke.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ke._e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Ne=Be([[144,8],[112,9],[24,7],[8,8]]);Ue.Ae=Ee([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Ne[t]])));const Oe=Be([[30,5]]);function Te(e,t,n,r,s){const i=this;i.Ie=e,i.De=t,i.Ve=n,i.Pe=r,i.Re=s}Ue.Be=Ee([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Oe[t]]))),Ue.Ee=new Ue(Ue.Ae,Ke.ze,257,286,15),Ue.Me=new Ue(Ue.Be,Ke.Ce,0,30,15),Ue.Ke=new Ue(null,Ke.xe,0,19,7);const We=[new Te(0,0,0,0,0),new Te(4,4,8,4,1),new Te(4,5,16,8,1),new Te(4,6,32,32,1),new Te(4,4,16,16,2),new Te(8,16,32,32,2),new Te(8,16,128,128,2),new Te(8,32,128,256,2),new Te(32,128,258,1024,2),new Te(32,258,258,4096,2)],je=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],He=113,Le=666,Fe=262;function qe(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function Ge(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,_,A,I,D,V,P,R,B,E,M,K;const U=new Ke,N=new Ke,O=new Ke;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)K[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?K[2*n]+=i:0!==n?(n!=r&&K[2*n]++,K[32]++):i>10?K[36]++:K[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ue[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,K)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,K),o--),Y(16,K),X(o-3,2)):o>10?(Y(18,K),X(o-11,7)):(Y(17,K),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(Ke.ge[n]+256+1)]++,M[2*Ke.Se(t)]++),0==(8191&W)&&V>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+Ke.Ce[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ue.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;V>0?(U.ne(e),N.ne(e),o=(()=>{let t;for(G(E,U.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===K[2*Ke._e[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Ue.Ae,Ue.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(K[2*Ke._e[r]+1],3);Z(E,e-1),Z(M,t-1)})(U.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-_-C,0===s&&0===C&&0===_)s=f;else if(-1==s)s--;else if(C>=f+f-Fe){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+_,s),_+=e,3>_||(p=255&u[C],p=(p<_&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=A;const o=C>f-Fe?C-(f-Fe):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>A||(r>>=2),c>_&&(c=_);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>_?_:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],K=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Re:(t.Fe=e,a=x,f=1<(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=He,c=0,U.re=E,U.ie=Ue.Ee,N.re=M,N.ie=Ue.Me,O.re=K,O.ie=Ue.Ke,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe,C=0,k=0,_=0,v=A=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=He&&n!=Le?Re:(e.Oe=null,e.Ne=null,e.Ue=null,d=null,h=null,u=null,e.Fe=null,n==He?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Re:(We[V].Re!=We[t].Re&&0!==e.qe&&(r=e.Ye(1)),V!=t&&(V=t,D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe),P=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Re;if(3>i)return 0;for(i>f-Fe&&(i=f-Fe,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return Re;if(!r.$e||!r.et&&0!==r.We||n==Le&&4!=i)return r.Le=je[4],Re;if(0===r.tt)return r.Le=je[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(V-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=He,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=je[7],-5;if(n==Le&&0!==t.We)return r.Le=je[7],-5;if(0!==t.We||0!==_||0!=i&&n!=Le){switch(R=-1,We[V].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=_){if(ie(),0===_&&0==e)return 0;if(0===_)break}if(C+=_,_=0,n=k+r,(0===C||C>=n)&&(_=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Fe&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<f-Fe||2!=P&&(v=oe(r)),3>v)n=ee(0,255&u[C]),_--,C++;else if(n=ee(C-x,v-3),_-=v,v>D||3>_)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<A&&f-Fe>=(C-s&65535)&&(2!=P&&(v=oe(s)),5>=v&&(1==P||3==v&&C-x>4096)&&(v=2)),3>A||v>A)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,_--,0===t.tt)return 0}else z=1,C++,_--;else{r=C+_-3,n=ee(C-1-S,A-3),_-=A-1,A-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,Ue.Ae),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function Je(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function Qe(e){const t=new Je,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}Je.prototype={He(e,t){const n=this;return n.Fe=new Ge,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Re},Qe(){const e=this;if(!e.Fe)return Re;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Re},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Re},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ue.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const Xe=-2,Ye=-3,Ze=-5,$e=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],et=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],tt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],nt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],st=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ot(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,_,A,I,D;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return Ye;if(0>(I-=n[g]))return Ye;for(n[g]+=I,i[1]=k=0,C=1,A=2;0!=--g;)i[A]=k+=n[C],A++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>_+S;){if(b++,_+=S,D=m-_,D=D>S?S:D,(y=1<<(k=v-_))>p+1&&(y-=p+1,A=v,D>k))for(;++kn[++A];)y-=n[A];if(D=1<1440)return Ye;s[b]=x=h[0],h[0]+=D,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>_-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-_,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>_;D>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<<_)-1;(g&z)!=i[b];)b--,_-=S,z=(1<<_)-1}return 0!==I&&1!=m?Ze:0}function c(o){let c;for(e||(e=[],t=[],n=new f(16),r=[],s=new f(15),i=new f(16)),t.lengthc;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==Ye?f.Le="oversubscribed dynamic bit lengths tree":a!=Ze&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=Ye),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,nt,rt,a,i,u,e,t),0!=h||0===i[0]?(h==Ye?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=Ye),h):(c(288),h=o(s,n,r,0,st,it,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==Ye?w.Le="oversubscribed distance tree":h==Ze?(w.Le="incomplete distance tree",h=Ye):-4!=h&&(w.Le="empty distance tree with lengths",h=Ye),h):0)}}function ct(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=yh;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15,k=a[z+2]+(w&$e[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye;f+=a[z+2],f+=w&$e[u],z=3*(l+f),u=a[z]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye);if(f+=a[z+2],f+=w&$e[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,_=0,A=0;for(A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S=258&&v>=10&&(e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,m=p(u,w,r,h,s,d,e,y),A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>>=n[g+1],_-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Le="invalid literal/length code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 2:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}i+=x&$e[b],x>>=b,_-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>=n[g+1],_-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 4:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}l+=x&$e[b],x>>=b,_-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(_-=8,v++,A--),e.write=S,m=e.wt(y,m),S=e.write,z=S{}}ot.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=et,r[0]=tt,0);const ft=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function at(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new ct;let h=0,d=new f(4320);const p=new ot;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=gy;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ot.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=3,y-=3}for(;19>a;)r[ft[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==Ye&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=i,y-=i,o+=f&$e[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,_=[],A=[],I=[],D=[],_[0]=9,A[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,_,A,I,D,d,e),0!=i)return i==Ye&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(_[0],A[0],d,I[0],d,D[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const lt=13,ut=[0,0,255,255];function wt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):Xe}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),Xe):(e.zt=r,n.gt.kt=new at(n,1<{let n,r;if(!e||!e.gt||!e.et)return Xe;const s=e.gt;for(t=4==t?Ze:0,n=Ze;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=lt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=lt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=lt,e.Le="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=lt,e.Le="need dictionary",s.marker=0,Xe;case 7:if(n=s.kt.ut(e,n),n==Ye){s.mode=lt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case lt:return Ye;default:return Xe}},e.At=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return Xe;const i=e.gt;return s<1<{let n,r,s,i,o;if(!e||!e.gt)return Xe;const c=e.gt;if(c.mode!=lt&&(c.mode=lt,c.marker=0),0===(n=e.We))return Ze;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==ut[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?Ye:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Dt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():Xe}function ht(){}function dt(e){const t=new ht,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t._t(0),c&&a===Ze){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}ht.prototype={xt(e){const t=this;return t.gt=new wt,e||(e=15),t.gt.xt(t,e)},_t(e){const t=this;return t.gt?t.gt._t(t,e):Xe},Ct(){const e=this;if(!e.gt)return Xe;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):Xe},At(e,t){const n=this;return n.gt?n.gt.At(n,e,t):Xe},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=Qe,self.Inflate=dt}; +`],{type:"text/javascript"}));n({workerScripts:{inflate:[t],deflate:[t]}})}Il(Ni);var K=Kt.Platform.isDesktopApp?window.require("node:original-fs"):null,Pe=Kt.Platform.isDesktopApp?K.promises:null,Xt=Kt.Platform.isDesktopApp?window.require("node:os"):null,q=Kt.Platform.isDesktopApp?window.require("node:path"):null,Jn=Kt.Platform.isDesktopApp?window.require("node:url"):null,Fl=Kt.Platform.isDesktopApp?window.require("node:zlib"):null;function Zi(n,t=0,e=n.byteLength){return n.buffer.slice(n.byteOffset+t,n.byteOffset+t+e)}var Me=class{constructor(t){this.type="file";this.filepath=t;let e=this.name=q.basename(t);this.fullpath=e;let i=q.extname(e);this.extension=i.substring(1).toLowerCase(),this.basename=q.basename(e,i)}async readText(){return Pe.readFile(this.filepath,"utf8")}async read(){let t=await Pe.readFile(this.filepath);return Zi(t)}async readZip(t){let e=null;try{e=await Pe.open(this.filepath,"r");let i=await e.stat();return await t(new Vt(new No(e,i.size)))}finally{await(e==null?void 0:e.close())}}createReadStream(){return K.createReadStream(this.filepath)}toString(){return this.filepath}},ut=class{constructor(t){this.type="folder";this.filepath=t,this.name=q.basename(t)}async list(){let{filepath:t}=this,e=await Pe.readdir(t,{withFileTypes:!0}),i=[];for(let r of e)r.isFile()?i.push(new Me(q.join(t,r.name))):r.isDirectory()&&i.push(new ut(q.join(t,r.name)));return i}toString(){return this.filepath}},Wi=class{constructor(t){this.type="file";this.file=t;let e=this.name=t.name;this.fullpath=e;let{basename:i,extension:r}=re(e);this.basename=i,this.extension=r}readText(){let{file:t}=this;return t.text?t.text():new Promise((e,i)=>{let r=new FileReader;r.addEventListener("load",()=>e(r.result)),r.addEventListener("error",i),r.readAsText(this.file)})}async read(){let{file:t}=this;return t.arrayBuffer?t.arrayBuffer():new Promise((e,i)=>{let r=new FileReader;r.addEventListener("load",()=>e(r.result)),r.addEventListener("error",i),r.readAsArrayBuffer(this.file)})}async readZip(t){return t(new Vt(new St(this.file)))}toString(){return this.file.toString()}};async function So(n,t){let e=[];for(let i of n)try{i.type==="folder"?e.push(...await So(await i.list(),t)):i.type==="file"&&(!t||t(i))&&e.push(i)}catch(r){console.log("Skipping path: ",i.name,r)}return e}function re(n){let t=Math.max(n.lastIndexOf("/"),n.lastIndexOf("\\")),e=n,i="";t>=0&&(e=n.substring(t+1),i=n.substring(0,t));let[r,o]=Ro(e);return{parent:i,name:e,basename:r,extension:o}}function Ro(n){let t=n.lastIndexOf("."),e=n,i="";return t>0&&(e=n.substring(0,t),i=n.substring(t+1).toLowerCase()),[e,i]}var No=class extends yn{constructor(e,i){super(e);this.fd=e,this.size=i}async readUint8Array(e,i){let r=Buffer.alloc(i),o=await this.fd.read(r,0,i,e);return new Uint8Array(Zi(r,0,o.bytesRead))}};var Ll=require("obsidian"),Qm=/[\/\?<>\\:\*\|"]/g,eh=/[\x00-\x1f\x80-\x9f]/g,th=/^\.+$/,nh=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,ih=/[\. ]+$/,rh=/^\./,oh=/[\[\]#|^]/g;function Ze(n){return n.replace(Qm,"").replace(eh,"").replace(th,"").replace(nh,"").replace(ih,"").replace(rh,"").replace(oh,"")}function xn(n){let t=[];for(let e=0;ea.setButtonText(i?"Choose files":"Choose file").onClick(async()=>{if(Re.Platform.isDesktopApp){let s=["openFile","dontAddToRecent"];i&&s.push("multiSelections");let l=window.electron.remote.dialog.showOpenDialogSync({title:"Pick files to import",properties:s,filters:[{name:t,extensions:e}]});l&&l.length>0&&(this.files=l.map(c=>new Me(c)),o())}else{let s=createEl("input");s.type="file",s.accept=e.map(l=>"."+l.toLowerCase()).join(","),s.addEventListener("change",()=>{if(!s.files)return;let l=Array.from(s.files);l.length>0&&(this.files=l.map(c=>new Wi(c)).filter(c=>e.contains(c.extension)),o())}),s.click()}}));i&&Re.Platform.isDesktopApp&&r.addButton(a=>a.setButtonText("Choose folders").onClick(async()=>{if(Re.Platform.isDesktopApp){let s=window.electron.remote.dialog.showOpenDialogSync({title:"Pick folders to import",properties:["openDirectory","multiSelections","dontAddToRecent"]});if(s&&s.length>0){r.setDesc("Reading folders...");let l=s.map(c=>new ut(c));this.files=await So(l,c=>e.contains(c.extension)),o()}}}));let o=()=>{let a=document.createDocumentFragment(),s=this.files.length,l=this.files.map(c=>c.name).join(", ");l.length>Pl&&(l=l.substring(0,Pl)+"..."),a.createEl("span",{text:`These ${s} files will be imported: `}),a.createEl("br"),a.createEl("span",{cls:"u-pop",text:l}),r.setDesc(a)}}addOutputLocationSetting(t){this.outputLocation=t,new Re.Setting(this.modal.contentEl).setName("Output folder").setDesc("Choose a folder in the vault to put the imported files. Leave empty to output to vault root.").addText(e=>e.setValue(t).onChange(i=>{this.outputLocation=i,this.outputFolder=null}))}async getOutputFolder(){if(this.outputFolder)return this.outputFolder;let{vault:t}=this.app,e=this.outputLocation;e===""&&(e="/");let i=t.getAbstractFileByPath(e);return(i===null||!(i instanceof Re.TFolder))&&(await t.createFolder(e),i=t.getAbstractFileByPath(e)),i instanceof Re.TFolder?(this.outputFolder=i,i):null}async getAvailablePathForAttachment(t,e){let i=await this.getOutputFolder(),r=i?{parent:i}:null,{basename:o,extension:a}=re(t),s=await this.vault.getAvailablePathForAttachments(o,a,r),l=re(s),c=l.extension?"."+l.extension:"."+a,p=1,m=s;for(;e.includes(m)||this.vault.getAbstractFileByPath(m);)m=q.join(l.parent,`${l.name} ${p}${c}`),p++;return m}async createFolders(t){let e=t.split("/").map(o=>o.replace(/^\.+/,"")).join("/"),i=(0,Re.normalizePath)(e),r=this.vault.getAbstractFileByPathInsensitive(i);if(r&&r instanceof Re.TFolder)return r;if(await this.vault.createFolder(i),r=this.vault.getAbstractFileByPathInsensitive(i),!(r instanceof Re.TFolder))throw new Error(`Failed to create folder at "${t}"`);return r}async saveAsMarkdownFile(t,e,i){let r=Ze(e);return await this.app.fileManager.createNewMarkdownFile(t,r,i)}};var Zp=rs(Lp());var ka=require("obsidian");var Pp=n=>{let e=gr.execSync(`${n} --version`).toString().toString().match(/(\d+)\.(\d+).(\d+)/);return(e==null?void 0:e[1])>3||(e==null?void 0:e[2])>32},Mp=n=>{let t=[];if(!n)return t;let e=[],i=0,r=-1,o={};for(;il>0),n.length-1);a=parseFloat(n.substring(i,s)),i=s}r==-1?e.push(a):(o[e[r]]=a,r++),(n[i]==` +`||e.length{let e=[n[0]],i=[e];for(let r=0;r",")),i.push(...t[r].length?t[r]:[""])):i.push(t[r]),e.push(n[r+1]));return i},Up=n=>new yr(n);var ui=(n,t)=>{let e="SQLITE_ERROR",i=new Error(e+": "+t);return i.code=e,n(i),""},jp=(...n)=>Up($p(...n)),{from:xg}=Array,wg=/'/g,vg=n=>n.toString(16).padStart(2,"0"),Eg=n=>`x'${xg(n,vg).join("")}'`,_g=n=>{switch(typeof n){case"string":return"'"+n.replace(wg,"''")+"'";case"number":if(!isFinite(n))return;case"boolean":return+n;case"object":case"undefined":switch(!0){case!n:return"NULL";case n instanceof Date:return"'"+n.toISOString()+"'";case n instanceof Buffer:case n instanceof ArrayBuffer:n=new Uint8Array(n);case n instanceof Uint8Array:case n instanceof Uint8ClampedArray:return Eg(n)}}},_a=(n,t)=>{let[e,...i]=Bp(...t),r=[e[0]];for(let a=0;a{},Rg=(n,t,e,i,r,o)=>{let a=[],{stdout:s,stderr:l}=gr.spawn(i,r,o).on("close",p=>{if(c||p!==0){p!==0&&ui(t,"busy DB or query too slow");return}let m=a.join("").trim();if(e==="query")n(m);else{let y=qp(m||"[]");n(e==="get"&&kg(y)?y.shift():y)}});s.on("data",p=>{a.push(p)});let c=!1;l.on("data",p=>{c=!0,ui(t,"".trim.call(p))})},Og=(n,t,e)=>{let i=Pp(n),r=i?Tg:Ag,{stdin:o,stdout:a,stderr:s}=gr.spawn(n,t);i?o.write(`.mode json +`):o.write(`.mode quote +.headers on +`),e&&o.write(`.timeout ${e} +`);let l=Promise.resolve();return(c,p,m,y,w)=>{m==="close"?(o.write(`.quit +`),l=null):l&&(l=l.then(()=>new Promise(E=>{let d="",f=_=>{d+=_;let A=!1;for(;d.endsWith(r);)A=!0,d=d.slice(0,-r.length);if(A){for(v();d.startsWith(r);)d=d.slice(r.length);if(m==="query")c(d);else{let D=i?qp(d||"[]"):Mp(d);c(m==="get"?D.shift():D)}}},g=_=>{v(),p(new Error(_))},v=()=>{E(),a.removeListener("data",f),s.removeListener("data",g)};a.on("data",f),s.once("data",g),o.write(`${w[w.length-1]}; +`),o.write(`SELECT '${Na}' as _; +`)})))}},Aa=(n,t,e,i,r)=>(...o)=>new Promise((a,s)=>{let l=_a(s,o);l.length&&(n==="get"&&/^SELECT\s+/i.test(l)&&!/\s+LIMIT\s+\d+$/i.test(l)&&(l+=" LIMIT 1"),e(a,s,n,t,i.concat(l),r))}),Hp="";function Sa(n,t={}){n===":memory:"&&(n=Hp||(Hp=q.join(Xt.tmpdir(),randomUUID())));let e=t.timeout||0,i=t.bin||"sqlite3",r=[n,"-bail"],o={timeout:e};t.readonly&&r.push("-readonly"),e&&r.push("-cmd",".timeout "+e);let a=r.concat("-json"),s=t.exec||(t.persistent?Og(i,r,e):Rg);return{transaction(){let l=[];return Ng((...c)=>{l.push(c)},"commit",{value(){return new Promise((c,p)=>{let m=["BEGIN TRANSACTION"];for(let y of l){let w=_a(p,y);if(!w.length)return;m.push(w)}m.push("COMMIT"),s(c,p,"query",i,r.concat(m.join(";")),o)})}})},query:Aa("query",i,s,r,o),get:Aa("get",i,s,a,o),all:Aa("all",i,s,a,o),close:t.persistent?()=>s(null,null,"close"):Sg,raw:jp}}var Ra="Library/Group Containers/group.com.apple.notes",Wp="NoteStore.sqlite",Dg=978307200,br=class extends ce{constructor(){super(...arguments);this.owners={};this.resolvedAccounts={};this.resolvedFiles={};this.resolvedFolders={};this.multiAccount=!1;this.noteCount=0;this.parsedNotes=0;this.omitFirstLine=!0;this.importTrashed=!1;this.includeHandwriting=!1;this.trashFolders=[]}init(){if(!st.Platform.isMacOS||!st.Platform.isDesktop){this.modal.contentEl.createEl("p",{text:"Due to platform limitations, Apple Notes cannot be exported from this device. Open your vault on a Mac to export from Apple Notes."}),this.notAvailable=!0;return}this.addOutputLocationSetting("Apple Notes"),new st.Setting(this.modal.contentEl).setName("Import recently deleted notes").setDesc('Import notes in the "Recently Deleted" folder. Unlike in Apple Notes, they will not be automatically removed after a set amount of time.').addToggle(e=>e.setValue(!1).onChange(async i=>this.importTrashed=i)),new st.Setting(this.modal.contentEl).setName("Omit first line").setDesc("Don't include the first line in the text, since Apple Notes uses it as the title. It will still be used as the note name.").addToggle(e=>e.setValue(!0).onChange(async i=>this.omitFirstLine=i)),new st.Setting(this.modal.contentEl).setName("Include handwriting text").setDesc("When Apple Notes has detected handwriting in drawings, include it as text before the drawing.").addToggle(e=>e.setValue(!1).onChange(async i=>this.includeHandwriting=i))}async getNotesDatabase(){let e=q.join(Xt.homedir(),Ra),i=window.electron.remote.dialog.showOpenDialogSync({defaultPath:e,properties:["openDirectory"],message:'Select the "group.com.apple.notes" folder to allow Obsidian to read Apple Notes data.'});if(!(i!=null&&i.includes(e)))return new st.Notice("Data import failed. Ensure you have selected the correct Apple Notes data folder."),null;let r=q.join(e,Wp),o=q.join(Xt.tmpdir(),Wp);return await Pe.copyFile(r,o),await Pe.copyFile(r+"-shm",o+"-shm"),await Pe.copyFile(r+"-wal",o+"-wal"),new Sa(o,{readonly:!0,persistent:!0})}async import(e){if(this.ctx=e,this.protobufRoot=Zp.Root.fromJSON(ls),this.rootFolder=await this.getOutputFolder(),!this.rootFolder){new st.Notice("Please select a location to export to.");return}if(this.database=await this.getNotesDatabase(),!this.database)return;this.keys=Object.fromEntries((await this.database.all`SELECT z_ent, z_name FROM z_primarykey`).map(a=>[a.Z_NAME,a.Z_ENT]));let i=await this.database.all` + SELECT z_pk FROM ziccloudsyncingobject WHERE z_ent = ${this.keys.ICAccount} + `,r=await this.database.all` + SELECT z_pk, ztitle2 FROM ziccloudsyncingobject WHERE z_ent = ${this.keys.ICFolder} + `;for(let a of i)await this.resolveAccount(a.Z_PK);for(let a of r)try{await this.resolveFolder(a.Z_PK)}catch(s){this.ctx.reportFailed(a.ZTITLE2,s==null?void 0:s.message),console.error(s)}let o=await this.database.all` + SELECT + z_pk, zfolder, ztitle1 FROM ziccloudsyncingobject + WHERE + z_ent = ${this.keys.ICNote} + AND ztitle1 IS NOT NULL + AND zfolder NOT IN (${this.trashFolders}) + `;this.noteCount=o.length;for(let a of o)try{await this.resolveNote(a.Z_PK)}catch(s){this.ctx.reportFailed(a.ZTITLE1,s==null?void 0:s.message),console.error(s)}this.database.close()}async resolveAccount(e){!this.multiAccount&&Object.keys(this.resolvedAccounts).length&&(this.multiAccount=!0);let i=await this.database.get` + SELECT zname, zidentifier FROM ziccloudsyncingobject + WHERE z_ent = ${this.keys.ICAccount} AND z_pk = ${e} + `;this.resolvedAccounts[e]={name:i.ZNAME,uuid:i.ZIDENTIFIER,path:q.join(Xt.homedir(),Ra,"Accounts",i.ZIDENTIFIER)}}async resolveFolder(e){var a;if(e in this.resolvedFiles)return this.resolvedFolders[e];let i=await this.database.get` + SELECT ztitle2, zparent, zidentifier, zfoldertype, zowner + FROM ziccloudsyncingobject + WHERE z_ent = ${this.keys.ICFolder} AND z_pk = ${e} + `,r;if(i.ZFOLDERTYPE==3)return null;if(!this.importTrashed&&i.ZFOLDERTYPE==1)return this.trashFolders.push(e),null;if(i.ZPARENT!==null)r=((a=await this.resolveFolder(i.ZPARENT))==null?void 0:a.path)+"/";else if(this.multiAccount){let s=this.resolvedAccounts[i.ZOWNER].name;r=`${this.rootFolder.path}/${s}/`}else r=`${this.rootFolder.path}/`;i.ZIDENTIFIER.startsWith("DefaultFolder")||(r+=Ze(i.ZTITLE2));let o=await this.createFolders(r);return this.resolvedFolders[e]=o,this.owners[e]=i.ZOWNER,o}async resolveNote(e){if(e in this.resolvedFiles)return this.resolvedFiles[e];let i=await this.database.get` + SELECT + nd.z_pk, hex(nd.zdata) as zhexdata, zcso.ztitle1, zfolder, + zcreationdate1, zcreationdate2, zcreationdate3, zmodificationdate1, zispasswordprotected + FROM + zicnotedata AS nd, + (SELECT + *, NULL AS zcreationdate3, NULL AS zcreationdate2, + NULL AS zispasswordprotected FROM ziccloudsyncingobject + ) AS zcso + WHERE + zcso.z_pk = nd.znote + AND zcso.z_pk = ${e} + `;if(i.ZISPASSWORDPROTECTED)return this.ctx.reportSkipped(i.ZTITLE1,"note is password protected"),null;let r=this.resolvedFolders[i.ZFOLDER]||this.rootFolder,o=`${i.ZTITLE1}.md`,a=await this.saveAsMarkdownFile(r,o,"");this.ctx.status(`Importing note ${o}`),this.resolvedFiles[e]=a,this.owners[e]=this.owners[i.ZFOLDER];let s=this.decodeData(i.zhexdata,Wt);return this.vault.modify(a,await s.format(),{ctime:this.decodeTime(i.ZCREATIONDATE3||i.ZCREATIONDATE2||i.ZCREATIONDATE1),mtime:this.decodeTime(i.ZMODIFICATIONDATE1)}),this.parsedNotes++,this.ctx.reportProgress(this.parsedNotes,this.noteCount),a}async resolveAttachment(e,i){if(e in this.resolvedFiles)return this.resolvedFiles[e];let r,o,a,s,l;switch(i){case"com.apple.paper.doc.scan":s=await this.database.get` + SELECT + zidentifier, zfallbackpdfgeneration, zcreationdate, zmodificationdate, znote + FROM + (SELECT *, NULL AS zfallbackpdfgeneration FROM ziccloudsyncingobject) + WHERE + z_ent = ${this.keys.ICAttachment} + AND z_pk = ${e} + `,r=q.join("FallbackPDFs",s.ZIDENTIFIER,s.ZFALLBACKPDFGENERATION||"","FallbackPDF.pdf"),o="Scan",a="pdf";break;case"com.apple.notes.gallery":s=await this.database.get` + SELECT + zidentifier, zsizeheight, zsizewidth, zcreationdate, zmodificationdate, znote + FROM ziccloudsyncingobject + WHERE + z_ent = ${this.keys.ICAttachment} + AND z_pk = ${e} + `,r=q.join("Previews",`${s.ZIDENTIFIER}-1-${s.ZSIZEWIDTH}x${s.ZSIZEHEIGHT}-0.jpeg`),o="Scan Page",a="jpg";break;case"com.apple.paper":s=await this.database.get` + SELECT + zidentifier, zfallbackimagegeneration, zcreationdate, zmodificationdate, + znote, zhandwritingsummary + FROM + (SELECT *, NULL AS zfallbackimagegeneration FROM ziccloudsyncingobject) + WHERE + z_ent = ${this.keys.ICAttachment} + AND z_pk = ${e} + `,s.ZFALLBACKIMAGEGENERATION?r=q.join("FallbackImages",s.ZIDENTIFIER,s.ZFALLBACKIMAGEGENERATION,"FallbackImage.png"):r=q.join("FallbackImages",`${s.ZIDENTIFIER}.jpg`),o="Drawing",a="png";break;default:s=await this.database.get` + SELECT + a.zidentifier, a.zfilename, + a.zgeneration1, b.zcreationdate, b.zmodificationdate, b.znote + FROM + (SELECT *, NULL AS zgeneration1 FROM ziccloudsyncingobject) AS a, + ziccloudsyncingobject AS b + WHERE + a.z_ent = ${this.keys.ICMedia} + AND a.z_pk = ${e} + AND a.z_pk = b.zmedia + `,r=q.join("Media",s.ZIDENTIFIER,s.ZGENERATION1||"",s.ZFILENAME),[o,a]=Ro(s.ZFILENAME);break}try{let c=await this.getAttachmentSource(this.resolvedAccounts[this.owners[s.ZNOTE]],r),p=await this.getAvailablePathForAttachment(`${o}.${a}`,[]);l=await this.vault.createBinary(p,c,{ctime:this.decodeTime(s.ZCREATIONDATE),mtime:this.decodeTime(s.ZMODIFICATIONDATE)})}catch(c){return this.ctx.reportFailed(r),console.error(c),null}return this.resolvedFiles[e]=l,this.ctx.reportAttachmentSuccess(this.resolvedFiles[e].path),l}decodeData(e,i){let r=Fl.gunzipSync(Buffer.from(e,"hex")),o=this.protobufRoot.lookupType(i.protobufType).decode(r);return new i(this,o)}decodeTime(e){return!e||e<1?new Date().getTime():Math.floor((e+Dg)*1e3)}async getAttachmentSource(e,i){try{return await Pe.readFile(q.join(e.path,i))}catch(r){return await Pe.readFile(q.join(Xt.homedir(),Ra,i))}}};var kn=require("obsidian");var fi=class{constructor(t,e){this.type="file";this.entry=e,this.fullpath=t.fullpath+"/"+e.filename;let{parent:i,name:r,basename:o,extension:a}=re(e.filename);this.parent=i,this.name=r,this.basename=o,this.extension=a}async readText(){return this.entry.getData(new $i)}async read(){return(await this.entry.getData(new Vn)).arrayBuffer()}get filepath(){return this.entry.filename}get size(){return this.entry.uncompressedSize}get ctime(){return this.entry.creationDate}get mtime(){return this.entry.lastModDate}async readZip(t){return t(new Vt(new St(new Blob([await this.read()]))))}};async function gt(n,t){await n.readZip(async e=>{let r=(await e.getEntries()).filter(o=>!o.directory&&!!o.getData).map(o=>new fi(n,o));return t(e,r)})}var xr=class extends ce{constructor(){super(...arguments);this.attachmentMap={}}init(){this.addFileChooserSetting("Bear2bk",["bear2bk"]),this.addOutputLocationSetting("Bear")}async import(e){let{files:i}=this;if(i.length===0){new kn.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new kn.Notice("Please select a location to export to.");return}let o=r,a=new RegExp("\\[[^\\]]*\\]\\((assets/[^\\)]+)\\)","gm"),s=await this.createFolders(`${r.path}/archive`),l=await this.createFolders(`${r.path}/trash`);for(let c of i){if(e.isCancelled())return;e.status("Processing "+c.name),await gt(c,async(p,m)=>{let y=await this.collectMetadata(e,m);for(let w of m){if(e.isCancelled())return;let{fullpath:E,filepath:d,parent:f,name:g,extension:v}=w;if(!(g==="info.json"||g==="tags.json")){e.status("Processing "+g);try{if(v==="md"||v==="markdown"){let _=re(f).basename;e.status("Importing note "+_);let A=await w.readText();A=this.removeMarkdownHeader(_,A);let D=[...A.matchAll(a)];if(D.length>0)for(let O of D){let[S,M]=O,L=q.join(f,decodeURI(M)),j=await this.getAttachmentStoragePath(L);j=encodeURI(j);let Z=S.replace(M,j);A=A.replace(S,Z)}let T=(0,kn.normalizePath)(_),k=y[f],b=o;k!=null&&k.archived?b=s:k!=null&&k.trashed&&(b=l);let C=await this.saveAsMarkdownFile(b,T,A);k!=null&&k.ctime&&(k!=null&&k.mtime)&&await this.modifFileTimestamps(k,C),e.reportNoteSuccess(_)}else if(d.match(/\/assets\//g)){e.status("Importing asset "+w.name);let _=await this.getAttachmentStoragePath(w.filepath),A=await w.read();await this.vault.createBinary(_,A),e.reportAttachmentSuccess(w.fullpath)}else e.reportSkipped(E,"unknown type of file")}catch(_){e.reportFailed(E,_)}}}})}}async modifFileTimestamps(e,i){let r={ctime:e.ctime,mtime:e.mtime};await this.vault.append(i,"",r)}async collectMetadata(e,i){let r={};for(let o of i){if(e.isCancelled())return r;if(o.name!=="info.json")continue;let a=await o.readText(),l=JSON.parse(a)["net.shinyfrog.bear"],c=Date.parse(l.creationDate),p=Date.parse(l.modificationDate);r[o.parent]={ctime:isNaN(c)?void 0:c,mtime:isNaN(p)?void 0:p,archived:l.archived===1,trashed:l.trashed===1}}return r}async getAttachmentStoragePath(e){let i=(0,kn.normalizePath)(e);if(this.attachmentMap[i])return this.attachmentMap[i];let r=Object.values(this.attachmentMap),o=await this.getAvailablePathForAttachment(i,r);return o=o.replace(/:/g,""),this.attachmentMap[i]=o,o}removeMarkdownHeader(e,i){if(!i.startsWith("# "))return i;let r=i.indexOf(` +`),o=r>0?i.substring(2,r):i.substring(2);return o=o.trim(),o!==e.trim()&&o!==""?i:r>0?i.substring(r+1):""}};var xi=require("obsidian");var Bf=require("obsidian");var Yp=require("obsidian");var zp=n=>({...n,created:di(n.created),statusupdated:di(n.statusupdated),updated:di(n.updated),duedate:di(n.duedate),taskflag:n.taskflag==="true",reminderdate:n.reminder?di(n.reminder.reminderdate):void 0,sortweight:n.sortweight}),di=n=>n?(0,Yp.moment)(n,"YYYYMMDDThhmmssZ").toDate():void 0;var Gp=/highlight-(?:text|source)-([a-z0-9]+)/;function Cg(n){n.addRule("highlightedCodeBlock",{filter:function(t){var e=t.firstChild;return t.nodeName==="DIV"&&Gp.test(t.className)&&e&&e.nodeName==="PRE"},replacement:function(t,e,i){var r=e.className||"",o=(r.match(Gp)||[null,""])[1];return` + +`+i.fence+o+` +`+e.firstChild.textContent+` +`+i.fence+` + +`}})}function Ig(n){n.addRule("strikethrough",{filter:["del","s","strike"],replacement:function(t){return"~"+t+"~"}})}var Fg=Array.prototype.indexOf,Lg=Array.prototype.every,Nn={};Nn.tableCell={filter:["th","td"],replacement:function(n,t){return Da(Kp(t))?n:Oa(n,t)}};Nn.tableRow={filter:"tr",replacement:function(n,t){let e=Kp(t);if(Da(e))return n;var i="",r={left:":--",right:"--:",center:":-:"};if(Pg(t)){let l=Xp(e);for(var o=0;o=t.childNodes.length?null:t.childNodes[o];var a="---",s=c?(c.getAttribute("align")||"").toLowerCase():"";s&&(a=r[s]||a),c?i+=Oa(a,t.childNodes[o]):i+=Oa(a,null,o)}}return` +`+n+(i?` +`+i:"")}};Nn.table={filter:function(n){return n.nodeName==="TABLE"},replacement:function(n,t){if(Da(t))return n;n=n.replace(/\n+/g,` +`);var e=n.trim().split(` +`);e.length>=2&&(e=e[1]);var i=e.indexOf("| ---")===0,r=Xp(t),o="";return r&&!i&&(o="|"+" |".repeat(r)+` +|`+" --- |".repeat(r)),` + +`+o+n+` + +`}};Nn.tableSection={filter:["thead","tbody","tfoot"],replacement:function(n){return n}};function Pg(n){var t=n.parentNode;return t.nodeName==="THEAD"||t.firstChild===n&&(t.nodeName==="TABLE"||Mg(t))&&Lg.call(n.childNodes,function(e){return e.nodeName==="TH"})}function Mg(n){var t=n.previousSibling;return n.nodeName==="TBODY"&&(!t||t.nodeName==="THEAD"&&/^\s*$/i.test(t.textContent))}function Oa(n,t=null,e=null){e===null&&(e=Fg.call(t.parentNode.childNodes,t));var i=" ";e===0&&(i="| ");let r=n.trim().replace(/\n\r/g,"
").replace(/\n/g,"
");for(r=r.replace(/\|+/g,"\\|");r.length<3;)r+=" ";return t&&(r=$g(r,t," ")),i+r+" |"}function Vp(n){if(!n.childNodes)return!1;for(let t=0;tt&&(t=r)}return t}function Bg(n){n.keep(function(e){return e.nodeName==="TABLE"});for(var t in Nn)n.addRule(t,Nn[t])}function Ug(n){n.addRule("taskListItems",{filter:function(t){return t.type==="checkbox"&&t.parentNode.nodeName==="LI"},replacement:function(t,e){return(e.checked?"[x]":"[ ]")+" "}})}function Jp(n){n.use([Cg,Ig,Bg,Ug])}var ue=n=>{let t={get(e,i){return e[i]}};return new Proxy(n.attributes,t)};var Qp="\n```\n",Ca=n=>{let t=ue(n),e="-en-codeblock:true";return t.style&&t.style.value.indexOf(e)>=0},jg=n=>{let t=ue(n),e="padding-left:",i=0;return t.style&&t.style.value.indexOf(e)>=0&&(i=Math.floor(t.style.value.split(e)[1].split("px")[0]/20)),i},Ia=n=>n.replace(/\\(.)/g,"$1"),eu=(n,t)=>{let e=jg(t);return n=`${" ".repeat(e)}${n}`,Ca(t)?(n=Ia(n),`${Qp}${n}${Qp}`):t.parentElement&&Ca(t.parentElement)&&t.parentElement.firstElementChild===t?`${n}`:t.parentElement&&Ca(t.parentElement)?` +${n}`:t.isBlock?` +${n} +`:n};var wr="\n```\n",Hg="-en-codeblock:true",qg=/\b(Courier|Mono|Consolas|Console|Inconsolata|Pitch|Monaco|monospace)\b/,tu=n=>{var o,a;if(n.nodeType!==1)return null;let t=n.childNodes,e=t.length;if(e>1)return"mixed";if(e===1){let s=tu(t[0]);if(s)return s}let i=ue(n);if(n.tagName==="FONT")return(o=i.face)==null?void 0:o.value;let r=(a=i.style)==null?void 0:a.value;if(r){let s=r.match(/font-family:([^;]+)/);if(s)return s[1]}return null},mi=n=>{var r;let e=(r=ue(n).style)==null?void 0:r.value;if(e&&e.includes(Hg))return!0;let i=tu(n);return!!i&&qg.test(i)},nu=(n,t)=>{if(mi(t)){let e=t.previousSibling,i=e&&e.tagName===t.tagName&&mi(e),r=t.nextSibling,o=r&&r.tagName===t.tagName&&mi(r);return i||o?(n=i?` +${n}`:`${wr}${n}`,n=o?`${n} +`:`${n}${wr}`,n):(n=Ia(n),n.trim()?`${wr}${n}${wr}`:n)}return t.parentElement&&mi(t.parentElement)&&t.parentElement.firstElementChild===t?n:t.parentElement&&mi(t.parentElement)?` +${n}`:t.isBlock?` +${n} +`:n};var qe=n=>t=>t.nodeName===n||t.nodeName.toLowerCase()===n;var iu={filter:qe("IMG"),replacement:(n,t)=>{let e=ue(t);if(!e.src)return"";let i=e.src.value,r=t.width||"",o=t.height||"",a=i;B.sanitizeResourceNameSpaces?a=a.replace(/ /g,B.replacementChar):B.urlEncodeFileNamesAndLinks&&(a=encodeURI(a));let s=r||o?` =${r}x${o}`:"";if(B.keepImageSize)return s=r||o?`|${r||0}x${o||0}`:"",a.startsWith("./")?`![[${a}${s}]]`:`![${s}](${a})`;if(!i.match(/^[a-z]+:/))return`![[${a}]]`;let l=e.src.value.split("/");return`![${l[l.length-1]}](${a})`}};var fe=class{constructor(){this.noteIdNameMap={},this.noteIdNameTOCMap={}}static getInstance(){return fe.instance||(fe.instance=new fe),fe.instance}addItemToMap(t){this.noteIdNameMap[t.url]={...this.noteIdNameMap[t.url],title:t.title,noteName:this.currentNoteName,notebookName:this.currentNotebookName,uniqueEnd:t.uniqueEnd}}addItemToTOCMap(t){this.noteIdNameTOCMap[t.url]={...this.noteIdNameMap[t.url],title:t.title,noteName:this.currentNoteName,notebookName:this.currentNotebookName,uniqueEnd:t.uniqueEnd}}getNoteIdNameMap(){return this.noteIdNameMap}getNoteIdNameTOCMap(){return this.noteIdNameTOCMap}getAllNoteIdNameMap(){return{...this.noteIdNameMap,...this.noteIdNameTOCMap}}getNoteIdNameMapByNoteTitle(t){return Object.values(this.getAllNoteIdNameMap()).filter(e=>e.title===t)}setCurrentNotebookName(t){this.currentNotebookName=t}getCurrentNotebookName(){return this.currentNotebookName}setCurrentNotebookFullpath(t){this.currentNotebookFullpath=t}setCurrentNoteName(t){this.currentNoteName=t}getCurrentNoteName(){return this.currentNoteName}getCurrentNotePath(){return this.currentNotePath}setCurrentNotePath(t){this.currentNotePath=t}getCurrentNotebookFullpath(){return this.currentNotebookFullpath}};var ru=require("obsidian");var Sn=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");var Wg={"application/andrew-inset":"ez","application/applixware":"aw","application/atom+xml":"atom","application/atomcat+xml":"atomcat","application/atomdeleted+xml":"atomdeleted","application/atomsvc+xml":"atomsvc","application/atsc-dwd+xml":"dwd","application/atsc-held+xml":"held","application/atsc-rsat+xml":"rsat","application/bdoc":"bdoc","application/calendar+xml":"xcs","application/ccxml+xml":"ccxml","application/cdfx+xml":"cdfx","application/cdmi-capability":"cdmia","application/cdmi-container":"cdmic","application/cdmi-domain":"cdmid","application/cdmi-object":"cdmio","application/cdmi-queue":"cdmiq","application/cpl+xml":"cpl","application/cu-seeme":"cu","application/dash+xml":"mpd","application/dash-patch+xml":"mpp","application/davmount+xml":"davmount","application/docbook+xml":"dbk","application/dssc+der":"dssc","application/dssc+xml":"xdssc","application/ecmascript":"es","application/emma+xml":"emma","application/emotionml+xml":"emotionml","application/epub+zip":"epub","application/exi":"exi","application/express":"exp","application/fdt+xml":"fdt","application/font-tdpfr":"pfr","application/geo+json":"geojson","application/gml+xml":"gml","application/gpx+xml":"gpx","application/gxf":"gxf","application/gzip":"gz","application/hjson":"hjson","application/hyperstudio":"stk","application/inkml+xml":"ink","application/ipfix":"ipfix","application/its+xml":"its","application/java-archive":"jar","application/java-serialized-object":"ser","application/java-vm":"class","application/javascript":"js","application/json":"json","application/json5":"json5","application/jsonml+json":"jsonml","application/ld+json":"jsonld","application/lgr+xml":"lgr","application/lost+xml":"lostxml","application/mac-binhex40":"hqx","application/mac-compactpro":"cpt","application/mads+xml":"mads","application/manifest+json":"webmanifest","application/marc":"mrc","application/marcxml+xml":"mrcx","application/mathematica":"ma","application/mathml+xml":"mathml","application/mbox":"mbox","application/media-policy-dataset+xml":"mpf","application/mediaservercontrol+xml":"mscml","application/metalink+xml":"metalink","application/metalink4+xml":"meta4","application/mets+xml":"mets","application/mmt-aei+xml":"maei","application/mmt-usd+xml":"musd","application/mods+xml":"mods","application/mp21":"m21","application/mp4":"mp4s","application/msword":"doc","application/mxf":"mxf","application/n-quads":"nq","application/n-triples":"nt","application/node":"cjs","application/octet-stream":"bin","application/oda":"oda","application/oebps-package+xml":"opf","application/ogg":"ogx","application/omdoc+xml":"omdoc","application/onenote":"onetoc","application/oxps":"oxps","application/p2p-overlay+xml":"relo","application/patch-ops-error+xml":"xer","application/pdf":"pdf","application/pgp-encrypted":"pgp","application/pgp-keys":"asc","application/pgp-signature":"asc","application/pics-rules":"prf","application/pkcs10":"p10","application/pkcs7-mime":"p7m","application/pkcs7-signature":"p7s","application/pkcs8":"p8","application/pkix-attr-cert":"ac","application/pkix-cert":"cer","application/pkix-crl":"crl","application/pkix-pkipath":"pkipath","application/pkixcmp":"pki","application/pls+xml":"pls","application/postscript":"ai","application/provenance+xml":"provx","application/prs.cww":"cww","application/pskc+xml":"pskcxml","application/raml+yaml":"raml","application/rdf+xml":"rdf","application/reginfo+xml":"rif","application/relax-ng-compact-syntax":"rnc","application/resource-lists+xml":"rl","application/resource-lists-diff+xml":"rld","application/rls-services+xml":"rs","application/route-apd+xml":"rapd","application/route-s-tsid+xml":"sls","application/route-usd+xml":"rusd","application/rpki-ghostbusters":"gbr","application/rpki-manifest":"mft","application/rpki-roa":"roa","application/rsd+xml":"rsd","application/rss+xml":"rss","application/rtf":"rtf","application/sbml+xml":"sbml","application/scvp-cv-request":"scq","application/scvp-cv-response":"scs","application/scvp-vp-request":"spq","application/scvp-vp-response":"spp","application/sdp":"sdp","application/senml+xml":"senmlx","application/sensml+xml":"sensmlx","application/set-payment-initiation":"setpay","application/set-registration-initiation":"setreg","application/shf+xml":"shf","application/sieve":"siv","application/smil+xml":"smi","application/sparql-query":"rq","application/sparql-results+xml":"srx","application/srgs":"gram","application/srgs+xml":"grxml","application/sru+xml":"sru","application/ssdl+xml":"ssdl","application/ssml+xml":"ssml","application/swid+xml":"swidtag","application/tei+xml":"tei","application/thraud+xml":"tfi","application/timestamped-data":"tsd","application/toml":"toml","application/trig":"trig","application/ttml+xml":"ttml","application/ubjson":"ubj","application/urc-ressheet+xml":"rsheet","application/urc-targetdesc+xml":"td","application/vnd.1000minds.decision-model+xml":"1km","application/vnd.3gpp.pic-bw-large":"plb","application/vnd.3gpp.pic-bw-small":"psb","application/vnd.3gpp.pic-bw-var":"pvb","application/vnd.3gpp2.tcap":"tcap","application/vnd.3m.post-it-notes":"pwn","application/vnd.accpac.simply.aso":"aso","application/vnd.accpac.simply.imp":"imp","application/vnd.acucobol":"acu","application/vnd.acucorp":"atc","application/vnd.adobe.air-application-installer-package+zip":"air","application/vnd.adobe.formscentral.fcdt":"fcdt","application/vnd.adobe.fxp":"fxp","application/vnd.adobe.xdp+xml":"xdp","application/vnd.adobe.xfdf":"xfdf","application/vnd.age":"age","application/vnd.ahead.space":"ahead","application/vnd.airzip.filesecure.azf":"azf","application/vnd.airzip.filesecure.azs":"azs","application/vnd.amazon.ebook":"azw","application/vnd.americandynamics.acc":"acc","application/vnd.amiga.ami":"ami","application/vnd.android.package-archive":"apk","application/vnd.anser-web-certificate-issue-initiation":"cii","application/vnd.anser-web-funds-transfer-initiation":"fti","application/vnd.antix.game-component":"atx","application/vnd.apple.installer+xml":"mpkg","application/vnd.apple.keynote":"key","application/vnd.apple.mpegurl":"m3u8","application/vnd.apple.numbers":"numbers","application/vnd.apple.pages":"pages","application/vnd.apple.pkpass":"pkpass","application/vnd.aristanetworks.swi":"swi","application/vnd.astraea-software.iota":"iota","application/vnd.audiograph":"aep","application/vnd.balsamiq.bmml+xml":"bmml","application/vnd.blueice.multipass":"mpm","application/vnd.bmi":"bmi","application/vnd.businessobjects":"rep","application/vnd.chemdraw+xml":"cdxml","application/vnd.chipnuts.karaoke-mmd":"mmd","application/vnd.cinderella":"cdy","application/vnd.citationstyles.style+xml":"csl","application/vnd.claymore":"cla","application/vnd.cloanto.rp9":"rp9","application/vnd.clonk.c4group":"c4g","application/vnd.cluetrust.cartomobile-config":"c11amc","application/vnd.cluetrust.cartomobile-config-pkg":"c11amz","application/vnd.commonspace":"csp","application/vnd.contact.cmsg":"cdbcmsg","application/vnd.cosmocaller":"cmc","application/vnd.crick.clicker":"clkx","application/vnd.crick.clicker.keyboard":"clkk","application/vnd.crick.clicker.palette":"clkp","application/vnd.crick.clicker.template":"clkt","application/vnd.crick.clicker.wordbank":"clkw","application/vnd.criticaltools.wbs+xml":"wbs","application/vnd.ctc-posml":"pml","application/vnd.cups-ppd":"ppd","application/vnd.curl.car":"car","application/vnd.curl.pcurl":"pcurl","application/vnd.dart":"dart","application/vnd.data-vision.rdz":"rdz","application/vnd.dbf":"dbf","application/vnd.dece.data":"uvf","application/vnd.dece.ttml+xml":"uvt","application/vnd.dece.unspecified":"uvx","application/vnd.dece.zip":"uvz","application/vnd.denovo.fcselayout-link":"fe_launch","application/vnd.dna":"dna","application/vnd.dolby.mlp":"mlp","application/vnd.dpgraph":"dpg","application/vnd.dreamfactory":"dfac","application/vnd.ds-keypoint":"kpxx","application/vnd.dvb.ait":"ait","application/vnd.dvb.service":"svc","application/vnd.dynageo":"geo","application/vnd.ecowin.chart":"mag","application/vnd.enliven":"nml","application/vnd.epson.esf":"esf","application/vnd.epson.msf":"msf","application/vnd.epson.quickanime":"qam","application/vnd.epson.salt":"slt","application/vnd.epson.ssf":"ssf","application/vnd.eszigno3+xml":"es3","application/vnd.ezpix-album":"ez2","application/vnd.ezpix-package":"ez3","application/vnd.fdf":"fdf","application/vnd.fdsn.mseed":"mseed","application/vnd.fdsn.seed":"seed","application/vnd.flographit":"gph","application/vnd.fluxtime.clip":"ftc","application/vnd.framemaker":"fm","application/vnd.frogans.fnc":"fnc","application/vnd.frogans.ltf":"ltf","application/vnd.fsc.weblaunch":"fsc","application/vnd.fujitsu.oasys":"oas","application/vnd.fujitsu.oasys2":"oa2","application/vnd.fujitsu.oasys3":"oa3","application/vnd.fujitsu.oasysgp":"fg5","application/vnd.fujitsu.oasysprs":"bh2","application/vnd.fujixerox.ddd":"ddd","application/vnd.fujixerox.docuworks":"xdw","application/vnd.fujixerox.docuworks.binder":"xbd","application/vnd.fuzzysheet":"fzs","application/vnd.genomatix.tuxedo":"txd","application/vnd.geogebra.file":"ggb","application/vnd.geogebra.tool":"ggt","application/vnd.geometry-explorer":"gex","application/vnd.geonext":"gxt","application/vnd.geoplan":"g2w","application/vnd.geospace":"g3w","application/vnd.gmx":"gmx","application/vnd.google-apps.document":"gdoc","application/vnd.google-apps.presentation":"gslides","application/vnd.google-apps.spreadsheet":"gsheet","application/vnd.google-earth.kml+xml":"kml","application/vnd.google-earth.kmz":"kmz","application/vnd.grafeq":"gqf","application/vnd.groove-account":"gac","application/vnd.groove-help":"ghf","application/vnd.groove-identity-message":"gim","application/vnd.groove-injector":"grv","application/vnd.groove-tool-message":"gtm","application/vnd.groove-tool-template":"tpl","application/vnd.groove-vcard":"vcg","application/vnd.hal+xml":"hal","application/vnd.handheld-entertainment+xml":"zmm","application/vnd.hbci":"hbci","application/vnd.hhe.lesson-player":"les","application/vnd.hp-hpgl":"hpgl","application/vnd.hp-hpid":"hpid","application/vnd.hp-hps":"hps","application/vnd.hp-jlyt":"jlt","application/vnd.hp-pcl":"pcl","application/vnd.hp-pclxl":"pclxl","application/vnd.hydrostatix.sof-data":"sfd-hdstx","application/vnd.ibm.minipay":"mpy","application/vnd.ibm.modcap":"afp","application/vnd.ibm.rights-management":"irm","application/vnd.ibm.secure-container":"sc","application/vnd.iccprofile":"icc","application/vnd.igloader":"igl","application/vnd.immervision-ivp":"ivp","application/vnd.immervision-ivu":"ivu","application/vnd.insors.igm":"igm","application/vnd.intercon.formnet":"xpw","application/vnd.intergeo":"i2g","application/vnd.intu.qbo":"qbo","application/vnd.intu.qfx":"qfx","application/vnd.ipunplugged.rcprofile":"rcprofile","application/vnd.irepository.package+xml":"irp","application/vnd.is-xpr":"xpr","application/vnd.isac.fcs":"fcs","application/vnd.jam":"jam","application/vnd.jcp.javame.midlet-rms":"rms","application/vnd.jisp":"jisp","application/vnd.joost.joda-archive":"joda","application/vnd.kahootz":"ktz","application/vnd.kde.karbon":"karbon","application/vnd.kde.kchart":"chrt","application/vnd.kde.kformula":"kfo","application/vnd.kde.kivio":"flw","application/vnd.kde.kontour":"kon","application/vnd.kde.kpresenter":"kpr","application/vnd.kde.kspread":"ksp","application/vnd.kde.kword":"kwd","application/vnd.kenameaapp":"htke","application/vnd.kidspiration":"kia","application/vnd.kinar":"kne","application/vnd.koan":"skp","application/vnd.kodak-descriptor":"sse","application/vnd.las.las+xml":"lasxml","application/vnd.llamagraphics.life-balance.desktop":"lbd","application/vnd.llamagraphics.life-balance.exchange+xml":"lbe","application/vnd.lotus-1-2-3":"123","application/vnd.lotus-approach":"apr","application/vnd.lotus-freelance":"pre","application/vnd.lotus-notes":"nsf","application/vnd.lotus-organizer":"org","application/vnd.lotus-screencam":"scm","application/vnd.lotus-wordpro":"lwp","application/vnd.macports.portpkg":"portpkg","application/vnd.mapbox-vector-tile":"mvt","application/vnd.mcd":"mcd","application/vnd.medcalcdata":"mc1","application/vnd.mediastation.cdkey":"cdkey","application/vnd.mfer":"mwf","application/vnd.mfmp":"mfm","application/vnd.micrografx.flo":"flo","application/vnd.micrografx.igx":"igx","application/vnd.mif":"mif","application/vnd.mobius.daf":"daf","application/vnd.mobius.dis":"dis","application/vnd.mobius.mbk":"mbk","application/vnd.mobius.mqy":"mqy","application/vnd.mobius.msl":"msl","application/vnd.mobius.plc":"plc","application/vnd.mobius.txf":"txf","application/vnd.mophun.application":"mpn","application/vnd.mophun.certificate":"mpc","application/vnd.mozilla.xul+xml":"xul","application/vnd.ms-artgalry":"cil","application/vnd.ms-cab-compressed":"cab","application/vnd.ms-excel":"xls","application/vnd.ms-excel.addin.macroenabled.12":"xlam","application/vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","application/vnd.ms-excel.sheet.macroenabled.12":"xlsm","application/vnd.ms-excel.template.macroenabled.12":"xltm","application/vnd.ms-fontobject":"eot","application/vnd.ms-htmlhelp":"chm","application/vnd.ms-ims":"ims","application/vnd.ms-lrm":"lrm","application/vnd.ms-officetheme":"thmx","application/vnd.ms-outlook":"msg","application/vnd.ms-pki.seccat":"cat","application/vnd.ms-pki.stl":"stl","application/vnd.ms-powerpoint":"ppt","application/vnd.ms-powerpoint.addin.macroenabled.12":"ppam","application/vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","application/vnd.ms-powerpoint.slide.macroenabled.12":"sldm","application/vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","application/vnd.ms-powerpoint.template.macroenabled.12":"potm","application/vnd.ms-project":"mpp","application/vnd.ms-word.document.macroenabled.12":"docm","application/vnd.ms-word.template.macroenabled.12":"dotm","application/vnd.ms-works":"wps","application/vnd.ms-wpl":"wpl","application/vnd.ms-xpsdocument":"xps","application/vnd.mseq":"mseq","application/vnd.musician":"mus","application/vnd.muvee.style":"msty","application/vnd.mynfc":"taglet","application/vnd.neurolanguage.nlu":"nlu","application/vnd.nitf":"ntf","application/vnd.noblenet-directory":"nnd","application/vnd.noblenet-sealer":"nns","application/vnd.noblenet-web":"nnw","application/vnd.nokia.n-gage.ac+xml":"ac","application/vnd.nokia.n-gage.data":"ngdat","application/vnd.nokia.n-gage.symbian.install":"n-gage","application/vnd.nokia.radio-preset":"rpst","application/vnd.nokia.radio-presets":"rpss","application/vnd.novadigm.edm":"edm","application/vnd.novadigm.edx":"edx","application/vnd.novadigm.ext":"ext","application/vnd.oasis.opendocument.chart":"odc","application/vnd.oasis.opendocument.chart-template":"otc","application/vnd.oasis.opendocument.database":"odb","application/vnd.oasis.opendocument.formula":"odf","application/vnd.oasis.opendocument.formula-template":"odft","application/vnd.oasis.opendocument.graphics":"odg","application/vnd.oasis.opendocument.graphics-template":"otg","application/vnd.oasis.opendocument.image":"odi","application/vnd.oasis.opendocument.image-template":"oti","application/vnd.oasis.opendocument.presentation":"odp","application/vnd.oasis.opendocument.presentation-template":"otp","application/vnd.oasis.opendocument.spreadsheet":"ods","application/vnd.oasis.opendocument.spreadsheet-template":"ots","application/vnd.oasis.opendocument.text":"odt","application/vnd.oasis.opendocument.text-master":"odm","application/vnd.oasis.opendocument.text-template":"ott","application/vnd.oasis.opendocument.text-web":"oth","application/vnd.olpc-sugar":"xo","application/vnd.oma.dd2+xml":"dd2","application/vnd.openblox.game+xml":"obgx","application/vnd.openofficeorg.extension":"oxt","application/vnd.openstreetmap.data+xml":"osm","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","application/vnd.openxmlformats-officedocument.presentationml.slide":"sldx","application/vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","application/vnd.openxmlformats-officedocument.presentationml.template":"potx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","application/vnd.osgeo.mapguide.package":"mgp","application/vnd.osgi.dp":"dp","application/vnd.osgi.subsystem":"esa","application/vnd.palm":"pdb","application/vnd.pawaafile":"paw","application/vnd.pg.format":"str","application/vnd.pg.osasli":"ei6","application/vnd.picsel":"efif","application/vnd.pmi.widget":"wg","application/vnd.pocketlearn":"plf","application/vnd.powerbuilder6":"pbd","application/vnd.previewsystems.box":"box","application/vnd.proteus.magazine":"mgz","application/vnd.publishare-delta-tree":"qps","application/vnd.pvi.ptid1":"ptid","application/vnd.quark.quarkxpress":"qxd","application/vnd.rar":"rar","application/vnd.realvnc.bed":"bed","application/vnd.recordare.musicxml":"mxl","application/vnd.recordare.musicxml+xml":"musicxml","application/vnd.rig.cryptonote":"cryptonote","application/vnd.rim.cod":"cod","application/vnd.rn-realmedia":"rm","application/vnd.rn-realmedia-vbr":"rmvb","application/vnd.route66.link66+xml":"link66","application/vnd.sailingtracker.track":"st","application/vnd.seemail":"see","application/vnd.sema":"sema","application/vnd.semd":"semd","application/vnd.semf":"semf","application/vnd.shana.informed.formdata":"ifm","application/vnd.shana.informed.formtemplate":"itp","application/vnd.shana.informed.interchange":"iif","application/vnd.shana.informed.package":"ipk","application/vnd.simtech-mindmapper":"twd","application/vnd.smaf":"mmf","application/vnd.smart.teacher":"teacher","application/vnd.software602.filler.form+xml":"fo","application/vnd.solent.sdkm+xml":"sdkm","application/vnd.spotfire.dxp":"dxp","application/vnd.spotfire.sfs":"sfs","application/vnd.stardivision.calc":"sdc","application/vnd.stardivision.draw":"sda","application/vnd.stardivision.impress":"sdd","application/vnd.stardivision.math":"smf","application/vnd.stardivision.writer":"sdw","application/vnd.stardivision.writer-global":"sgl","application/vnd.stepmania.package":"smzip","application/vnd.stepmania.stepchart":"sm","application/vnd.sun.wadl+xml":"wadl","application/vnd.sun.xml.calc":"sxc","application/vnd.sun.xml.calc.template":"stc","application/vnd.sun.xml.draw":"sxd","application/vnd.sun.xml.draw.template":"std","application/vnd.sun.xml.impress":"sxi","application/vnd.sun.xml.impress.template":"sti","application/vnd.sun.xml.math":"sxm","application/vnd.sun.xml.writer":"sxw","application/vnd.sun.xml.writer.global":"sxg","application/vnd.sun.xml.writer.template":"stw","application/vnd.sus-calendar":"sus","application/vnd.svd":"svd","application/vnd.symbian.install":"sis","application/vnd.syncml+xml":"xsm","application/vnd.syncml.dm+wbxml":"bdm","application/vnd.syncml.dm+xml":"xdm","application/vnd.syncml.dmddf+xml":"ddf","application/vnd.tao.intent-module-archive":"tao","application/vnd.tcpdump.pcap":"pcap","application/vnd.tmobile-livetv":"tmo","application/vnd.trid.tpt":"tpt","application/vnd.triscape.mxs":"mxs","application/vnd.trueapp":"tra","application/vnd.ufdl":"ufd","application/vnd.uiq.theme":"utz","application/vnd.umajin":"umj","application/vnd.unity":"unityweb","application/vnd.uoml+xml":"uoml","application/vnd.vcx":"vcx","application/vnd.visio":"vsd","application/vnd.visionary":"vis","application/vnd.vsf":"vsf","application/vnd.wap.wbxml":"wbxml","application/vnd.wap.wmlc":"wmlc","application/vnd.wap.wmlscriptc":"wmlsc","application/vnd.webturbo":"wtb","application/vnd.wolfram.player":"nbp","application/vnd.wordperfect":"wpd","application/vnd.wqd":"wqd","application/vnd.wt.stf":"stf","application/vnd.xara":"xar","application/vnd.xfdl":"xfdl","application/vnd.yamaha.hv-dic":"hvd","application/vnd.yamaha.hv-script":"hvs","application/vnd.yamaha.hv-voice":"hvp","application/vnd.yamaha.openscoreformat":"osf","application/vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","application/vnd.yamaha.smaf-audio":"saf","application/vnd.yamaha.smaf-phrase":"spf","application/vnd.yellowriver-custom-menu":"cmp","application/vnd.zul":"zir","application/vnd.zzazz.deck+xml":"zaz","application/voicexml+xml":"vxml","application/wasm":"wasm","application/watcherinfo+xml":"wif","application/widget":"wgt","application/winhlp":"hlp","application/wsdl+xml":"wsdl","application/wspolicy+xml":"wspolicy","application/x-7z-compressed":"7z","application/x-abiword":"abw","application/x-ace-compressed":"ace","application/x-apple-diskimage":"dmg","application/x-arj":"arj","application/x-authorware-bin":"aab","application/x-authorware-map":"aam","application/x-authorware-seg":"aas","application/x-bcpio":"bcpio","application/x-bdoc":"bdoc","application/x-bittorrent":"torrent","application/x-blorb":"blb","application/x-bzip":"bz","application/x-bzip2":"bz2","application/x-cbr":"cbr","application/x-cdlink":"vcd","application/x-cfs-compressed":"cfs","application/x-chat":"chat","application/x-chess-pgn":"pgn","application/x-chrome-extension":"crx","application/x-cocoa":"cco","application/x-conference":"nsc","application/x-cpio":"cpio","application/x-csh":"csh","application/x-debian-package":"deb","application/x-dgc-compressed":"dgc","application/x-director":"dir","application/x-doom":"wad","application/x-dtbncx+xml":"ncx","application/x-dtbook+xml":"dtb","application/x-dtbresource+xml":"res","application/x-dvi":"dvi","application/x-envoy":"evy","application/x-eva":"eva","application/x-font-bdf":"bdf","application/x-font-ghostscript":"gsf","application/x-font-linux-psf":"psf","application/x-font-pcf":"pcf","application/x-font-snf":"snf","application/x-font-type1":"pfa","application/x-freearc":"arc","application/x-futuresplash":"spl","application/x-gca-compressed":"gca","application/x-glulx":"ulx","application/x-gnumeric":"gnumeric","application/x-gramps-xml":"gramps","application/x-gtar":"gtar","application/x-hdf":"hdf","application/x-httpd-php":"php","application/x-install-instructions":"install","application/x-iso9660-image":"iso","application/x-iwork-keynote-sffkey":"key","application/x-iwork-numbers-sffnumbers":"numbers","application/x-iwork-pages-sffpages":"pages","application/x-java-archive-diff":"jardiff","application/x-java-jnlp-file":"jnlp","application/x-keepass2":"kdbx","application/x-latex":"latex","application/x-lua-bytecode":"luac","application/x-lzh-compressed":"lzh","application/x-makeself":"run","application/x-mie":"mie","application/x-mobipocket-ebook":"prc","application/x-ms-application":"application","application/x-ms-shortcut":"lnk","application/x-ms-wmd":"wmd","application/x-ms-wmz":"wmz","application/x-ms-xbap":"xbap","application/x-msaccess":"mdb","application/x-msbinder":"obd","application/x-mscardfile":"crd","application/x-msclip":"clp","application/x-msdos-program":"exe","application/x-msdownload":"exe","application/x-msmediaview":"mvb","application/x-msmetafile":"wmf","application/x-msmoney":"mny","application/x-mspublisher":"pub","application/x-msschedule":"scd","application/x-msterminal":"trm","application/x-mswrite":"wri","application/x-netcdf":"nc","application/x-ns-proxy-autoconfig":"pac","application/x-nzb":"nzb","application/x-perl":"pl","application/x-pilot":"prc","application/x-pkcs12":"p12","application/x-pkcs7-certificates":"p7b","application/x-pkcs7-certreqresp":"p7r","application/x-rar-compressed":"rar","application/x-redhat-package-manager":"rpm","application/x-research-info-systems":"ris","application/x-sea":"sea","application/x-sh":"sh","application/x-shar":"shar","application/x-shockwave-flash":"swf","application/x-silverlight-app":"xap","application/x-sql":"sql","application/x-stuffit":"sit","application/x-stuffitx":"sitx","application/x-subrip":"srt","application/x-sv4cpio":"sv4cpio","application/x-sv4crc":"sv4crc","application/x-t3vm-image":"t3","application/x-tads":"gam","application/x-tar":"tar","application/x-tcl":"tcl","application/x-tex":"tex","application/x-tex-tfm":"tfm","application/x-texinfo":"texinfo","application/x-tgif":"obj","application/x-ustar":"ustar","application/x-virtualbox-hdd":"hdd","application/x-virtualbox-ova":"ova","application/x-virtualbox-ovf":"ovf","application/x-virtualbox-vbox":"vbox","application/x-virtualbox-vbox-extpack":"vbox-extpack","application/x-virtualbox-vdi":"vdi","application/x-virtualbox-vhd":"vhd","application/x-virtualbox-vmdk":"vmdk","application/x-wais-source":"src","application/x-web-app-manifest+json":"webapp","application/x-x509-ca-cert":"der","application/x-xfig":"fig","application/x-xliff+xml":"xlf","application/x-xpinstall":"xpi","application/x-xz":"xz","application/x-zmachine":"z1","application/xaml+xml":"xaml","application/xcap-att+xml":"xav","application/xcap-caps+xml":"xca","application/xcap-diff+xml":"xdf","application/xcap-el+xml":"xel","application/xcap-ns+xml":"xns","application/xenc+xml":"xenc","application/xhtml+xml":"xhtml","application/xliff+xml":"xlf","application/xml":"xml","application/xml-dtd":"dtd","application/xop+xml":"xop","application/xproc+xml":"xpl","application/xslt+xml":"xsl","application/xspf+xml":"xspf","application/xv+xml":"mxml","application/yang":"yang","application/yin+xml":"yin","application/zip":"zip","audio/3gpp":"3gpp","audio/adpcm":"adp","audio/amr":"amr","audio/basic":"au","audio/midi":"mid","audio/mobile-xmf":"mxmf","audio/mp3":"mp3","audio/mp4":"m4a","audio/mpeg":"mpga","audio/ogg":"oga","audio/s3m":"s3m","audio/silk":"sil","audio/vnd.dece.audio":"uva","audio/vnd.digital-winds":"eol","audio/vnd.dra":"dra","audio/vnd.dts":"dts","audio/vnd.dts.hd":"dtshd","audio/vnd.lucent.voice":"lvp","audio/vnd.ms-playready.media.pya":"pya","audio/vnd.nuera.ecelp4800":"ecelp4800","audio/vnd.nuera.ecelp7470":"ecelp7470","audio/vnd.nuera.ecelp9600":"ecelp9600","audio/vnd.rip":"rip","audio/wav":"wav","audio/wave":"wav","audio/webm":"weba","audio/x-aac":"aac","audio/x-aiff":"aif","audio/x-caf":"caf","audio/x-flac":"flac","audio/x-m4a":"m4a","audio/x-matroska":"mka","audio/x-mpegurl":"m3u","audio/x-ms-wax":"wax","audio/x-ms-wma":"wma","audio/x-pn-realaudio":"ram","audio/x-pn-realaudio-plugin":"rmp","audio/x-realaudio":"ra","audio/x-wav":"wav","audio/xm":"xm","chemical/x-cdx":"cdx","chemical/x-cif":"cif","chemical/x-cmdf":"cmdf","chemical/x-cml":"cml","chemical/x-csml":"csml","chemical/x-xyz":"xyz","font/collection":"ttc","font/otf":"otf","font/ttf":"ttf","font/woff":"woff","font/woff2":"woff2","image/aces":"exr","image/apng":"apng","image/avci":"avci","image/avcs":"avcs","image/avif":"avif","image/bmp":"bmp","image/cgm":"cgm","image/dicom-rle":"drle","image/emf":"emf","image/fits":"fits","image/g3fax":"g3","image/gif":"gif","image/heic":"heic","image/heic-sequence":"heics","image/heif":"heif","image/heif-sequence":"heifs","image/hej2k":"hej2","image/hsj2":"hsj2","image/ief":"ief","image/jls":"jls","image/jp2":"jp2","image/jpeg":"jpeg","image/jph":"jph","image/jphc":"jhc","image/jpm":"jpm","image/jpx":"jpx","image/jxr":"jxr","image/jxra":"jxra","image/jxrs":"jxrs","image/jxs":"jxs","image/jxsc":"jxsc","image/jxsi":"jxsi","image/jxss":"jxss","image/ktx":"ktx","image/ktx2":"ktx2","image/png":"png","image/prs.btif":"btif","image/prs.pti":"pti","image/sgi":"sgi","image/svg+xml":"svg","image/t38":"t38","image/tiff":"tif","image/tiff-fx":"tfx","image/vnd.adobe.photoshop":"psd","image/vnd.airzip.accelerator.azv":"azv","image/vnd.dece.graphic":"uvi","image/vnd.djvu":"djvu","image/vnd.dvb.subtitle":"sub","image/vnd.dwg":"dwg","image/vnd.dxf":"dxf","image/vnd.fastbidsheet":"fbs","image/vnd.fpx":"fpx","image/vnd.fst":"fst","image/vnd.fujixerox.edmics-mmr":"mmr","image/vnd.fujixerox.edmics-rlc":"rlc","image/vnd.microsoft.icon":"ico","image/vnd.ms-dds":"dds","image/vnd.ms-modi":"mdi","image/vnd.ms-photo":"wdp","image/vnd.net-fpx":"npx","image/vnd.pco.b16":"b16","image/vnd.tencent.tap":"tap","image/vnd.valve.source.texture":"vtf","image/vnd.wap.wbmp":"wbmp","image/vnd.xiff":"xif","image/vnd.zbrush.pcx":"pcx","image/webp":"webp","image/wmf":"wmf","image/x-3ds":"3ds","image/x-cmu-raster":"ras","image/x-cmx":"cmx","image/x-freehand":"fh","image/x-icon":"ico","image/x-jng":"jng","image/x-mrsid-image":"sid","image/x-ms-bmp":"bmp","image/x-pcx":"pcx","image/x-pict":"pic","image/x-portable-anymap":"pnm","image/x-portable-bitmap":"pbm","image/x-portable-graymap":"pgm","image/x-portable-pixmap":"ppm","image/x-rgb":"rgb","image/x-tga":"tga","image/x-xbitmap":"xbm","image/x-xpixmap":"xpm","image/x-xwindowdump":"xwd","message/disposition-notification":"disposition-notification","message/global":"u8msg","message/global-delivery-status":"u8dsn","message/global-disposition-notification":"u8mdn","message/global-headers":"u8hdr","message/rfc822":"eml","message/vnd.wfa.wsc":"wsc","model/3mf":"3mf","model/gltf+json":"gltf","model/gltf-binary":"glb","model/iges":"igs","model/mesh":"msh","model/mtl":"mtl","model/obj":"obj","model/step+xml":"stpx","model/step+zip":"stpz","model/step-xml+zip":"stpxz","model/stl":"stl","model/vnd.collada+xml":"dae","model/vnd.dwf":"dwf","model/vnd.gdl":"gdl","model/vnd.gtw":"gtw","model/vnd.mts":"mts","model/vnd.opengex":"ogex","model/vnd.parasolid.transmit.binary":"x_b","model/vnd.parasolid.transmit.text":"x_t","model/vnd.sap.vds":"vds","model/vnd.usdz+zip":"usdz","model/vnd.valve.source.compiled-map":"bsp","model/vnd.vtu":"vtu","model/vrml":"wrl","model/x3d+binary":"x3db","model/x3d+fastinfoset":"x3db","model/x3d+vrml":"x3dv","model/x3d+xml":"x3d","model/x3d-vrml":"x3dv","text/cache-manifest":"appcache","text/calendar":"ics","text/coffeescript":"coffee","text/css":"css","text/csv":"csv","text/html":"html","text/jade":"jade","text/jsx":"jsx","text/less":"less","text/markdown":"markdown","text/mathml":"mml","text/mdx":"mdx","text/n3":"n3","text/plain":"txt","text/prs.lines.tag":"dsc","text/richtext":"rtx","text/rtf":"rtf","text/sgml":"sgml","text/shex":"shex","text/slim":"slim","text/spdx":"spdx","text/stylus":"stylus","text/tab-separated-values":"tsv","text/troff":"t","text/turtle":"ttl","text/uri-list":"uri","text/vcard":"vcard","text/vnd.curl":"curl","text/vnd.curl.dcurl":"dcurl","text/vnd.curl.mcurl":"mcurl","text/vnd.curl.scurl":"scurl","text/vnd.dvb.subtitle":"sub","text/vnd.familysearch.gedcom":"ged","text/vnd.fly":"fly","text/vnd.fmi.flexstor":"flx","text/vnd.graphviz":"gv","text/vnd.in3d.3dml":"3dml","text/vnd.in3d.spot":"spot","text/vnd.sun.j2me.app-descriptor":"jad","text/vnd.wap.wml":"wml","text/vnd.wap.wmlscript":"wmls","text/vtt":"vtt","text/x-asm":"s","text/x-c":"c","text/x-component":"htc","text/x-fortran":"f","text/x-handlebars-template":"hbs","text/x-java-source":"java","text/x-lua":"lua","text/x-markdown":"mkd","text/x-nfo":"nfo","text/x-opml":"opml","text/x-org":"org","text/x-pascal":"p","text/x-processing":"pde","text/x-sass":"sass","text/x-scss":"scss","text/x-setext":"etx","text/x-sfv":"sfv","text/x-suse-ymp":"ymp","text/x-uuencode":"uu","text/x-vcalendar":"vcs","text/x-vcard":"vcf","text/xml":"xml","text/yaml":"yaml","video/3gpp":"3gp","video/3gpp2":"3g2","video/h261":"h261","video/h263":"h263","video/h264":"h264","video/iso.segment":"m4s","video/jpeg":"jpgv","video/jpm":"jpm","video/mj2":"mj2","video/mp2t":"ts","video/mp4":"mp4","video/mpeg":"mpeg","video/ogg":"ogv","video/quicktime":"qt","video/vnd.dece.hd":"uvh","video/vnd.dece.mobile":"uvm","video/vnd.dece.pd":"uvp","video/vnd.dece.sd":"uvs","video/vnd.dece.video":"uvv","video/vnd.dvb.file":"dvb","video/vnd.fvt":"fvt","video/vnd.mpegurl":"mxu","video/vnd.ms-playready.media.pyv":"pyv","video/vnd.uvvu.mp4":"uvu","video/vnd.vivo":"viv","video/webm":"webm","video/x-f4v":"f4v","video/x-fli":"fli","video/x-flv":"flv","video/x-m4v":"m4v","video/x-matroska":"mkv","video/x-mng":"mng","video/x-ms-asf":"asf","video/x-ms-vob":"vob","video/x-ms-wm":"wm","video/x-ms-wmv":"wmv","video/x-ms-wmx":"wmx","video/x-ms-wvx":"wvx","video/x-msvideo":"avi","video/x-sgi-movie":"movie","video/x-smv":"smv","x-conference/x-cooltalk":"ice"},Zg=/^\s*([^;\s]*)(?:;|\s|$)/;function vr(n){if(!n||typeof n!="string")return"";let t=Zg.exec(n);return t&&Wg[t[1].toLowerCase()]||""}var Rn=n=>Ze(n).replace(/[\[\]\#\^]/g,""),hi=(n,t)=>K.readdirSync(n).filter(i=>{let r=i.split(".").slice(0,-1).join("."),o=Sn(t),a=r.match(new RegExp(`${o}\\.\\d+`));return r===t||a}).length,ou=(n,t)=>{let e=B.useUniqueUnknownFileNames?"unknown_filename"+(Math.random().toString(16)+"0000000").slice(2,10):"unknown_filename",i=Gg(t),r=e;if(t["resource-attributes"]&&t["resource-attributes"]["file-name"]){let s=t["resource-attributes"]["file-name"].substr(0,50);r=re(s).basename}r=r.replace(/[/\\?%*:|"<>\[\]\+]/g,"-"),B.sanitizeResourceNameSpaces&&(r=r.replace(/ /g,B.replacementChar));let o=hi(n,r);return{fileName:`${o>0?`${r}.${o}`:r}.${i}`,extension:i,index:o}},Fa=n=>Rn(n.title?`${n.title.toString()}`:"Untitled"),au=(n,t,e="md")=>`${La(n,t)}.${e}`,Yg=n=>{if(!(n["resource-attributes"]&&n["resource-attributes"]["file-name"]))return"";let t=n["resource-attributes"]["file-name"].split(".");return t.length>1?t[t.length-1]:void 0},zg=n=>{let t=n.mime;return t&&vr(t)||""},Gg=n=>{let t="dat";return Yg(n)||zg(n)||t},Vg=(n,t)=>(0,ru.moment)(n.created).format("YYYYMMDDHHmm"),La=(n,t)=>{let e;if(B.isZettelkastenNeeded||B.useZettelIdAsFilename){let i=Vg(t,n),r=hi(n,i),o=" ";e=r!==0?`${i}.${r}`:i,B.useZettelIdAsFilename||(e+=Fa(t)!=="Untitled"?`${o}${Fa(t)}`:"")}else{let i=Fa(t),r=hi(n,i);e=r===0?i:`${i}.${r}`}return e};var su=n=>n==="Table of Contents";var Kg=n=>n.replace(/\[|\]/g,""),Xg=n=>n.replace(/\\/g,""),cu={filter:qe("A"),replacement:(n,t)=>{let e=ue(t);if(!e.href)return"";let i=Er(B).turndown(Kg(t.innerHTML));i=Xg(i);let r="",o=i.match(/^(#{1,6} )(.*)/);o&&(r=o[1],i=o[2]);let a=e.href.value,s=e.type?e.type.value:void 0,l=B.urlEncodeFileNamesAndLinks?encodeURI(a):a;if(s==="file")return`![[${l}]]`;if(a.match(/^(https?:|www\.|file:|ftp:|mailto:)/))return r+e0(i,a);if(a.startsWith("evernote://")){let c=Rn(i),p=fe.getInstance(),m=xn(6);return su(p.getCurrentNoteName())?p.addItemToTOCMap({url:a,title:c,uniqueEnd:m}):p.addItemToMap({url:a,title:c,uniqueEnd:m}),r+`[[${a}]]`}return r+`[[${l}${i===l?"":`|${i}`}]]`}},Jg={"&":"&","<":"<",">":">",""":'"',"'":"'"},pu=/&(?:amp|lt|gt|quot|#39);/g,Qg=RegExp(pu.source);function lu(n){return n&&Qg.test(n)?n.replace(pu,t=>Jg[t]):n}var e0=(n,t)=>!n||lu(n)===lu(t)?B.generateNakedUrls?t:`<${t}>`:`[${n}](${t})`;var we={bold:"**",italic:"_",highlight:"==",strikethrough:"~~"};var t0="-evernote-highlight:true;",n0="--en-highlight",i0="bold",r0="italic",uu={filter:qe("SPAN"),replacement:(n,t)=>{let e=ue(t);if(e.style&&n.trim()!==""){let i=e.style.value;if(n!==""){let r=i.includes(i0),o=i.includes(r0);if(r&&!o)return`${we.bold}${n}${we.bold}`;if(!r&&o)return`${we.italic}${n}${we.italic}`;if(r&&o)return`${we.italic}${we.bold}${n}${we.bold}${we.italic}`}return i.includes(t0)||i.includes(n0)?`${we.highlight}${n}${we.highlight}`:n}return n}};var fu={filter:["del","s","strike"],replacement:n=>`${we.strikethrough}${n}${we.strikethrough}`};var du={filter:qe("EN-TODO"),replacement:(n,t)=>{var r,o;let e=ue(t);return`${((o=(r=t.parentElement)==null?void 0:r.nodeName)==null?void 0:o.toUpperCase())==="LI"?"":"- "}${e.checked&&e.checked.value==="true"?"[x]":"[ ]"} ${n}`}};var mu={filter:qe("BR"),replacement:(n,t)=>""};var o0=n=>{let t=ue(n),e="--en-task-group:true";return t.style&&t.style.value.indexOf(e)>=0},a0=n=>{let t=ue(n),e="--en-id:";return t.style.value.split(e)[1].split(";")[0]},hu={filter:qe("DIV"),replacement:(n,t)=>o0(t)?`${a0(t)}`:B.monospaceIsCodeBlock?nu(n,t):eu(n,t)};var gu={filter:["i"],replacement:n=>n.trim()!==""?`${we.italic}${n}${we.italic}`:n};var _r="- [ ]",Tr="- [x]";var yu=" ",bu={filter:"li",replacement:(n,t,e)=>{let i=m=>{let y=ue(m),w="--en-checked:true;";return y.style&&y.style.value.indexOf(w)>=0},r=m=>{let y=ue(m),w="--en-checked:false;";return y.style&&y.style.value.indexOf(w)>=0},o=n.match(/^\n*/)[0].length||0,a=yu.repeat(o),s=n.replace(/^\n+/,"").replace(/\n+$/,` +`).replace(/\n/gm,` +${yu}`),l=o>0?a:i(t)?`${Tr} `:r(t)?`${_r} `:"* ",c=t.parentNode;if(c.nodeName==="OL"){let m=c.getAttribute("start"),y=Array.prototype.indexOf.call(c.children,t);l=`${m?Number(m)+y:y+1}. `}let p;return p=l+s+(t.nextSibling&&!/\n$/.test(s)?` +`:""),p}};var Er=n=>{let t=new window.TurndownService({br:"",...n.turndownOptions,blankReplacement:(e,i)=>i.isBlock?` + +`:"",keepReplacement:(e,i)=>i.isBlock?` +${i.outerHTML} +`:i.outerHTML,defaultReplacement:(e,i)=>i.isBlock?` +${e} +`:e});return t.use(Jp),t.addRule("span",uu),t.addRule("strikethrough",fu),t.addRule("evernote task items",du),t.addRule("wikistyle links",cu),t.addRule("images",iu),t.addRule("list",bu),t.addRule("italic",gu),n.keepMDCharactersOfENNotes&&(t.escape=e=>e),t.addRule("divBlock",hu),n.keepOriginalAmountOfNewlines&&t.addRule("newline",mu),t};var xu=n=>{n.replaceWith(...Array.from(n.children))},wu=n=>{let t=n.parentElement;t.replaceWith(...Array.from(t.childNodes)),t.append(...Array.from(n.childNodes)),n.appendChild(t)},s0=n=>(Array.from(n.querySelectorAll("span>en-todo")).forEach(wu),Array.from(n.querySelectorAll("a>en-todo")).forEach(wu),n),l0=n=>{let t=n.replace(/

  • /g,"
  • ");return t=t.replace(/<\/li>/g,"
  • "),t=t.replace(/
  • (\s)*
    /g,"
  • "),t=t.replace(/<\/div>(\s)*<\/div><\/li>/g,"
  • "),t},c0=n=>{var o;let t=Array.from(n.getElementsByTagName("ul")),e=Array.from(n.getElementsByTagName("ol")),i=t.concat(e);i.forEach(a=>{a.parentElement.tagName==="LI"&&a.parentElement.replaceWith(a),a.previousElementSibling&&a.previousElementSibling.tagName==="LI"&&a.previousElementSibling.appendChild(a)});for(let a of i){let s=a.parentElement;(s==null?void 0:s.tagName)==="DIV"&&((o=s==null?void 0:s.parentElement)==null?void 0:o.tagName)==="UL"&&xu(s),((s==null?void 0:s.tagName)==="UL"||(s==null?void 0:s.tagName)==="OL")&&(s==null?void 0:s.childNodes.length)===1&&xu(s)}let r=Array.from(n.getElementsByTagName("li"));for(let a of r){let s=a.firstElementChild;if(s&&s.tagName==="DIV"){let l=Array.from(s.childNodes);s.replaceWith(...l)}}return n},vu=(n,{htmlContent:t})=>{let e=t.replace(/]*>/,"").replace(/(]*)\/>/,"$1>").replace(//g,""),i=new DOMParser().parseFromString(l0(e),"text/html").getElementsByTagName("en-note").item(0),r=Er(n).turndown(s0(c0(i))),o=new RegExp("","g");return r=r.replace(o,""),r&&r!=="undefined"?{content:r}:{content:""}};var df=rs(require("crypto"));var yt=require("obsidian");var Eu=(n,t)=>({createdAt:p0(n),updatedAt:u0(n),sourceUrl:f0(n),location:d0(n),reminderTime:m0(n),reminderOrder:h0(n),reminderDoneTime:g0(n),notebookName:t});var p0=n=>!B.skipCreationTime&&n.created?(0,yt.moment)(n.created).format(B.dateFormat):"",u0=n=>!B.skipUpdateTime&&n.updated?(0,yt.moment)(n.updated).format(B.dateFormat):"",f0=n=>!B.skipSourceUrl&&n["note-attributes"]?n["note-attributes"]["source-url"]:"",d0=n=>!B.skipLocation&&n["note-attributes"]&&n["note-attributes"].longitude?`${n["note-attributes"].latitude},${n["note-attributes"].longitude}`:"",m0=n=>!B.skipReminderTime&&n["note-attributes"]&&n["note-attributes"]["reminder-time"]?(0,yt.moment)(n["note-attributes"]["reminder-time"]).format(B.dateFormat):"",h0=n=>!B.skipReminderOrder&&n["note-attributes"]&&n["note-attributes"]["reminder-order"]?n["note-attributes"]["reminder-order"]:"",g0=n=>!B.skipReminderDoneTime&&n["note-attributes"]&&n["note-attributes"]["reminder-done-time"]?(0,yt.moment)(n["note-attributes"]["reminder-done-time"]).format(B.dateFormat):"",_u=n=>({tags:y0(n)}),y0=n=>{if(!B.skipTags&&n.tag){let t=Array.isArray(n.tag)?n.tag:[n.tag],e=B.nestedTags;return t.map(r=>{let o=r.toString().replace(/^#/,"");e&&(o=o.replace(new RegExp(Sn(e.separatorInEN),"g"),e.replaceSeparatorWith));let a=e&&e.replaceSpaceWith||"-";return o=o.replace(/ /g,a),`${B.useHashTags?"#":""}${o}`}).join(" ")}return""},Pa;try{Pa=window.require("btime")}catch(n){}var Ar=(n,t)=>{let e=(0,yt.moment)(t.created).valueOf();e>0&&Pa&&Pa.btime(n,e);let r=(0,yt.moment)(t.updated).valueOf()/1e3;try{K.utimesSync(n,r,r)}catch(o){}},Tu=n=>n["resource-attributes"]&&n["resource-attributes"].timestamp?(0,yt.moment)(n["resource-attributes"].timestamp):(0,yt.moment)();var Au=(n,t,e)=>{let i=n.lastIndexOf(t);return i<0?n:n.substring(0,i)+e+n.substring(i+t.length)};var Ae={mdPath:"",resourcePath:""},Nr=249,ku=(n,t)=>La(n,t).replace(/\s/g,"_"),Nu=(n,t)=>{if(n.length<=11)throw Error("FATAL: note folder directory path exceeds the OS limitation. Please pick a destination closer to the root folder.");return`${$a()}${q.sep}${n}`.length{let r=fe.getInstance().getNoteIdNameMapByNoteTitle(Rn(n.title))[0]||{uniqueEnd:xn(6)};if(t.length<=11)throw Error("FATAL: note folder directory path exceeds the OS limitation. Please pick a destination closer to the root folder.");return`${e.slice(0,Nr-11)}_${r.uniqueEnd}.md`},x0=(n,t,e)=>{let i=au(n,t,e),r=`${n}${q.sep}${Rn(i)}`;return r.lengthx0(Ae.mdPath,n,"md");var w0=n=>{K.existsSync(n)&&(K.rmSync?K.rmSync(n,{recursive:!0,force:!0}):K.rmdirSync(n,{recursive:!0})),K.mkdirSync(n)},Ru=n=>{let t=`${q.sep}${B.resourcesDir}`;return B.haveGlobalResources?`..${t}`:B.haveEnexLevelResources?`.${t}`:`.${t}${q.sep}${ku(Ae.mdPath,n)}.resources`},Ma=n=>B.haveGlobalResources?q.resolve(Ae.resourcePath,"..","..",B.resourcesDir):B.haveEnexLevelResources?Ae.resourcePath:`${Ae.resourcePath}${q.sep}${ku(Ae.mdPath,n)}.resources`,kr=new Map,Ou=n=>{let t=Ma(n);kr.has(t)||kr.set(t,0);let e=kr.get(t)||0;(B.haveEnexLevelResources||B.haveGlobalResources)&&e>=1||(w0(t),kr.set(t,e+1))},Du=n=>{let t=n.split("@@@"),e=t.pop();return e||(e=n),{notebookName:e,notebookFolderNames:t}},Cu=n=>{if(!(n instanceof Me))throw new Error("Evernote import currently only works on desktop");let{notebookName:t}=Du(n.basename);return{fullpath:Au(n.fullpath,n.basename,t||n.basename),basename:t}},Iu=(n,t)=>{let{notebookFolderNames:e}=Du(n.basename);return K.mkdirSync(q.join(t.outputDir,...e),{recursive:!0}),[t.outputDir,...e].join(t.pathSeparator)},Fu=(n,t)=>{let e=n.basename;Pu(e,t)},Lu=(n,t)=>{let e=n.basename;Pu(e,t)},Pu=(n,t)=>{let e=q.isAbsolute(t.outputDir)?t.outputDir:`${process.cwd()}${q.sep}${t.outputDir}`;Ae.mdPath=`${e}${q.sep}`,Ae.resourcePath=`${e}${q.sep}${t.resourcesDir}`,t.skipEnexFileNameFromOutputPath||(Ae.mdPath=`${Ae.mdPath}${n}`,Ae.resourcePath=`${e}${q.sep}${n}${q.sep}${t.resourcesDir}`),K.mkdirSync(Ae.mdPath,{recursive:!0}),!t.haveEnexLevelResources&&!t.haveGlobalResources&&K.mkdirSync(Ae.resourcePath,{recursive:!0}),console.log(`path ${Ae.mdPath} created`)},$a=()=>Ae.mdPath;var Mu=n=>!!n.resource,$u=n=>n["note-attributes"]&&(n["note-attributes"]["source-application"]==="webclipper.evernote"||n["note-attributes"].source==="web.clip7");var Ba={};Se(Ba,{CONTENT_PLACEHOLDER:()=>v0,END_BLOCK:()=>_0,START_BLOCK:()=>E0});var v0="{content}",E0="{content-block}",_0="{end-content-block}";var Pt=({template:n,check:t,startBlockPlaceholder:e,endBlockPlaceholder:i,valuePlaceholder:r,value:o})=>{if(o&&t())return n.replace(new RegExp(`${e}`,"g"),"").replace(new RegExp(`${i}`,"g"),"").replace(new RegExp(`${r}`,"g"),o);let a=`${e}([\\d\\D])(?:.|(\r +|\r| +))*?(?=${i})${i}`;return n.replace(new RegExp(a,"g"),"")};var Mt=(n,t,e,i)=>({template:n,check:t,startBlockPlaceholder:e.START_BLOCK,endBlockPlaceholder:e.END_BLOCK,valuePlaceholder:e.CONTENT_PLACEHOLDER,value:i});var Bu=(n,t,e)=>{let i=Mt(t,e,Ba,n.content);return Pt(i)};var gi={};Se(gi,{CONTENT_PLACEHOLDER:()=>T0,END_BLOCK:()=>k0,START_BLOCK:()=>A0});var T0="{tags}",A0="{tags-block}",k0="{end-tags-block}";var Uu=(n,t,e)=>{let i=Mt(t,e,gi,n.tags);return Pt(i)};var Ua={};Se(Ua,{CONTENT_PLACEHOLDER:()=>N0,END_BLOCK:()=>R0,START_BLOCK:()=>S0});var N0="{title}",S0="{title-block}",R0="{end-title-block}";var ju=(n,t,e)=>{let i=Mt(t,e,Ua,n.title);return Pt(i)};var rn={};Se(rn,{CONTENT_PLACEHOLDER:()=>O0,END_BLOCK:()=>C0,START_BLOCK:()=>D0});var O0="{created-at}",D0="{created-at-block}",C0="{end-created-at-block}";var Ee=(n,t,e)=>n.replace(new RegExp(`${t.CONTENT_PLACEHOLDER}`,"g"),e||"").replace(new RegExp(`${t.START_BLOCK}`,"g"),"").replace(new RegExp(`${t.END_BLOCK}`,"g"),"");var Hu=(n,t)=>Ee(t,rn,n.createdAt);var on={};Se(on,{CONTENT_PLACEHOLDER:()=>I0,END_BLOCK:()=>L0,START_BLOCK:()=>F0});var I0="{updated-at}",F0="{updated-at-block}",L0="{end-updated-at-block}";var qu=(n,t)=>Ee(t,on,n.updatedAt);var an={};Se(an,{CONTENT_PLACEHOLDER:()=>P0,END_BLOCK:()=>$0,START_BLOCK:()=>M0});var P0="{source-url}",M0="{source-url-block}",$0="{end-source-url-block}";var Wu=(n,t)=>Ee(t,an,n.sourceUrl);var sn={};Se(sn,{CONTENT_PLACEHOLDER:()=>B0,END_BLOCK:()=>j0,START_BLOCK:()=>U0});var B0="{location}",U0="{location-block}",j0="{end-location-block}";var Zu=(n,t)=>Ee(t,sn,n.location);var ln={};Se(ln,{CONTENT_PLACEHOLDER:()=>H0,END_BLOCK:()=>W0,START_BLOCK:()=>q0});var H0="{notebook}",q0="{notebook-block}",W0="{end-notebook-block}";var Yu=(n,t)=>Ee(t,ln,n.notebookName);var On={};Se(On,{CONTENT_PLACEHOLDER:()=>Z0,END_BLOCK:()=>z0,START_BLOCK:()=>Y0});var Z0="{reminder-time}",Y0="{reminder-time-block}",z0="{end-reminder-time-block}";var zu=(n,t)=>Ee(t,On,n.reminderTime);var Dn={};Se(Dn,{CONTENT_PLACEHOLDER:()=>G0,END_BLOCK:()=>K0,START_BLOCK:()=>V0});var G0="{reminder-order}",V0="{reminder-order-block}",K0="{end-reminder-order-block}";var Gu=(n,t)=>Ee(t,Dn,n.reminderOrder);var Cn={};Se(Cn,{CONTENT_PLACEHOLDER:()=>X0,END_BLOCK:()=>Q0,START_BLOCK:()=>J0});var X0="{reminder-done-time}",J0="{reminder-done-time-block}",Q0="{end-reminder-done-time-block}";var Vu=(n,t)=>Ee(t,Cn,n.reminderDoneTime);var yi={};Se(yi,{CONTENT_PLACEHOLDER:()=>ey,END_BLOCK:()=>ny,START_BLOCK:()=>ty});var ey="{tags-yaml-list}",ty="{tags-yaml-list-block}",ny="{end-tags-yaml-list-block}";var Ku=(n,t,e)=>{let i;n.tags&&(i=` +`+n.tags.split(" ").map(o=>` - ${o.replace(/^#/,"")}`).join(` +`));let r=Mt(t,e,yi,i);return Pt(r)};var ja="{metadata-block}",Ha="{end-metadata-block}";var Xu=`\r? +?`;var de=(n,t)=>n.replace(new RegExp(`${t.START_BLOCK}(?<=${t.START_BLOCK})(.*)(?=${t.END_BLOCK})${t.END_BLOCK}${Xu}`,"g"),"");var Ju=n=>de(n,rn);var Qu=n=>de(n,on);var ef=n=>de(n,an);var tf=n=>de(n,ln);var nf=n=>de(n,sn);var Sr={};Se(Sr,{CONTENT_PLACEHOLDER:()=>ry,END_BLOCK:()=>ay,START_BLOCK:()=>oy});var ry="{link-to-original}",oy="{link-to-original-block}",ay="{end-link-to-original-block}";var rf=n=>de(n,Sr);var of=n=>de(n,On);var af=n=>de(n,Cn);var sf=n=>de(n,Dn);var lf=(n,t)=>{let e=t.currentTemplate;return e=ju(n,e,()=>n.title),e=Uu(n,e,()=>!t.skipTags),e=Ku(n,e,()=>!t.skipTags),e=Bu(n,e,()=>n.content),e=rf(e),e=!t.skipCreationTime&&n.createdAt?Hu(n,e):Ju(e),e=!t.skipUpdateTime&&n.updatedAt?qu(n,e):Qu(e),e=!t.skipSourceUrl&&n.sourceUrl?Wu(n,e):ef(e),e=!t.skipLocation&&n.location?Zu(n,e):nf(e),e=t.isNotebookNameNeeded&&n.notebookName?Yu(n,e):tf(e),e=!t.skipReminderTime&&n.reminderTime?zu(n,e):of(e),e=!t.skipReminderOrder&&n.reminderOrder?Gu(n,e):sf(e),e=!t.skipReminderDoneTime&&n.reminderDoneTime?Vu(n,e):af(e),e=e.replace(ja,"").replace(Ha,""),e};var cf=(n,t,e)=>{try{K.writeFileSync(n,t),Ar(n,e)}catch(i){throw console.error("Cannot write file ",i),i}};var pf=(n,t)=>{let e=Su(t);fe.getInstance().setCurrentNotePath(e),cf(e,n,t),console.log(`Note saved to ${e}`)};var mf=n=>{let t=new RegExp(`\\${q.sep}`,"g"),e=Ru(n).replace(t,B.pathSeparator||"/");return{absoluteResourceWorkDir:Ma(n),relativeResourceWorkDir:e}},hf=n=>{let t={},e=n.content,{absoluteResourceWorkDir:i,relativeResourceWorkDir:r}=mf(n);if(console.log(`relative resource work dir: ${r}`),console.log(`absolute resource work dir: ${i}`),Ou(n),Array.isArray(n.resource))for(let o of n.resource)t={...t,...ff(i,o)};else t={...t,...ff(i,n.resource)};for(let o of Object.keys(t))e=sy(e,t,o,r);return e},sy=(n,t,e,i)=>{let r=`${i}${B.pathSeparator}${t[e].fileName.replace(/ /g," ")}`;console.log(`mediaReference src ${r} added`);let o,a=`]*)hash="${e}".([^>]*)>`,s=new RegExp(a,"g"),l=n.match(s),c=l&&l.length>0&&l[0].split("type=");if(c&&c.length>1&&c[1].startsWith('"image')){let p=l[0].match(/width="(\w+)"/),m=p?` width="${p[1]}"`:"",y=l[0].match(/height="(\w+)"/),w=y?` height="${y[1]}"`:"";o=n.replace(s,`${t[e].fileName}`)}else o=n.replace(s,`${t[e].fileName}`);return o},ff=(n,t)=>{let e={},i=t.data.$text,r=Tu(t),a=ou(n,t).fileName,s=`${n}${q.sep}${a}`;console.log(t),console.log(i);let l=Buffer.from(i,"base64");K.writeFileSync(s,l);let c=r.valueOf()/1e3;try{K.utimesSync(s,c,c)}catch(p){}if(t.recognition&&a){let p=t.recognition.match(/[a-f0-9]{32}/);console.log(`resource ${a} added with hash ${p}`),e[p]={fileName:a,alreadyUsed:!1}}else{let p=df.default.createHash("md5");p.update(l);let m=p.digest("hex");e[m]={fileName:a,alreadyUsed:!1}}return e},gf=(n,t)=>{if(t.indexOf('src="data:')<0)return t;let{absoluteResourceWorkDir:e,relativeResourceWorkDir:i}=mf(n);return K.mkdirSync(e,{recursive:!0}),t.replace(/src="data:([^;,]*)(;base64)?,([^"]*)"/g,(r,o,a,s)=>{let l=ly(o,a===";base64",s,e,n);return`src="${`${i}${B.pathSeparator}${l}`}"`})},ly=(n,t,e,i,r)=>{let o="embedded",a=cy(n)||".dat",s=hi(i,o),l=s<1?`${o}.${a}`:`${o}.${s}.${a}`,c=`${i}${q.sep}${l}`;return t||(e=decodeURIComponent(e)),K.writeFileSync(c,e,t?"base64":void 0),Ar(c,r),console.log(`data url resource ${l} added`),l},cy=n=>n.split("/").pop().split("+")[0];var yf=(n,t)=>{let e=new Date;fe.getInstance().setCurrentNoteName(n.title),Array.isArray(n.content)&&(n.content=n.content.join(""));let r={title:n.title,content:n.content,htmlContent:n.content,originalContent:n.content};console.log(`Converting for note "${r.title}" started at ${e}...`);try{Mu(n)&&(r.htmlContent=hf(n)),r.htmlContent=gf(n,r.htmlContent),r={...r,...vu(B,r)},r={...r,...Eu(n,t)},r={...r,..._u(n)};let o=lf(r,B);pf(o,n)}catch(o){throw console.error(`Failed to convert note: ${r.title}`,o),o}finally{let o=new Date,a=(o.getTime()-e.getTime())/1e3;console.log(`Conversion for note "${r.title}" finished at ${o}. Took ${a} seconds`)}};var wf=require("obsidian");var bf=n=>n.taskstatus==="open"?_r:Tr;var py="\u{1F53C}",uy="\u{1F53D}",fy="\u{1F4C5}",dy="\u23F3",vf=(n,t)=>{let e=bf(n),i=n.title?` ${n.title}`:"",r=B.obsidianTaskTag!==""?` ${B.obsidianTaskTag}`:"",o=n.duedate&&!isNaN(n.duedate.getTime())?` ${fy} ${xf(n.duedate)}`:"",a=n.reminderdate?` ${dy} ${xf(n.reminderdate)}`:"",s=n.taskflag?` ${py}`:` ${uy}`;return`${e}${r}${i}${o}${a}${s}`},xf=n=>(0,wf.moment)(n).format("YYYY-MM-DD").toString();var Wa=(n,t,e)=>{let i=K.readdirSync(n);return t=t||[],i.forEach(r=>{K.statSync(`${n}${q.sep}${r}`).isDirectory()?t=Wa(`${n}${q.sep}${r}`,t,e):(e&&q.extname(r)==`.${e}`||!e)&&t.push(q.join(n,"/",r))}),t};var Ef=(n,t)=>{let i=fe.getInstance().getAllNoteIdNameMap(),r=Object.entries(i);if(r.length===0)return;console.log("About to update links...");let o=[];for(let a of t)Wa(a,o,"");for(let a of t){console.log(`Notebook: ${a}`);let l=K.readdirSync(a).filter(c=>q.extname(c).toLowerCase()===".md");console.log(`${l.length} files to check for links`);for(let c of l){let p=q.join(a,c),m=K.readFileSync(p,"utf8"),y=m;for(let[w,E]of r){let d=E.uniqueEnd,f=E.title;o.find(D=>D.includes(d))&&(f=Nu(f,d));let g=E.notebookName,v=n.urlEncodeFileNamesAndLinks?encodeURI(f):f,_=v;g&&!a.endsWith(g)&&(_=`${g}/${v}`);let A=new RegExp(Sn(w),"g");y=y.replace(A,_)}m!==y&&(console.log(`File written: ${p}`),K.writeFileSync(p,y))}}console.log("Link update complete.")};var _f=n=>cn(rn,n);var Tf=n=>cn(sn,n),Af=n=>cn(ln,n);var kf=n=>cn(an,n),Nf=n=>cn(gi,n)||cn(yi,n);var Sf=n=>cn(on,n),cn=(n,t)=>t.includes(n.START_BLOCK)&&t.includes(n.CONTENT_PLACEHOLDER)&&t.includes(n.END_BLOCK);var Rf=`--- +`,my=`{source-url-block}source: {source-url}{end-source-url-block} +`,hy=`{tags-yaml-list-block} +tags: {tags-yaml-list} + +{end-tags-yaml-list-block}`,gy=`{content-block}{content}{end-content-block} +`,Of=Rf+hy+my+Rf+gy;var Cy=Bf.Platform.isDesktopApp?$f():null,Dr={enexSources:[],currentTemplate:"",outputDir:"./mdNotes",isMetadataNeeded:!1,isNotebookNameNeeded:!1,isZettelkastenNeeded:!1,useZettelIdAsFilename:!1,plainTextNotesOnly:!1,skipWebClips:!1,useHashTags:!0,nestedTags:{separatorInEN:"_",replaceSeparatorWith:"/",replaceSpaceWith:"-"},obsidianTaskTag:"",urlEncodeFileNamesAndLinks:!1,sanitizeResourceNameSpaces:!1,replacementChar:"_",pathSeparator:"/",resourcesDir:"_resources",turndownOptions:{headingStyle:"atx"}},Iy="@@@",B={...Dr};function Fy(n){return n==null?n:JSON.parse(JSON.stringify(n))}function Uf(n,...t){for(let e of t)for(let i of Object.keys(e)){let r=e[i],o=n[i];!Array.isArray(r)&&typeof r=="object"&&!Array.isArray(o)&&typeof o=="object"?n[i]=Uf({},o,r):n[i]=Fy(r)}return n}var Ly=n=>{B=Uf({},Dr,n);let t=B.templateFile?K.readFileSync(B.templateFile,"utf-8"):Of;t=B.currentTemplate?B.currentTemplate:t,B.skipCreationTime=!_f(t),B.skipLocation=!Tf(t),B.skipSourceUrl=!kf(t),B.skipTags=!Nf(t),B.skipUpdateTime=!Sf(t),B.isNotebookNameNeeded=Af(t),B.currentTemplate=t,console.log(`Current config is: ${JSON.stringify(B,null,4)}`),console.log(`Path separator:${q.sep}`)},Py=async(n,t,e)=>{if(!(t instanceof Me))throw new Error("Evernote import currently only works on desktop");let i=fe.getInstance();e.status("Processing "+t.name),console.log(`Getting stream from ${t}`);let r=t.createReadStream(),o={},a=i.getCurrentNotebookName();return new Promise((s,l)=>{let c=y=>(e.reportFailed(i.getCurrentNotebookFullpath(),y),l(y)),p=Cy(r),m=null;p.on("tag:note-attributes",y=>{m=y}),p.on("tag:note",y=>{if(e.isCancelled()){r.close();return}if(n.skipWebClips&&$u(y))e.reportSkipped(y.title);else{e.status("Importing note "+y.title),m&&(y["note-attributes"]=m);try{yf(y,a),e.reportNoteSuccess(a+"/"+y.title)}catch(E){return e.reportFailed(y.title||t,E),s()}}m=null;let w=i.getCurrentNotePath();if(w)for(let E of Object.keys(o)){let d=`${E}`,f=K.readFileSync(w,"utf8"),g=new Map([...o[E]].sort()),v=f.replace(d,[...g.values()].join(` +`));K.writeFileSync(w,v)}}),p.on("tag:task",y=>{let w=zp(y);o[w.taskgroupnotelevelid]||(o[w.taskgroupnotelevelid]=new Map),o[w.taskgroupnotelevelid].set(w.sortweight,vf(w,a))}),p.on("end",s),p.on("error",c),r.on("error",c)})};async function jf(n,t){Ly(n);let e=[],i=n.outputDir;for(let r of n.enexSources){if(t.isCancelled())return;let o,a=fe.getInstance();r.basename.includes(Iy)?(n.outputDir=Iu(r,n),o=Cu(r),Lu(o,n),a.setCurrentNotebookName(o.basename),a.setCurrentNotebookFullpath(o.fullpath)):(Fu(r,n),a.setCurrentNotebookName(r.basename),a.setCurrentNotebookFullpath(r.fullpath)),await Py(n,r,t),e.push($a()),n.outputDir=i}t.isCancelled()||await Ef(n,e)}var Cr=class extends ce{init(){this.addFileChooserSetting("Evernote",["enex"],!0),this.addOutputLocationSetting("Evernote")}async import(t){let{files:e}=this;if(e.length===0){new xi.Notice("Please pick at least one file to import.");return}let i=await this.getOutputFolder();if(!i){new xi.Notice("Please select a location to export to.");return}let{app:r}=this,o=r.vault.adapter;if(!(o instanceof xi.FileSystemAdapter))return;let a={...Dr,enexSources:e,outputDir:q.join(o.getBasePath(),i.path)};await jf(a,t)}};var ke=require("obsidian");var Ir=class extends ce{init(){this.addFileChooserSetting("HTML",["htm","html"],!0),this.addAttachmentSizeLimit(0),this.addMinimumImageSize(65),this.addOutputLocationSetting("HTML import")}addAttachmentSizeLimit(e){this.attachmentSizeLimit=e*10**6,new ke.Setting(this.modal.contentEl).setName("Attachment size limit (MB)").setDesc("Set 0 to disable.").addText(i=>i.then(({inputEl:r})=>{r.type="number",r.step="0.1"}).setValue(e.toString()).onChange(r=>{let o=["+","-"].includes(r)?0:Number(r);if(Number.isNaN(o)||o<0){i.setValue((this.attachmentSizeLimit/10**6).toString());return}this.attachmentSizeLimit=o*10**6}))}addMinimumImageSize(e){this.minimumImageSize=e,new ke.Setting(this.modal.contentEl).setName("Minimum image size (px)").setDesc("Set 0 to disable.").addText(i=>i.then(({inputEl:r})=>r.type="number").setValue(e.toString()).onChange(r=>{let o=["+","-"].includes(r)?0:Number(r);if(!Number.isInteger(o)||o<0){i.setValue(this.minimumImageSize.toString());return}this.minimumImageSize=o}))}async import(e){let{files:i}=this;if(i.length===0){new ke.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new ke.Notice("Please select a location to export to.");return}let o=new Map;e.reportProgress(0,i.length);for(let c=0;c{s=c});a.onCleanCache(async()=>{for(let[c,{file:p,tFile:m}]of o){if(e.isCancelled())break;try{let y=await this.app.vault.cachedRead(m),w=a.computeMetadataAsync?await a.computeMetadataAsync(Oo(y)):a.getFileCache(m);if(!w)continue;let E=[];if(w.links)for(let{link:d,position:f,displayText:g}of w.links){let{path:v,subpath:_}=(0,ke.parseLinktext)(d),A;if(Jn){let T=new URL(encodeURI(v),c);T.hash="",T.search="",A=decodeURIComponent(T.href)}else A=re(v.replace(/#/gu,"%23")).name;let D=o.get(A);if(D){let T=this.app.fileManager.generateMarkdownLink(D.tFile,m.path,_,g);E.push({from:f.start.offset,to:f.end.offset,text:T})}}E.sort((d,f)=>f.from-d.from);for(let d of E)y=y.substring(0,d.from)+d.text+y.substring(d.to);await this.vault.modify(m,y)}catch(y){e.reportFailed(p.fullpath,y)}}s()}),await l}async processFile(e,i,r){e.status("Processing "+r.name);try{let o=await r.readText(),a=ft(o);My(a);let s=r instanceof Me?Jn.pathToFileURL(r.filepath):void 0,l=new Map,c=new Map;for(let y of a.findAll("img, audio, video")){if(e.isCancelled())return;let w=y.getAttribute("src");if(w)try{let E=new URL(w.startsWith("//")?`https:${w}`:w,s),d=E.href,f=l.get(d);l.has(d)||(e.status("Downloading attachment for "+r.name),f=await this.downloadAttachment(i,y,E),l.set(d,f),f?(c.set(f.path,f),e.reportAttachmentSuccess(f.name)):e.reportSkipped(w)),f&&(y.setAttribute("src",f.path.replace(/ /g,"%20")),y instanceof HTMLImageElement||y.replaceWith(createEl("img",{attr:{src:f.path.replace(/ /g,"%20"),alt:y.getAttr("alt")}})))}catch(E){e.reportFailed(w,E)}}let p=(0,ke.htmlToMarkdown)(a),m=await this.saveAsMarkdownFile(i,r.basename,p);if(!Object.isEmpty(l)){let{metadataCache:y}=this.app,w;y.computeMetadataAsync?w=await y.computeMetadataAsync(Oo(p)):w=await new Promise(d=>{let f=y.getFileCache(m);if(f)return d(f);let g=y.on("changed",(v,_,A)=>{v===m&&(y.offref(g),d(A))})});let E=[];if(w.embeds){for(let{link:d,position:f}of w.embeds)if(c.has(d)){let g=this.app.fileManager.generateMarkdownLink(c.get(d),m.path);E.push({from:f.start.offset,to:f.end.offset,text:g})}}E.sort((d,f)=>f.from-d.from);for(let d of E)p=p.substring(0,d.from)+d.text+p.substring(d.to);await this.vault.modify(m,p)}return e.reportNoteSuccess(r.fullpath),m}catch(o){e.reportFailed(r.fullpath,o)}return null}async downloadAttachment(e,i,r){let o="",a="",s;switch(r.protocol){case"file:":let p=Jn.fileURLToPath(r.href);({basename:o,extension:a}=re(p)),s=Zi(await Pe.readFile(p));break;case"https:":case"http:":let m=await By(r),y=$y(r);o=y.basename,s=m.data,a=vr(m.mime)||y.extension;break;default:throw new Error(r.href)}if(!this.filterAttachmentSize(s)||i instanceof HTMLImageElement&&!await this.filterImageSize(s))return null;if(!a)if(i instanceof HTMLImageElement)a="png";else if(i instanceof HTMLAudioElement)a="mp3";else if(i instanceof HTMLVideoElement)a="mp4";else return null;let l=await this.createFolders((0,ke.normalizePath)(e.path+"/Attachments")),c=await this.vault.getAvailablePath(l.getParentPrefix()+o,a);return await this.vault.createBinary(c,s)}filterAttachmentSize(e){let{byteLength:i}=e;return!this.attachmentSizeLimit||i<=this.attachmentSizeLimit}async filterImageSize(e){if(!this.minimumImageSize)return!0;let i;try{i=await Uy(e)}catch(a){return!0}let{height:r,width:o}=i;return o>=this.minimumImageSize&&r>=this.minimumImageSize}};function Hf(n,t){let e=n.getAttribute(t);e!==null&&n.setAttribute(t,e.replace(/ /gu,"%20"))}function My(n){n.findAll("a").forEach(t=>Hf(t,"href")),n.findAll("audio, img, video").forEach(t=>Hf(t,"src"))}function $y(n){return re((0,ke.normalizePath)(decodeURIComponent(n.pathname)))}async function By(n){var e,i;try{let r=await fetch(n,{mode:"cors",referrerPolicy:"no-referrer"});if(r.ok)return{data:await r.arrayBuffer(),mime:(e=r.headers.get("Content-Type"))!=null?e:""}}catch(r){}let t=await(0,ke.requestUrl)(n.href);return{data:t.arrayBuffer,mime:(i=t.headers["Content-Type"])!=null?i:""}}async function Uy(n){let t=new Image,e=URL.createObjectURL(new Blob([n]));try{return await new Promise((i,r)=>{t.addEventListener("error",({error:o})=>r(o),{once:!0,passive:!0}),t.addEventListener("load",()=>i({height:t.naturalHeight,width:t.naturalWidth}),{once:!0,passive:!0}),t.src=e})}finally{URL.revokeObjectURL(e)}}var Fn=require("obsidian");var jy=/(#[^ ^#]*)/g,Hy=/[\\:*?<>\"|!@#$%^&()+=\`\'~;,.]/g;function za(n){let t=n.replace(Hy,"");return t=t.split(" ").join("-"),isNaN(t[0])||(t="_"+t),t}function Ga(n){return n.replace(jy,t=>"#"+za(t))}function qf(n){return n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()}var qy=["zip"],Wy=["json"],Zy=["html","txt"],Fr=class extends ce{constructor(){super(...arguments);this.importArchived=!1;this.importTrashed=!1}init(){this.addFileChooserSetting("Notes & attachments",[...qy,...Wy,...Ln],!0),this.importArchivedSetting=new Fn.Setting(this.modal.contentEl).setName("Import archived notes").setDesc("If imported, files archived in Google Keep will be tagged as archived.").addToggle(e=>{e.setValue(this.importArchived),e.onChange(async i=>{this.importArchived=i})}),this.importTrashedSetting=new Fn.Setting(this.modal.contentEl).setName("Import deleted notes").setDesc("If imported, files deleted in Google Keep will be tagged as deleted. Deleted notes will only exist in your Google export if deleted recently.").addToggle(e=>{e.setValue(this.importTrashed),e.onChange(async i=>{this.importTrashed=i})}),this.addOutputLocationSetting("Google Keep")}async import(e){let{files:i}=this;if(i.length===0){new Fn.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new Fn.Notice("Please select a location to import your files to.");return}let o=`${r.path}/Assets`;for(let a of i){if(e.isCancelled())return;await this.handleFile(a,r,o,e)}}async handleFile(e,i,r,o){let{fullpath:a,name:s,extension:l}=e;o.status("Processing "+s);try{l==="zip"?await this.readZipEntries(e,i,r,o):l==="json"?await this.importKeepNote(e,i,o):Ln.contains(l)?(o.status("Importing attachment "+s),await this.copyFile(e,r),o.reportAttachmentSuccess(a)):!(e instanceof fi)&&!Zy.contains(l)&&o.reportSkipped(a)}catch(c){o.reportFailed(a,c)}}async readZipEntries(e,i,r,o){await gt(e,async(a,s)=>{for(let l of s){if(o.isCancelled())return;await this.handleFile(l,i,r,o)}})}async importKeepNote(e,i,r){let{fullpath:o,basename:a}=e;r.status("Importing note "+a);let s=await e.readText(),l=JSON.parse(s);if(!l||!l.userEditedTimestampUsec||!l.createdTimestampUsec){r.reportFailed(o,"Invalid Google Keep JSON");return}if(l.isArchived&&!this.importArchived){r.reportSkipped(o,"Archived note");return}if(l.isTrashed&&!this.importTrashed){r.reportSkipped(o,"Deleted note");return}await this.convertKeepJson(l,i,a),r.reportNoteSuccess(o)}async copyFile(e,i){let r=await this.createFolders(i),o=await e.read();await this.vault.createBinary(`${r.path}/${e.name}`,o)}async convertKeepJson(e,i,r){let o=[],a={};if(e.title){let c=e.title.split(` +`).filter(p=>p!==r);c.length>0&&(a.aliases=c)}let s=[];if(e.color&&e.color!=="DEFAULT"){let c=e.color.toLowerCase();c=qf(c),s.push(`Keep/Color/${c}`)}if(e.isPinned&&s.push("Keep/Pinned"),e.attachments&&s.push("Keep/Attachment"),e.isArchived&&s.push("Keep/Archived"),e.isTrashed&&s.push("Keep/Deleted"),e.labels)for(let c of e.labels)s.push(`Keep/Label/${c.name}`);if(s.length>0&&(a.tags=s.map(c=>za(c))),o.push(Yi(a)),e.textContent&&(o.push(` +`),o.push(Ga(e.textContent))),e.listContent){let c=[];for(let p of e.listContent){if(!p.text)continue;let m=`- [${p.isChecked?"X":" "}] ${p.text}`;c.push(Ga(m))}o.push(` + +`),o.push(c.join(` +`))}if(e.attachments){o.push(` + +`);for(let c of e.attachments)o.push(`![[${c.filePath}]]`)}let l=await this.saveAsMarkdownFile(i,r,o.join(""));await this.vault.append(l,"",{ctime:e.createdTimestampUsec/1e3,mtime:e.userEditedTimestampUsec/1e3})}};var xt=require("obsidian");var Va=require("obsidian");function Wf({info:n,vault:t,targetFolderPath:e,parentsInSubfolders:i}){let r=t.getAllLoadedFiles(),o=new Set,a=new Set(r.map(s=>s.name));i&&zy(n),Yy({info:n,pathDuplicateChecks:o,titleDuplicateChecks:a}),Gy({info:n,loadedFiles:r,titleDuplicateChecks:a,targetFolderPath:e})}function Yy({info:n,pathDuplicateChecks:t,titleDuplicateChecks:e}){for(let i of Object.values(n.idsToFileInfo)){let r=n.getPathForFile(i);if(t.has(`${r}${i.title}`)){let o=2;for(i.title=i.title+" "+o;t.has(`${r}${i.title}`);)o++,i.title=`${i.title.replace(/ \d+$/,"")} ${o}`}e.has(i.title+".md")&&(i.fullLinkPathNeeded=!0),t.add(`${r}${i.title}`),e.add(i.title+".md")}}function zy(n){let t=new Set(Object.values(n.idsToFileInfo).map(e=>e.parentIds).concat(Object.values(n.pathsToAttachmentInfo).map(e=>e.parentIds)).map(e=>e.length>0?e[e.length-1]:""));for(let e of Object.keys(n.idsToFileInfo))t.has(e)&&n.idsToFileInfo[e].parentIds.push(e)}function Gy({info:n,loadedFiles:t,titleDuplicateChecks:e,targetFolderPath:i}){var l;let r=new Set(t.filter(c=>!c.path.endsWith(".md")).map(c=>c.path)),o=n.attachmentPath,a=/^\.\//.test(o),s=(l=o.match(/\.\/(.*)/))==null?void 0:l[1];for(let c of Object.values(n.pathsToAttachmentInfo)){e.has(c.nameWithExtension)&&(c.fullLinkPathNeeded=!0);let p="";if(a?p=(0,Va.normalizePath)(`${i}${n.getPathForFile(c)}${s!=null?s:""}`):p=(0,Va.normalizePath)(o+"/"),p.endsWith("/")||(p+="/"),r.has(p+c.nameWithExtension)){let m=2,{basename:y,extension:w}=re(c.path);for(;r.has(`${p}${y} ${m}.${w}`);)m++;c.nameWithExtension=`${y} ${m}.${w}`}c.targetParentFolder=p,r.add(p+c.nameWithExtension),e.add(c.nameWithExtension)}}var Pn=require("obsidian");var Zf=n=>n.replace(/-/g,"").replace(/[ -]?[a-z0-9]{32}(\.|$)/,"$1"),bt=n=>{var t;return(t=n.replace(/-/g,"").match(/([a-z0-9]{32})(\?|\.|$)/))==null?void 0:t[1]},Ka=n=>{let{parent:t}=re(n);return t.split("/").map(e=>bt(e)).filter(e=>e)};function Xa(n){return n.hour()===0&&n.minute()===0?n.format("YYYY-MM-DD"):n.format("YYYY-MM-DDTHH:mm")}function Yf(n){return n.replace(/^(\.\.\/)+/,"")}function zf(n){let t=/#\d*?(?:[-_/a-z]|[^\x00-\x7F])/gi;if(!t.test(n))return n;let e=n.split(` +`);for(let i=0;i tbody");if(s){let m=Vf(n,s);nd(n,m,!1),m1(s);for(let y of Array.from(s.rows)){let w=Vy(y);w&&(w.title=="Tags"&&(w.title="tags",typeof w.content=="string"?w.content=w.content.replace(/ /g,"-"):w.content instanceof Array&&(w.content=w.content.map(E=>E.replace(/ /g,"-")))),a[w.title]=w.content)}}o1(r,["strong","em","mark","del"]),n1(r),Xy(r),u1(r),e1(r),p1(r),ad(r),ed(r,"div.indented"),ed(r,"details"),f1(r),td(r,"ul"),td(r,"ol"),d1(r),c1(r),i1(r);let l=(0,Pn.htmlToMarkdown)(r.innerHTML);n.singleLineBreaks&&(l=l.replace(/\n\n(?!>)/g,` +`)),l=zf(l),l=Ky(l);let c=(p=i.find("p[class*=page-description]"))==null?void 0:p.textContent;return c&&(l=c+` + +`+l),Yi(a)+l}var Gf={checkbox:["checkbox"],date:["created_time","last_edited_time","date"],list:["file","multi_select","relation"],number:["number","auto_increment_id"],text:["email","person","phone_number","text","url","status","select","formula","rollup","last_edited_by","created_by"]};function Vy(n){var a,s,l,c,p,m;let t=(a=n.className.match(/property-row-(.*)/))==null?void 0:a[1];if(!t)throw new Error("property type not found for: "+n);let e=(0,Pn.htmlToMarkdown)((s=n.cells[0].textContent)!=null?s:""),i=n.cells[1],r=Object.keys(Gf).find(y=>Gf[y].includes(t));if(!r)throw new Error("type not found for: "+i);let o="";switch(r){case"checkbox":o=i.innerHTML.includes("checkbox-on");break;case"number":if(o=Number(i.textContent),isNaN(o))return;break;case"date":ad(i);let y=i.getElementsByTagName("time");if(y.length===0)o="";else if(y.length===1)o=Xa((0,Pn.moment)((l=y.item(0))==null?void 0:l.textContent));else{let d=[];for(let f=0;fc.includes(a));s&&a.endsWith(".html")?e.push({type:"relation",a:o,id:s}):l?e.push({type:"attachment",a:o,path:l}):s&&a.startsWith("#")&&((r=o.parentElement)!=null&&r.classList.contains("table_of_contents-item"))&&e.push({type:"toc-item",a:o,id:s})}return e}function Ky(n){let t=/\[\[[^\]]*(\\\\)\|[^\]]*\]\]/,e=n.match(new RegExp(t,"g"));return e==null||e.forEach(i=>{n=n.replace(i,i.replace(/\\\\\|/g,"\\|"))}),n}function Xy(n){r1(n,"style"),rd(n,"span.notion-text-equation-token");let t=n.ownerDocument,e=n.findAll("figure.equation");for(let r of e){let o=r.find("annotation");if(!o)continue;let a=t.createElement("div");a.className="annotation",a.appendText(`$$${Kf(o.textContent)}$$`),r.replaceWith(a)}let i=n.findAll("span.notion-text-equation-token");for(let r of i){let o=r.find("annotation");o&&r.replaceWith(`$${Kf(o.textContent,!0)}$`)}}function Kf(n,t=!1){var i;let e=new RegExp(/^(?:\s|\\\\|\\\s)*(.*?)[\s\\]*$/,"s");return(i=n==null?void 0:n.replace(e,"$1").replace(/[\r\n]+/g,t?" ":` +`))!=null?i:""}function Jy(n){var e;let t=(e=n.match(/^[^\.\?\!\n]*[\.\?\!]?/))==null?void 0:e[0];return t!=null?t:""}function Qy(n){var t;return!!/callout|bookmark/.test((t=n.getAttribute("class"))!=null?t:"")}function e1(n){var e;let t=n.ownerDocument;for(let i of n.findAll("figure.callout")){let r=(e=i.lastElementChild)==null?void 0:e.childNodes;if(!r)continue;let o=t.createElement("blockquote");o.append(...Array.from(r)),t1(o),i.replaceWith(o)}}function t1(n){var o,a,s;let t=n.firstChild,e=(o=t==null?void 0:t.nodeName)!=null?o:"",i=n.ownerDocument.createElement("p"),r="";e=="#text"?r=(a=t==null?void 0:t.textContent)!=null?a:"":e=="P"?r=t.innerHTML:["EM","STRONG","DEL","MARK"].includes(e)?r=t.outerHTML:n.prepend(i),r=r.replace(/
    /g,"<br>"),i.innerHTML=`[!important] ${r}`,(s=n.firstChild)==null||s.replaceWith(i)}function n1(n){var t,e,i;for(let r of n.findAll("a.bookmark.source")){let o=r.getAttribute("href"),a=(t=r.find("div.bookmark-title"))==null?void 0:t.textContent,s=Jy((i=(e=r.find("div.bookmark-description"))==null?void 0:e.textContent)!=null?i:""),l=`> [!info] ${a} +> ${s} +> [${o}](${o}) +`;r.nextElementSibling&&Qy(r.nextElementSibling)&&(l+=` +`),r.replaceWith(l)}}function i1(n){var t,e,i;for(let r of n.findAll("span[class=user]"))r.innerText=(t=r.textContent)!=null?t:"";for(let r of n.findAll("td div[class*=checkbox]")){let o=createSpan();o.setText(r.hasClass("checkbox-on")?"X":""),r.replaceWith(o)}for(let r of n.findAll("table span[class*=selected-value]"))((e=r.parentElement)==null?void 0:e.lastElementChild)!==r&&r.setText(r.textContent+", ");for(let r of n.findAll("a[href]"))if(!/^(https?:\/\/|www\.)/.test(r.href)){let o=createSpan();o.setText((i=r.textContent)!=null?i:""),r.replaceWith(o)}}function r1(n,t){for(let e of n.findAll(t))e.remove()}function o1(n,t){for(let e of t)a1(n,e);for(let e of t)s1(n,e);for(let e of t)rd(n,e);for(let e of t)l1(n,e)}function a1(n,t){for(let e of n.findAll(t)){if(!e.parentElement||e.parentElement.tagName===t.toUpperCase())continue;let i=e.find(t);for(;i;)Ja(i),i=e.find(t)}}function s1(n,t){let e=n.findAll(t);if(!e)return;let i=new RegExp(`( *)<${t}>`,"g");for(let r of e){if(!r||!r.parentElement)continue;let o=r.parentElement,a=o==null?void 0:o.innerHTML;o.innerHTML=a==null?void 0:a.replace(i,"$1")}}function rd(n,t){let e=n.findAll(t);if(e)for(let i of e){let r=i.previousSibling;(r==null?void 0:r.nodeName)=="BR"&&(r==null||r.remove())}}function l1(n,t){let e=n.innerHTML,i=e.match(new RegExp(`<${t}>.*?`,"sg"));if(i){for(let r of i.filter(o=>o.includes("
    ")))e=e.replace(r,r.split("
    ").join(`
    <${t}>`));n.innerHTML=e}}function Xf(n){var t;return Number((t=n==null?void 0:n.classList[1].slice(-1))!=null?t:-1)}function od(n,t){let e=Xf(n),i=Xf(t);if(e>i&&t.childElementCount==1){let r=createEl("ul");r.append(n),t.append(r)}else if(e>i&&t.childElementCount==2){let r=t.lastElementChild;r==null||r.append(n)}else if(e==i){let r=t.parentElement;r==null||r.append(n)}else e)/g,"
    ");for(let t of n.findAll("code"))for(let e of t.findAll("br"))e.replaceWith(` +`)}function u1(n){var t;for(let e of n.findAll("link"))e.innerText=(t=e.textContent)!=null?t:""}function ad(n){var t,e;for(let i of n.findAll("time"))i.textContent=(e=(t=i.textContent)==null?void 0:t.replace(/@/g,""))!=null?e:""}var Qf={"1.875em":"h1","1.5em":"h2","1.25em":"h3"};function f1(n){var e;let t=n.findAll("summary");for(let i of t){let r=i.getAttribute("style");if(r){for(let o of Object.keys(Qf))if(r.includes(o)){i.replaceWith(createEl(Qf[o],{text:(e=i.textContent)!=null?e:""}));break}}}}function ed(n,t){let e=n.findAll(t);for(let i of e)Ja(i)}function td(n,t){for(let e of n.findAll(t)){let i=[],r=[],o=e;for(;o.tagName===t.toUpperCase();){i.push(o);for(let s=0;ss.remove())}}function d1(n){for(let t of n.findAll(".checkbox.checkbox-on"))t.replaceWith("[x] ");for(let t of n.findAll(".checkbox.checkbox-off"))t.replaceWith("[ ] ")}function m1(n){var e;let t=n.findAll("a");if(t.length===0)return n;for(let i of t){let r=createSpan();r.setText((e=i.getAttribute("href"))!=null?e:""),i.replaceWith(r)}}function nd(n,t,e){var i,r,o;for(let a of t){let s=createSpan(),l="";switch(a.type){case"relation":let c=n.idsToFileInfo[a.id];if(c){let y=a.a.closest("table");l=`[[${c.fullLinkPathNeeded?`${n.getPathForFile(c)}${c.title}${y?"\\":""}|${c.title}`:c.title}]]`}else{console.warn("missing relation data for id: "+a.id);let{basename:y}=re(decodeURI((i=a.a.getAttribute("href"))!=null?i:""));l=`[[${Zf(y)}]]`}break;case"attachment":let p=n.pathsToAttachmentInfo[a.path];if(!p){console.warn("missing attachment data for: "+a.path);continue}l=`${e?"!":""}[[${p.fullLinkPathNeeded?p.targetParentFolder+p.nameWithExtension+"|"+p.nameWithExtension:p.nameWithExtension}]]`;break;case"toc-item":l=(r=a.a.textContent)!=null?r:"";let m=(o=l.endsWith("]"))!=null?o:!1;l=`[[#${l+(m?" ":"")}]]`}s.setText(l),a.a.replaceWith(s)}}var Lr=class{constructor(t,e){this.idsToFileInfo={};this.pathsToAttachmentInfo={};this.attachmentPath=t,this.singleLineBreaks=e}getPathForFile(t){let{idsToFileInfo:e}=this,i=t.path.split("/");return t.parentIds.map(r=>{var o,a,s;return(s=(o=e[r])==null?void 0:o.title)!=null?s:(a=i.find(l=>l.contains(r)))==null?void 0:a.replace(` ${r}`,"")}).filter(r=>r).map(r=>r.replace(/[\. ]+$/,"")).join("/")+"/"}};async function ld(n,t){var i,r;let{filepath:e}=t;if(t.extension==="html"){let o=await t.readText(),a=ft(o),l=a.find("body").children,c;for(let E=0;Ee.setValue(this.parentsInSubfolders).onChange(i=>this.parentsInSubfolders=i)),new xt.Setting(this.modal.contentEl).setName("Single line breaks").setDesc("Separate Notion blocks with only one line break (default is 2).").addToggle(e=>e.setValue(this.singleLineBreaks).onChange(i=>{this.singleLineBreaks=i}))}async import(e){var w;let{vault:i,parentsInSubfolders:r,files:o}=this;if(o.length===0){new xt.Notice("Please pick at least one file to import.");return}let a=await this.getOutputFolder();if(!a){new xt.Notice("Please select a location to export to.");return}let s=a.path;s=(0,xt.normalizePath)(s),s!=null&&s.endsWith("/")||(s+="/");let l=new Lr((w=i.getConfig("attachmentFolderPath"))!=null?w:"",this.singleLineBreaks);e.status("Looking for files to import");let c=0;if(await Qa(e,o,async E=>{try{await ld(l,E),c=Object.keys(l.idsToFileInfo).length+Object.keys(l.pathsToAttachmentInfo).length,e.reportProgress(0,c)}catch(d){e.reportSkipped(E.fullpath)}}),e.isCancelled())return;e.status("Resolving links and de-duplicating files"),Wf({vault:i,info:l,targetFolderPath:s,parentsInSubfolders:r});let p=new Set([s]),m=Object.values(l.idsToFileInfo).map(E=>s+l.getPathForFile(E)).concat(Object.values(l.pathsToAttachmentInfo).map(E=>E.targetParentFolder));for(let E of m)p.add(E);for(let E of p){if(e.isCancelled())return;await this.createFolders(E)}let y=0;e.status("Starting import"),await Qa(e,o,async E=>{y++,e.reportProgress(y,c);try{if(E.extension==="html"){let d=bt(E.name);if(!d)throw new Error("ids not found for "+E.filepath);let f=l.idsToFileInfo[d];if(!f)throw new Error("file info not found for "+E.filepath);e.status(`Importing note ${f.title}`);let g=await id(l,E),v={};f.ctime&&(v.ctime=f.ctime.getTime(),v.mtime=f.ctime.getTime()),f.mtime&&(v.mtime=f.mtime.getTime());let _=`${s}${l.getPathForFile(f)}${f.title}.md`;await i.create(_,g,v),e.reportNoteSuccess(E.fullpath)}else{let d=l.pathsToAttachmentInfo[E.filepath];if(!d)throw new Error("attachment info not found for "+E.filepath);e.status(`Importing attachment ${E.name}`);let f=await E.read();await i.createBinary(`${d.targetParentFolder}${d.nameWithExtension}`,f),e.reportAttachmentSuccess(E.fullpath)}}catch(d){if(d.message==="page body was not found"){e.reportSkipped(E.fullpath,"page body was not found");return}e.reportFailed(E.fullpath,d)}})}};async function Qa(n,t,e){for(let i of t){if(n.isCancelled())return;try{await gt(i,async(r,o)=>{for(let a of o){if(n.isCancelled())return;if(a.extension==="md"&&bt(a.name))throw new xt.Notice("Notion Markdown export detected. Please export Notion data to HTML instead."),n.cancel(),new Error("Notion importer uses only HTML exports. Please use the correct format.");if(!(a.extension==="csv"&&bt(a.name))&&a.name!=="index.html")if(a.extension==="zip"&&a.parent==="")try{await Qa(n,[a],e)}catch(s){n.reportFailed(a.fullpath)}else await e(a)}})}catch(r){n.reportFailed(i.fullpath)}}}var be=require("obsidian");var es="onenote-importer-refresh-token",cd="66553851-08fa-44f2-8bb1-1436f121a73d",pd=["user.read","notes.read"],y1=/<(object|iframe)([^>]*)\/>/g,ud=/(<\/p>)\s*(]*>)|\n \n/g,ts=5,b1=new RegExp(/^data:[\w\d]+\/[\w\d]+;base64,/),Mr=class extends ce{constructor(){super(...arguments);this.importPreviouslyImported=!1;this.importIncompatibleAttachments=!1;this.selectedIds=[];this.notebooks=[];this.graphData={state:xn(32),accessToken:""};this.attachmentDownloadPauseCounter=0;this.rememberMe=!1}async init(){this.addOutputLocationSetting("OneNote"),new be.Setting(this.modal.contentEl).setName("Import incompatible attachments").setDesc("Imports incompatible attachments which cannot be embedded in Obsidian, such as .exe files.").addToggle(r=>r.setValue(!1).onChange(o=>this.importIncompatibleAttachments=o)),new be.Setting(this.modal.contentEl).setName("Skip previously imported").setDesc("If enabled, notes imported previously by this plugin will be skipped.").addToggle(r=>r.setValue(!0).onChange(o=>this.importPreviouslyImported=!o));let e=!1;if(this.retrieveRefreshToken())try{await this.updateAccessToken(),e=!0}catch(r){}this.microsoftAccountSetting=new be.Setting(this.modal.contentEl).setName("Sign in with your Microsoft account").setDesc("You need to sign in to import your OneNote data.").addButton(r=>r.setCta().setButtonText("Sign in").onClick(()=>{this.registerAuthCallback(this.authenticateUser.bind(this));let o=new URLSearchParams({client_id:cd,scope:"offline_access "+pd.join(" "),response_type:"code",redirect_uri:$r,response_mode:"query",state:this.graphData.state});window.open(`https://login.microsoftonline.com/common/oauth2/v2.0/authorize?${o.toString()}`)})),this.microsoftAccountSetting.settingEl.toggle(!e);let i=new be.Setting(this.modal.contentEl).setName("Remember me").setDesc("If checked, you will be automatically logged in for subsequent imports.").addToggle(r=>{r.onChange(o=>{this.rememberMe=o,o&&this.refreshToken?this.storeRefreshToken(this.refreshToken):this.clearStoredRefreshToken()})});i.settingEl.toggle(!e),this.switchUserSetting=new be.Setting(this.modal.contentEl).addButton(r=>r.setCta().setButtonText("Switch user").onClick(()=>{this.microsoftAccountSetting.settingEl.show(),i.settingEl.show(),this.clearStoredRefreshToken(),this.switchUserSetting.settingEl.hide(),this.contentArea.empty()})),this.loadingArea=this.modal.contentEl.createDiv({text:"Loading notebooks..."}),this.loadingArea.hide(),this.contentArea=this.modal.contentEl.createDiv(),this.contentArea.hide(),e?(await this.setSwitchUser(),await this.showSectionPickerUI()):this.switchUserSetting.settingEl.hide()}async authenticateUser(e){try{if(e.state!==this.graphData.state)throw new Error(`An incorrect state was returned. +Expected state: ${this.graphData.state} +Returned state: ${e.state}`);await this.updateAccessToken(e.code),await this.setSwitchUser(),await this.showSectionPickerUI()}catch(i){console.error("An error occurred while we were trying to sign you in. Error details: ",i),this.modal.contentEl.createEl("div",{text:"An error occurred while trying to sign you in."}).createEl("details",{text:i}).createEl("summary",{text:"Click here to show error details"})}}async setSwitchUser(){let e=await this.fetchResource("https://graph.microsoft.com/v1.0/me","json");this.switchUserSetting.setDesc(`Signed in as ${e.displayName} (${e.mail}). If that's not the correct account, sign in again.`),this.switchUserSetting.settingEl.show(),this.microsoftAccountSetting.settingEl.hide()}async updateAccessToken(e){let i=new URLSearchParams({client_id:cd,scope:"offline_access "+pd.join(" "),redirect_uri:$r});if(e)i.set("code",e),i.set("grant_type","authorization_code");else{let o=this.retrieveRefreshToken();if(!o)throw new Error("Missing token required for authentication. Please try logging in again.");i.set("refresh_token",o),i.set("grant_type","refresh_token")}let r=await(0,be.requestUrl)({method:"POST",url:"https://login.microsoftonline.com/common/oauth2/v2.0/token",contentType:"application/x-www-form-urlencoded",body:i.toString()}).json;if(!r.access_token)throw new Error(`Unexpected data was returned instead of an access token. Error details: ${r}`);r.refresh_token&&this.storeRefreshToken(r.refresh_token),this.graphData.accessToken=r.access_token}storeRefreshToken(e){this.refreshToken=e,this.rememberMe&&localStorage.setItem(es,e)}retrieveRefreshToken(){return this.refreshToken?this.refreshToken:localStorage.getItem(es)}clearStoredRefreshToken(){localStorage.removeItem(es)}async showSectionPickerUI(){var o,a;this.loadingArea.show(),this.selectedIds=[];let e="https://graph.microsoft.com/v1.0/me/onenote/notebooks",i=new URLSearchParams({$expand:"sections($select=id,displayName),sectionGroups($expand=sections,sectionGroups)",$select:"id,displayName,lastModifiedDateTime",$orderby:"lastModifiedDateTime DESC"}),r=`${e}?${i.toString()}`;try{this.notebooks=(await this.fetchResource(r,"json")).value,this.contentArea.empty(),this.contentArea.createEl("h4",{text:"Choose data to import"});for(let s of this.notebooks){if(((o=s.sectionGroups)==null?void 0:o.length)!==0)for(let c of s.sectionGroups)await this.fetchNestedSectionGroups(c);let l=this.contentArea.createDiv();new be.Setting(l).setName(s.displayName).setDesc(`Last edited on: ${be.moment.utc(s.lastModifiedDateTime).format("Do MMMM YYYY")}. Contains ${(a=s.sections)==null?void 0:a.length} sections.`).addButton(c=>c.setCta().setButtonText("Select all").onClick(()=>{l.querySelectorAll('input[type="checkbox"]:not(:checked)').forEach(p=>p.click())})),this.renderHierarchy(s,l)}}catch(s){this.showContentAreaErrorMessage()}this.loadingArea.hide(),this.contentArea.show()}async fetchNestedSectionGroups(e){if(e.sectionGroups=(await this.fetchResource(e.sectionGroupsUrl+"?$expand=sectionGroups($expand=sections),sections","json")).value,e.sectionGroups)for(let i=0;i{if(l.checked)this.selectedIds.push(o.id);else{let c=this.selectedIds.findIndex(p=>p===o.id);c!==-1&&this.selectedIds.splice(c,1)}})}}}showContentAreaErrorMessage(){this.contentArea.empty(),this.contentArea.createEl("p",{text:"Microsoft OneNote has limited how fast notes can be imported. Please try again in 30 minutes to continue importing."}),this.contentArea.show(),this.loadingArea.hide()}async import(e){let i=new Set,r=await this.modal.plugin.loadData();r.importers.onenote||(r.importers.onenote={previouslyImportedIDs:[]});for(let c of r.importers.onenote.previouslyImportedIDs)i.add(c);if(!await this.getOutputFolder()){new be.Notice("Please select a location to export to.");return}if(!this.graphData.accessToken){new be.Notice("Please sign in to your Microsoft Account.");return}e.status("Starting OneNote import");let a=0,s=0,l=0;for(let c of this.selectedIds){e.reportProgress(s,a);let p=`https://graph.microsoft.com/v1.0/me/onenote/sections/${c}/pages`,m=new URLSearchParams({$select:"id,title,createdDateTime,lastModifiedDateTime,level,order,contentUrl",$orderby:"order",pagelevel:"true"}),y=`${p}?${m.toString()}`,w=null;try{w=(await this.fetchResource(y,"json")).value}catch(E){e.status("Microsoft OneNote has limited how fast notes can be imported. Please try again in 30 minutes to continue importing.");return}if(w){a+=w.length,this.insertPagesToSection(w,c),e.reportProgress(s,a);for(let E=0;E5){e.status("Microsoft OneNote has limited how fast notes can be imported. Please try again in 30 minutes to continue importing.");return}}e.reportProgress(s,a)}}}}insertPagesToSection(e,i,r){if(!r){for(let o of this.notebooks)this.insertPagesToSection(e,i,o);return}if(r.sectionGroups){let o=r.sectionGroups;for(let a of o)this.insertPagesToSection(e,i,a)}if(r.sections){let o=r;for(let a of o.sections)a.id===i&&(a.pages=e)}}async processFile(e,i,r){var o,a;try{let s=this.convertFormat(i),l=await this.getOutputFolder(),c=this.getEntityPathNoParent(r.id,l.name),p;await this.vault.adapter.exists(c)?p=this.vault.getAbstractFileByPath(c):p=await this.vault.createFolder(c);let m=this.convertTags(ft(s.html)),y=await this.getAllAttachments(e,m.replace(ud,"
    ")),w=this.styledElementToHTML(y);w=this.convertInternalLinks(w),w=this.convertDrawings(w);let E=(0,be.htmlToMarkdown)(w).trim().replace(ud," "),d=await this.saveAsMarkdownFile(p,r.title,E),f=r!=null&&r.lastModifiedDateTime?Date.parse(r.lastModifiedDateTime):null,g=r!=null&&r.createdDateTime?Date.parse(r.createdDateTime):null,v={ctime:(o=g!=null?g:f)!=null?o:Date.now(),mtime:(a=f!=null?f:g)!=null?a:Date.now()};await this.vault.append(d,"",v),e.reportNoteSuccess(r.title)}catch(s){e.reportFailed(r.title,s)}}convertFormat(e){let i={html:"",inkml:""},r=e.split(` +`,1)[0];e.slice(0,-2);let o=e.split(r);if(o.shift(),o.length===2)for(let a of o){let l=a.split(` +`).find(p=>p.includes("Content-Type")).split(";")[0].split(":")[1].trim(),c=a.split(` +`).slice(2).join(` +`).trim();l==="text/html"?i.html=c:l==="application/inkml+xml"&&(i.inkml=c)}else throw new Error("The input string is incorrect and may be missing data. Inputted string: "+e);return i}convertTags(e){var r,o;let i=Array.from(e.querySelectorAll("[data-tag]"));for(let a of i)if((r=a.getAttribute("data-tag"))!=null&&r.contains("to-do")){let l=a.getAttribute("data-tag")==="to-do:completed"?"[x]":"[ ]";a.innerHTML=`- ${l} ${a.innerHTML}`}else{let s=(o=a.getAttribute("data-tag"))==null?void 0:o.split(",");s==null||s.forEach(l=>{a.innerHTML=a.innerHTML+` #${l.replace(":","-")} `})}return e.outerHTML}convertInternalLinks(e){let i=e.findAll("a");for(let r of i)if(r.href.startsWith("onenote:")){let o=r.href.indexOf("#")+1,a=r.href.indexOf("&",o);r.href=r.href.slice(o,a)}return e}getEntityPathNoParent(e,i){for(let r of this.notebooks){let o=this.getEntityPath(e,`${i}/${r.displayName}`,r);if(o)return o}return null}getEntityPath(e,i,r){let o=null;if("sectionGroups"in r&&r.sectionGroups){let a=this.searchSectionGroups(e,i,r.sectionGroups);a!==null&&(o=a)}if("sections"in r&&r.sections){let a=this.searchSectionGroups(e,i,r.sections);a!==null&&(o=a)}if("pages"in r&&r.pages){let a=this.searchPages(e,i,r);a!==null&&(o=a)}return o}searchPages(e,i,r){var a;let o=null;for(let s=0;s=0;p--)if(r.pages[p].level===l.level-1){o+="/"+r.pages[p].title;break}}break}}return o}searchSectionGroups(e,i,r){let o=null;for(let a of r)if(a.id===e)o=`${i}/${a.displayName}`;else{let s=this.getEntityPath(e,`${i}/${a.displayName}`,a);if(s){o=s;break}}return o}async getAllAttachments(e,i){var l,c,p,m;let r=ft(i.replace(y1,"<$1$2>")),o=r.findAll("object"),a=r.findAll("img"),s=r.findAll("iframe");for(let y of o){for(;y.firstChild;)(l=y.parentNode)==null||l.insertBefore(y.firstChild,y.nextSibling);let w=y.getAttribute("data-attachment").split("."),E=w[w.length-1];if(!(!Ln.contains(E)&&!this.importIncompatibleAttachments)){let d=y.getAttribute("data-attachment"),f=y.getAttribute("data"),g=await this.fetchAttachment(e,d,f),v=document.createElement("p");v.innerText=`![[${g}]]`,(c=y.parentNode)==null||c.replaceChild(v,y)}}for(let y=0;y{e.status("Pausing attachment download to avoid rate limiting."),this.attachmentDownloadPauseCounter=0,setTimeout(o,3e3)}),this.attachmentDownloadPauseCounter++,e.status("Downloading attachment "+i);try{let o=await this.getAvailablePathForAttachment(i,[]),a=await this.fetchResource(r,"file");return await this.app.vault.createBinary(o,a),e.reportAttachmentSuccess(i),o}catch(o){e.reportFailed(i),console.error(o)}}styledElementToHTML(e){let i={"font-weight:bold":"b","font-style:italic":"i","text-decoration:underline":"u","text-decoration:line-through":"s","background-color":"mark"};e.findAll("cite").forEach(l=>l.innerHTML="> "+l.innerHTML+"
    ");let o=!1,a=document.createElement("pre");return e.querySelectorAll("*").forEach(l=>{let c=l.getAttribute("style")||"",p=Object.keys(i).find(m=>c.includes(m));if(c!=null&&c.contains("font-family:Consolas"))o?a.innerHTML=a.innerHTML.slice(0,-3)+l.innerHTML+"\n```":(o=!0,l.replaceWith(a),a.innerHTML="```\n"+l.innerHTML+"\n```");else if(l.nodeName==="BR"&&o)a.innerHTML=a.innerHTML.slice(0,-3)+"\n```";else if(p){let m=i[p],y=document.createElement(m);y.innerHTML=l.innerHTML,l.replaceWith(y)}}),e}convertDrawings(e){var o;let i=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT),r=!1;for(;i.nextNode();)((o=i.currentNode.nodeValue)==null?void 0:o.trim())==="InkNode is not supported"&&(r=!0);if(r){let a=document.createTextNode("> [!caution] This page contained a drawing which was not converted.");e.insertBefore(a,e.firstChild)}else for(let a=0;asetTimeout(p,c)),this.fetchResource(e,i,r+1);throw new Error("Exceeded maximum retry attempts")}}return a}catch(o){throw console.error(`An internal error occurred while trying to fetch '${e}'. Error details: `,o),o}}};var Ut=require("obsidian");var fd=require("obsidian"),x1=/[\?<>\\:\*\|"]/g,w1=/[\x00-\x1f\x80-\x9f]/g,v1=/^\.+$/,E1=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,_1=/[\. ]+$/,T1=/^\./,A1=/\[/g,k1=/\]/g;function Br(n){return n.replace(x1,"").replace(w1,"").replace(v1,"").replace(E1,"").replace(_1,"").replace(A1,"").replace(k1,"").replace(T1,"")}function Ur(n,t){let e="MMMM Do, YYYY",i=(0,fd.moment)(n,e);return i.format(e)!==n?n:i.isValid()?i.format(t):n}var jr=require("obsidian"),N1=["POMO","word-count","date","slider","encrypt","TaoOfRoam","orphans","count","character-count","comment-button","query","streak","attr-table","mentions","search","roam/render","calc"],S1=new RegExp(`\\{\\{(\\[\\[)?(${N1.join("|")})(\\]\\])?.*?\\}\\}(\\})?`,"g"),R1=/{{pdf:|{{\[\[pdf|{{\[\[audio|{{audio:|{{video:|{{\[\[video/,dd=/https:\/\/firebasestorage(.*?)\?alt(.*?)\)/,O1=/https:\/\/firebasestorage(.*?)\?alt(.*?)/,D1=/(?<=\(\()\b(.*?)\b(?=\)\))/g,Hr=class extends ce{constructor(){super(...arguments);this.downloadAttachments=!1;this.fileDateYAML=!1;this.titleYAML=!1;this.newestTimestamp=0;this.oldestTimestamp=0}init(){this.addFileChooserSetting("Roam (.json)",["json"]),this.addOutputLocationSetting("Roam"),this.userDNPFormat=this.getUserDNPFormat(),new Ut.Setting(this.modal.contentEl).setName("Import settings").setHeading(),new Ut.Setting(this.modal.contentEl).setName("Download all attachments").setDesc("If enabled, all attachments uploaded to Roam will be downloaded to your attachments folder.").addToggle(e=>{e.setValue(this.downloadAttachments),e.onChange(async i=>{this.downloadAttachments=i})}),new Ut.Setting(this.modal.contentEl).setName("Add YAML created/update date").setDesc("If enabled, notes will have the create-time and edit-time from Roam added as properties.").addToggle(e=>{e.setValue(this.fileDateYAML),e.onChange(async i=>{this.fileDateYAML=i})}),new Ut.Setting(this.modal.contentEl).setName("Add YAML title").setDesc("If enabled, notes will have the full title added as a property (regardless of illegal file name characters).").addToggle(e=>{e.setValue(this.titleYAML),e.onChange(async i=>{this.titleYAML=i})})}async import(e){this.progress=e;let{files:i}=this;if(i.length===0){new Ut.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new Ut.Notice("Please select a location to export to.");return}for(let o of i){if(e.isCancelled())return;let a=Ze(o.basename),s=`${r.path}/${a}`,l=`${r.path}/${a}/Attachments`;await this.createFolders(s),await this.createFolders(l);let c=await o.readText(),p=JSON.parse(c),[m,y]=this.preprocess(p),w=new Map;for(let g in p){let v=p[g],_=Ur(Br(v.title),this.userDNPFormat).trim();if(_===""){e.reportFailed(v.uid,"Title is empty"),console.error("Cannot import data with an empty title",v);continue}let A=`${s}/${_}.md`,D=this.titleYAML?v.title:"",T=0,k=0;if(this.fileDateYAML){let C=v["create-time"],O=v["edit-time"];typeof C=="number"&&(T=C),typeof O=="number"&&(k=O)}let b=await this.jsonToMarkdown(s,l,v,"",!1,D,T,k);w.set(A,b)}for(let g of y.values()){let v=await this.roamMarkupScrubber(s,l,g.blockString,!0),_=await this.extractAndProcessBlockReferences(w,m,s,v),A=`${s}/${g.pageName}.md`,D=w.get(A);if(D){let T=D.split(` +`),k=T.findIndex(b=>b.contains("* "+v));k!==-1&&(T[k]=T[k].replace(v,_)),w.set(A,T.join(` +`))}}let{vault:E}=this,d=w.size,f=1;for(let[g,v]of w.entries()){if(e.isCancelled())return;try{let{parent:_}=re(g);await this.createFolders(_);let A=E.getAbstractFileByPath(g);A?await E.modify(A,v):await E.create(g,v),e.reportNoteSuccess(g),e.reportProgress(f,d)}catch(_){console.error("Error saving Markdown to file:",g,_),e.reportFailed(g)}f++}}}getUserDNPFormat(){let e=this.app.internalPlugins.getPluginById("daily-notes").instance;return e?e.options.format||"YYYY-MM-DD":(console.log('Daily note plugin is not enabled. Roam import defaulting to "YYYY-MM-DD" format.'),"YYYY-MM-DD")}preprocess(e){let i=new Map,r=new Map,o=this.userDNPFormat;function a(s,l){if(l.uid){let c=new Date(s.uid);if(!isNaN(c.getTime())){let y=Ur(s.title,o);s.title=y}let p={pageName:Br(s.title),blockString:l.string};/.*?(\(\(.*?\)\)).*?/g.test(l.string)&&r.set(l.uid,p),i.set(l.uid,p)}if(l.children)for(let c of l.children)a(s,c)}for(let s of e)if(s.children)for(let l of s.children)a(s,l);return[i,r]}async roamMarkupScrubber(e,i,r,o=!1){return r=r.replace(S1,""),r.substring(0,8)==":hiccup "&&r.includes(":hr")?"---":(r=r.replace(/\[\[(.*?)\]\]/g,(a,s)=>`[[${Ur(Br(s),this.userDNPFormat)}]]`),r=r.replace(/\[\[(.*\/.*)\]\]/g,(a,s)=>`[[${e}/${s}|${s}]]`),r=r.replace(/\[.+?\]\((\(.+?\)\))\)/g,"$1"),r=r.replace(/\[(.+?)\]\(\[\[(.+?)\]\]\)/g,"[[$2|$1]]"),r=r.replace(/\[\[>\]\]/g,">"),r=r.replace(/{{TODO}}|{{\[\[TODO\]\]}}/g,"[ ]"),r=r.replace(/{{DONE}}|{{\[\[DONE\]\]}}/g,"[x]"),r=r.replace("::",":"),r=r.replace(/{{.*?\bvideo\b.*?(\bhttp.*?\byoutu.*?)}}/g,"![]($1)"),r=r.replace(/(https?:\/\/twitter\.com\/(?:#!\/)?\w+\/status\/\d+(?:\?[\w=&-]+)?)/g,"![]($1)"),r=r.replace(/\_\_(.+?)\_\_/g,"*$1*"),r=r.replace(/\^\^(.+?)\^\^/g,"==$1=="),r=r.replace(/{{\[{0,2}embed.*?(\(\(.*?\)\)).*?}}/g,"$1"),r=r.replace(/{{\[{0,2}embed.*?(\[\[.*?\]\]).*?}}/g,"$1"),this.downloadAttachments&&!o&&r.includes("firebasestorage")&&(r=await this.downloadFirebaseFile(r,i)),r)}async jsonToMarkdown(e,i,r,o="",a=!1,s,l,c){let p=[],m=[],y=r["edit-time"],w=r["create-time"];if(this.newestTimestampy?c:y,w!==void 0?l>10?this.oldestTimestamp=Math.min(l,w):this.oldestTimestamp=w:this.oldestTimestamp=l,"string"in r&&r.string){let E=r.heading?"#".repeat(r.heading)+" ":"",d=await this.roamMarkupScrubber(e,i,r.string);p.push(`${a?o+"* ":o}${E}${d}`)}if(r.children)for(let E of r.children)p.push(await this.jsonToMarkdown(e,i,E,o+" ",!0,"",this.oldestTimestamp,this.newestTimestamp));if((this.fileDateYAML||this.titleYAML)&&!a){let E=this.oldestTimestamp;if(m.push("---"),this.titleYAML&&m.push(`title: "${s}"`),this.fileDateYAML){let d="YYYY-MM-DD HH:mm:ss",f=this.newestTimestamp?(0,jr.moment)(this.newestTimestamp).format(d):(0,jr.moment)(new Date).format(d),g=E?(0,jr.moment)(E).format(d):f;m.push("created: "+g),m.push("updated: "+f)}m.push("---"),p.unshift(m.join(` +`))}return p.join(` +`)}async modifySourceBlockString(e,i,r,o){if(!i.blockString.endsWith("^"+o)){let a=`${r}/${i.pageName}.md`,s=e.get(a);if(s){let l=s.split(` +`),c=l.findIndex(p=>p.contains("* "+i.blockString));if(c!==-1){let p=i.blockString+" ^"+o;l[c]=l[c].replace(i.blockString,p),i.blockString=i.blockString+" ^"+o}e.set(a,l.join(` +`))}}}async extractAndProcessBlockReferences(e,i,r,o){let a=o.match(D1);if(!a)return o;let s=[];for(let p of a)try{let m=i.get(p);if(!m){s.push(p);continue}let y=m.blockString.replace(/\[\[|\]\]/g,""),w=`[[${r}/${m.pageName}#^${p}|${y}]]`;await this.modifySourceBlockString(e,m,r,p),s.push(w)}catch(m){s.push(p)}let l=0;return o.replace(/\(\(\b.*?\b\)\)/g,()=>s[l++])}async downloadFirebaseFile(e,i){let{progress:r,vault:o}=this,a="";try{let s,l;if(R1.test(e)?(s=e.match(/https:\/\/firebasestorage(.*?)\?alt(.*?)\}/),l=e.match(/{{.*https:\/\/firebasestorage.*?alt=media&.*?(?=\s|$)/)):dd.test(e)?(s=e.match(dd),l=e.match(/!\[.*https:\/\/firebasestorage.*?alt=media&.*?(?=\s|$)/)):(s=e.match(O1),l=e.match(/https:\/\/firebasestorage.*?alt=media&.*?(?=\s|$)/)),s&&l){let c="https://firebasestorage"+s[1],p=decodeURIComponent(c.split("/").last()||"");if(p){let d=p.split("/");d.length>1&&(d.splice(-1,1),this.createFolders(`${i}/${d.join("/")}`))}else{let d=Math.floor(Date.now()/1e3),f=c.slice(-5).match(/(.*?)\.(.+)/);if(!f)return r.reportSkipped(s[1],"Unexpected file extension"),e;p=`${d}.${f[2]}`}let m=`${i}/${p}`;if(o.getAbstractFileByPath(m))return r.reportSkipped(s[1],"File already exists"),e;a=s[0].slice(0,-1);let E=await(await fetch(a,{})).arrayBuffer();return await o.createBinary(m,E),r.reportAttachmentSuccess(a),e.replace(l[0],`![[${m}]]`)}}catch(s){console.error(s),r.reportFailed(a,s)}return e}};var jt=require("obsidian");var md=/!\[\]\(assets\/([^)]*)\)/g,qr=class extends ce{init(){jt.Platform.isMacOS||this.modal.contentEl.createEl("p",{text:"Due to platform limitations, only textpack and zip files can be imported from this device. Open your vault on a Mac to import textbundle files."});let e=jt.Platform.isMacOS?["textbundle","textpack","zip"]:["textpack","zip"];this.addFileChooserSetting("Textbundle",e,!0),this.addOutputLocationSetting("Textbundle")}async import(e){let{files:i}=this;if(i.length===0){new jt.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new jt.Notice("Please select a location to export to.");return}this.attachmentsFolderPath=await this.createFolders(`${r.path}/assets`);for(let o of i)if(o.extension==="textpack")await gt(o,async(a,s)=>{await this.process(e,o.name,s)});else if(o.extension==="zip")await gt(o,async(a,s)=>{let l=this.groupFilesByTextbundle(o.name,s);for(let c of l)await this.process(e,o.name,c)});else{let s=await new ut(`${o.toString()}/`).list();await this.process(e,o.name,s)}}groupFilesByTextbundle(e,i){let r={},o=e+"/",a=".textbundle";for(let s of i){if(!s.fullpath.startsWith(o)){console.log("Skipping",s.fullpath);continue}let l=s.fullpath.slice(o.length);if(l.startsWith("._")||l.startsWith("__MACOSX")){console.log("Skipping",s.fullpath);continue}let c=l.indexOf(a);if(c===-1){console.log("Skipping",s.fullpath);continue}let p=l.slice(0,c)+".textbundle";if(l.slice(c+a.length+1).startsWith("._")){console.log("Skipping",s.fullpath);continue}p in r?r[p].push(s):r[p]=[s]}return Object.values(r)}async process(e,i,r){let o=r.find(a=>a.name==="info.json");if(o){let a=await o.readText(),s=JSON.parse(a);if(s.hasOwnProperty("type")&&s.type!=="net.daringfireball.markdown"){e.reportSkipped(i,"The textbundle does not contain markdown");return}}for(let a of r)if(!a.name.startsWith("._"))try{if(a.type==="file"&&(a.extension==="md"||a.extension==="markdown")){let s="parent"in a?a.parent:i;s=s.replace(/.textbundle$/,"");let l=await a.readText();l.match(md)&&(l=l.replace(md,`![[${this.attachmentsFolderPath.path}/$1]]`));let c=(0,jt.normalizePath)(s),p=await this.getOutputFolder();await this.saveAsMarkdownFile(p,c,l),e.reportNoteSuccess(s)}else if(a.type==="file"&&a.fullpath.contains("assets/"))await this.importAsset(e,a);else if(a.type==="folder"){let{basename:s}=re(a.toString());if(s!=="assets")continue;let c=await new ut(`${a.toString()}/`).list();for(let p of c)await this.importAsset(e,p)}else a.name!=="info.json"&&e.reportSkipped(a.name,"the file is not a media or markdown file.")}catch(s){e.reportFailed(a.name,s)}}async importAsset(e,i){if(i.type==="folder"){e.reportSkipped(i.name);return}let r=`${this.attachmentsFolderPath.path}/${i.name}`;this.vault.getAbstractFileByPath(r)&&e.reportSkipped(i.name,"the file already exists.");let a=await i.read();await this.vault.createBinary(r,a),e.reportAttachmentSuccess(i.name)}};var $r="obsidian://importer-auth/",Ln=["png","webp","jpg","jpeg","gif","bmp","svg","mpg","m4a","webm","wav","ogv","3gp","mov","mp4","mkv","pdf"],Wr=class{constructor(t){this.notes=0;this.attachments=0;this.skipped=[];this.failed=[];this.maxFileNameLength=100;this.cancelled=!1;this.el=t,t.empty(),this.statusEl=t.createDiv("importer-status"),this.progressBarEl=t.createDiv("importer-progress-bar",e=>{this.progressBarInnerEl=e.createDiv("importer-progress-bar-inner")}),t.createDiv("importer-stats-container",e=>{e.createDiv("importer-stat mod-imported",i=>{this.importedCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"imported"})}),e.createDiv("importer-stat mod-attachments",i=>{this.attachmentCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"attachments"})}),e.createDiv("importer-stat mod-remaining",i=>{this.remainingCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"remaining"})}),e.createDiv("importer-stat mod-skipped",i=>{this.skippedCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"skipped"})}),e.createDiv("importer-stat mod-failed",i=>{this.failedCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"failed"})})}),this.importLogEl=t.createDiv("importer-log"),this.importLogEl.hide()}status(t){this.statusEl.setText(t.trim()+"...")}reportNoteSuccess(t){this.notes++,this.importedCountEl.setText(this.notes.toString())}reportAttachmentSuccess(t){this.attachments++,this.attachmentCountEl.setText(this.attachments.toString())}reportSkipped(t,e){let{importLogEl:i}=this;this.skipped.push(t),this.skippedCountEl.setText(this.skipped.length.toString()),console.log("Import skipped",t,e),this.importLogEl.createDiv("list-item",r=>{r.createSpan({cls:"importer-error",text:"Skipped: "}),r.createSpan({text:`"${Qn(t,this.maxFileNameLength)}"`+(e?` because ${Qn(String(e),this.maxFileNameLength)}`:"")})}),i.scrollTop=i.scrollHeight,i.show()}reportFailed(t,e){let{importLogEl:i}=this;this.failed.push(t),this.failedCountEl.setText(this.failed.length.toString()),console.log("Import failed",t,e),this.importLogEl.createDiv("list-item",r=>{r.createSpan({cls:"importer-error",text:"Failed: "}),r.createSpan({text:`"${Qn(t,this.maxFileNameLength)}"`+(e?` because ${Qn(String(e),this.maxFileNameLength)}`:"")})}),i.scrollTop=i.scrollHeight,i.show()}reportProgress(t,e){e<=0||(console.log("Current progress:",(100*t/e).toFixed(1)+"%"),this.remainingCountEl.setText((e-t).toString()),this.importedCountEl.setText(t.toString()),this.progressBarInnerEl.style.width=(100*t/e).toFixed(1)+"%")}cancel(){this.cancelled=!0,this.progressBarEl.hide(),this.statusEl.hide()}hideStatus(){this.progressBarEl.hide(),this.statusEl.hide()}isCancelled(){return this.cancelled}},C1={importers:{onenote:{previouslyImportedIDs:[]}}},Zr=class extends Ht.Plugin{async onload(){this.importers={"apple-notes":{name:"Apple Notes",optionText:"Apple Notes",importer:br,helpPermalink:"import/apple-notes"},bear:{name:"Bear",optionText:"Bear (.bear2bk)",importer:xr,helpPermalink:"import/bear"},evernote:{name:"Evernote",optionText:"Evernote (.enex)",importer:Cr,helpPermalink:"import/evernote"},keep:{name:"Google Keep",optionText:"Google Keep (.zip/.json)",importer:Fr,helpPermalink:"import/google-keep"},html:{name:"HTML files",optionText:"HTML (.html)",importer:Ir,helpPermalink:"import/html"},onenote:{name:"Microsoft OneNote",optionText:"Microsoft OneNote",importer:Mr,helpPermalink:"import/onenote"},notion:{name:"Notion",optionText:"Notion (.zip)",importer:Pr,helpPermalink:"import/notion",formatDescription:"Export your Notion workspace to HTML format."},"roam-json":{name:"Roam Research",optionText:"Roam Research (.json)",importer:Hr,helpPermalink:"import/roam",formatDescription:"Export your Roam Research workspace to JSON format."},textbundle:{name:"Textbundle files",optionText:"Textbundle (.textbundle, .textpack)",importer:qr,helpPermalink:"import/textbundle"}},this.addRibbonIcon("lucide-import","Open Importer",()=>{new wi(this.app,this).open()}),this.addCommand({id:"open-modal",name:"Open importer",callback:()=>{new wi(this.app,this).open()}}),this.registerObsidianProtocolHandler("importer-auth",e=>{if(this.authCallback){this.authCallback(e),this.authCallback=void 0;return}new Ht.Notice("Unexpected auth event. Please restart the auth process.")})}onunload(){}async loadData(){return Object.assign({},C1,await super.loadData())}async saveData(e){await super.saveData(e)}registerAuthCallback(e){this.authCallback=e}},wi=class extends Ht.Modal{constructor(e,i){super(e);this.current=null;this.plugin=i,this.titleEl.setText("Import data into Obsidian"),this.modalEl.addClass("mod-importer");let r=Object.keys(i.importers);r.length>0&&(this.selectedId=r[0],this.updateContent())}updateContent(){let{contentEl:e,selectedId:i}=this,r=this.plugin.importers,o=r[i];e.empty();let a=new DocumentFragment;if(a.createSpan({text:"The format to be imported."}),o.formatDescription&&(a.createEl("br"),a.createSpan({text:o.formatDescription})),a.createEl("br"),a.createEl("a",{text:`Learn more about importing from ${o.name}.`,href:`https://help.obsidian.md/${o.helpPermalink}`}),new Ht.Setting(e).setName("File format").setDesc(a).addDropdown(s=>{for(let l in r)r.hasOwnProperty(l)&&s.addOption(l,r[l].optionText);s.onChange(l=>{r.hasOwnProperty(l)&&(this.selectedId=l,this.updateContent())}),s.setValue(this.selectedId)}),i&&r.hasOwnProperty(i)){let s=this.importer=new o.importer(this.app,this);if(s.notAvailable)return;e.createDiv("modal-button-container",l=>{l.createEl("button",{cls:"mod-cta",text:"Import"},c=>{c.addEventListener("click",async()=>{this.current&&this.current.cancel(),e.empty();let p=e.createDiv(),m=this.current=new Wr(p),y=e.createDiv("modal-button-container"),w=y.createEl("button",{cls:"mod-danger",text:"Stop"},E=>{E.addEventListener("click",()=>{m.cancel(),w.detach()})});try{await s.import(m)}finally{this.current===m&&(this.current=null),y.createEl("button",{text:"Upload more"},E=>{E.addEventListener("click",()=>this.updateContent())}),w.detach(),y.createEl("button",{cls:"mod-cta",text:"Done"},E=>{E.addEventListener("click",()=>this.close())}),m.hideStatus()}})})})}}onClose(){let{contentEl:e,current:i}=this;e.empty(),i&&i.cancel()}}; +/*! Bundled license information: + +sax/lib/sax.js: + (*! http://mths.be/fromcodepoint v0.1.0 by @mathias *) +*/ + +/* nosourcemap */ \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/obsidian-importer/manifest.json b/content/notes/.obsidian/plugins/obsidian-importer/manifest.json new file mode 100644 index 0000000..8f6bfe3 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-importer/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-importer", + "name": "Importer", + "version": "1.6.19", + "minAppVersion": "0.15.0", + "description": "Import data from Notion, Evernote, Apple Notes, Microsoft OneNote, Google Keep, Bear, Roam, and HTML files.", + "author": "Obsidian", + "authorUrl": "https://obsidian.md", + "isDesktopOnly": false +} diff --git a/content/notes/.obsidian/plugins/obsidian-importer/styles.css b/content/notes/.obsidian/plugins/obsidian-importer/styles.css new file mode 100644 index 0000000..6f9b809 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-importer/styles.css @@ -0,0 +1,87 @@ +.modal.mod-importer { + max-height: var(--modal-height); + padding: var(--size-4-4) 0 0 0; + position: relative; + overflow: hidden; +} +.modal.mod-importer .modal-title { + padding: 0 var(--size-4-4); +} +.modal.mod-importer .modal-content { + overflow: auto; + padding: var(--size-4-4); + margin-bottom: calc(var(--input-height) + var(--size-4-8)); + border-top: var(--border-width) solid var(--background-modifier-border); +} +.modal.mod-importer .modal-button-container { + margin: 0 0 0 calc(var(--size-4-4) * -1); + padding: var(--size-4-4); + gap: var(--size-4-2); + position: absolute; + bottom: 0; + background-color: var(--background-primary); + border-top: var(--border-width) solid var(--background-modifier-border); + width: 100%; +} + +.importer-progress-bar { + width: 100%; + height: 8px; + background-color: var(--background-secondary); + overflow: hidden; + box-shadow: inset 0px 0px 0px 1px var(--background-modifier-border); + border-radius: var(--radius-s); +} + +.importer-progress-bar-inner { + width: 0; + height: 100%; + background-color: var(--interactive-accent); +} + +.importer-status { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding: var(--size-4-2) 0; +} + +.importer-stats-container { + display: flex; + justify-content: space-evenly; + margin-top: var(--size-4-5); + margin-bottom: var(--size-4-5); +} + +.importer-stat { + text-align: center; +} + +.importer-stat-count { + font-size: var(--font-ui-large); +} + +.importer-log { + overflow: auto; + flex-grow: 1; + font-family: var(--font-monospace); + font-size: var(--font-ui-smaller); + color: var(--text-muted); + border: 1px solid var(--background-modifier-border); + padding: var(--size-4-4); + background-color: var(--background-secondary); + border-radius: var(--radius-s); + max-height: 300px; + user-select: text; +} + +.importer-log .list-item { + display: inline-block; + line-height: var(--line-height-normal); + white-space: pre; + margin: var(--size-2-1); +} + +.importer-error { + color: var(--text-error); +} diff --git a/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/main.js b/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/main.js new file mode 100644 index 0000000..c7473c4 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/main.js @@ -0,0 +1,9 @@ +"use strict";var e=require("obsidian"),t=require("path"),n=require("@codemirror/view"),r=require("@codemirror/state"),i=require("@codemirror/language");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=o(t);function s(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){e.done?i(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(a,s)}u((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;class u extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield e)}}for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const r="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[r,i]=n;!1===this._deleteIfExpired(r,i)&&(yield[r,i.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[r,i]=n;if(!this.cache.has(r)){!1===this._deleteIfExpired(r,i)&&(yield[r,i.value])}}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}function c(e){var t={exports:{}};return e(t,t.exports),t.exports}var l=c((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.defaults=t.composeannotation=t.collecttextnodes=t.build=void 0;const n={children:e=>e.children,annotatetextnode:(e,t)=>"text"===e.type?{offset:{end:e.position.end.offset,start:e.position.start.offset},text:t.substring(e.position.start.offset,e.position.end.offset)}:null,interpretmarkup:(e="")=>e};function r(e,t,r=n){const i=[];return function e(n){const o=r.annotatetextnode(n,t);null!==o&&i.push(o);const a=r.children(n);null!==a&&Array.isArray(a)&&a.forEach(e)}(e),i}function i(e,t,r=n){const i=[];let o={offset:{end:0,start:0}};for(const n of t){const t=e.substring(o.offset.end,n.offset.start);i.push({interpretAs:r.interpretmarkup(t),markup:t,offset:{end:n.offset.start,start:o.offset.end}}),i.push(n),o=n}const a=e.substring(o.offset.end,e.length);return i.push({interpretAs:r.interpretmarkup(a),markup:a,offset:{end:e.length,start:o.offset.end}}),{annotation:i}}t.defaults=n,t.collecttextnodes=r,t.composeannotation=i,t.build=function(e,t,o=n){return i(e,r(t(e),e,o),o)}})),f=c((function(e){!function(){var t;function n(e){for(var t,n,r,i,o=1,a=[].slice.call(arguments),s=0,u=e.length,c="",l=!1,f=!1,d=function(){return a[o++]},h=function(){for(var n="";/\d/.test(e[s]);)n+=e[s++],t=e[s];return n.length>0?parseInt(n):null};s13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535==(65535&n)||65534==(65535&n)||n>1114111?"�":M(n)};var N=function(e){return e<-2};var U=function(e){return-2===e||-1===e||32===e};var j=function(e,t,n,r){var i=r?r-1:1/0,o=0;return function(r){if(U(r))return e.enter(n),a(r);return t(r)};function a(r){return U(r)&&o++t;)i.containerState=o[s][1],o[s][0].exit.call(i,e);o.length=t}},Y={tokenize:function(e,t,n){return j(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},J={tokenize:function(e,t,n){return j(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};var Z=Q,K=Object.defineProperty({tokenize:Z},"__esModule",{value:!0});var X=function(e){for(var t=-1,n=0;++to?0:o+t:t>o?o:t,n=n>0?n:0,r.length<1e4)(i=Array.from(r)).unshift(t,n),te.apply(e,i);else for(n&&te.apply(e,[t,n]);a-1||ee(r.events,"linePrefix")<4?e.interrupt(r.parser.constructs.flow,n,t)(i):t(i)}},partial:!0};var ue=ae;var ce=function(e){var t=this,n=e.attempt(W,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,r,j(e,e.attempt(this.parser.constructs.flow,r,e.attempt(ue,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}},le=Object.defineProperty({tokenize:ce},"__esModule",{value:!0}),fe=he("text"),de=he("string");function he(e){return{tokenize:function(t){var n=this,r=this.parser.constructs[e],i=t.attempt(r,o,a);return o;function o(e){return u(e)?i(e):a(e)}function a(e){if(null!==e)return t.enter("data"),t.consume(e),s;t.consume(e)}function s(e){return u(e)?(t.exit("data"),i(e)):(t.consume(e),s)}function u(e){var t=r[e],i=-1;if(null===e)return!0;if(t)for(;++i-1&&(n[0]=n[0].slice(i)),a>0&&n.push(e[o].slice(0,a))),n};var Te=function(e,t,n){var r=n?re(n):{line:1,column:1,offset:0},i={},o=[],a=[],s=[],u={consume:function(e){N(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,y()):-1!==e&&(r.column++,r.offset++);r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++));c.previous=e},enter:function(e,t){var n=t||{};return n.type=e,n.start=d(),c.events.push(["enter",n,c]),s.push(n),n},exit:function(e){var t=s.pop();return t.end=d(),c.events.push(["exit",t,c]),t},attempt:m((function(e,t){v(e,t.from)})),check:m(g),interrupt:m(g,{interrupt:!0}),lazy:m(g,{lazy:!0})},c={previous:null,events:[],parser:e,sliceStream:f,sliceSerialize:function(e){return Ae(f(e))},now:d,defineSkip:function(e){i[e.line]=e.column,y()},write:function(e){if(a=Se(a,e),h(),null!==a[a.length-1])return[];return v(t,0),c.events=Ce(o,c.events,c),c.events}},l=t.tokenize.call(c,u);return t.resolveAll&&o.push(t),r._index=0,r._bufferIndex=-1,c;function f(e){return De(a,e)}function d(){return re(r)}function h(){for(var e,t;r._index-1)return v();return e.tokenize.call(t?O({},c,t):c,u,m,v)(n)}}function m(t){return e(f,h),i}function v(e){return h.restore(),++l1&&e[l][1].end.offset-e[l][1].start.offset>1?2:1)>1?"strongSequence":"emphasisSequence",start:Re(re(e[n][1].end),-s),end:re(e[n][1].end)},a={type:s>1?"strongSequence":"emphasisSequence",start:re(e[l][1].start),end:Re(re(e[l][1].start),s)},i={type:s>1?"strongText":"emphasisText",start:re(e[n][1].end),end:re(e[l][1].start)},r={type:s>1?"strong":"emphasis",start:re(o.start),end:re(a.end)},e[n][1].end=re(o.start),e[l][1].start=re(a.end),u=[],e[n][1].end.offset-e[n][1].start.offset&&(u=Se(u,[["enter",e[n][1],t],["exit",e[n][1],t]])),u=Se(u,[["enter",r,t],["enter",o,t],["exit",o,t],["enter",i,t]]),u=Se(u,Ce(t.parser.constructs.insideSpan.null,e.slice(n+1,l),t)),u=Se(u,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[l][1].end.offset-e[l][1].start.offset?(c=2,u=Se(u,[["enter",e[l][1],t],["exit",e[l][1],t]])):c=0,ne(e,n-1,l-n+3,u),l=n+u.length-c-2;break}l=-1;for(;++l-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};var je=Ue,He=Le(/[!-/:-@[-`{-~]/);var Ge={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),r};function r(r){return He(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(r)}}},$e={AEli:"Æ",AElig:"Æ",AM:"&",AMP:"&",Aacut:"Á",Aacute:"Á",Abreve:"Ă",Acir:"Â",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrav:"À",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Arin:"Å",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atild:"Ã",Atilde:"Ã",Aum:"Ä",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COP:"©",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedi:"Ç",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ET:"Ð",ETH:"Ð",Eacut:"É",Eacute:"É",Ecaron:"Ě",Ecir:"Ê",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrav:"È",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Eum:"Ë",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",G:">",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacut:"Í",Iacute:"Í",Icir:"Î",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrav:"Ì",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Ium:"Ï",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",L:"<",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntild:"Ñ",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacut:"Ó",Oacute:"Ó",Ocir:"Ô",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograv:"Ò",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslas:"Ø",Oslash:"Ø",Otild:"Õ",Otilde:"Õ",Otimes:"⨷",Oum:"Ö",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUO:'"',QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",RE:"®",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THOR:"Þ",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacut:"Ú",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucir:"Û",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrav:"Ù",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uum:"Ü",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacut:"Ý",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacut:"á",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acir:"â",acirc:"â",acut:"´",acute:"´",acy:"а",aeli:"æ",aelig:"æ",af:"⁡",afr:"𝔞",agrav:"à",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",am:"&",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",arin:"å",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atild:"ã",atilde:"ã",aum:"ä",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvba:"¦",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedi:"ç",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedi:"¸",cedil:"¸",cemptyv:"⦲",cen:"¢",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",cop:"©",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curre:"¤",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",de:"°",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divid:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacut:"é",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"ê",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrav:"è",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",et:"ð",eth:"ð",eum:"ë",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac1:"¼",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac3:"¾",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",g:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacut:"í",iacute:"í",ic:"⁣",icir:"î",icirc:"î",icy:"и",iecy:"е",iexc:"¡",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrav:"ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iques:"¿",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",ium:"ï",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laqu:"«",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",l:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",mac:"¯",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micr:"µ",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middo:"·",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbs:" ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",no:"¬",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntild:"ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacut:"ó",oacute:"ó",oast:"⊛",ocir:"ô",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograv:"ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"º",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslas:"ø",oslash:"ø",osol:"⊘",otild:"õ",otilde:"õ",otimes:"⊗",otimesas:"⨶",oum:"ö",ouml:"ö",ovbar:"⌽",par:"¶",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusm:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",poun:"£",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quo:'"',quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raqu:"»",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",re:"®",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sec:"§",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",sh:"­",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szli:"ß",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thor:"þ",thorn:"þ",tilde:"˜",time:"×",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacut:"ú",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucir:"û",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrav:"ù",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",um:"¨",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uum:"ü",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacut:"ý",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",ye:"¥",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yum:"ÿ",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},We=function(e){return!!Qe.call($e,e)&&$e[e]},Qe={}.hasOwnProperty;var Ye=Le(/\d/),Je=Le(/[\dA-Fa-f]/);function Ze(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Ke=Ze(We),Xe={name:"characterReference",tokenize:function(e,t,n){var r,i,o=this,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),s};function s(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),r=31,i=ze,c(t))}function u(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,i=Je,c):(e.enter("characterReferenceValue"),r=7,i=Ye,c(t))}function c(s){var u;return 59===s&&a?(u=e.exit("characterReferenceValue"),i!==ze||Ke.default(o.sliceSerialize(u))?(e.enter("characterReferenceMarker"),e.consume(s),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(s)):i(s)&&a++-1?void 0:4);function o(t){return e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),a(t)}function a(t){return t===r?(e.consume(t),i++,a):ic?n(i):(e.consume(i),p):41===i?l--?(e.consume(i),p):(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(i)):null===i||qe(i)?l?n(i):(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(i)):_e(i)?n(i):(e.consume(i),92===i?g:p)}function g(t){return 40===t||41===t||92===t?(e.consume(t),p):p(t)}};var ot=function(e,t,n,r,i,o){var a,s=this,u=0;return function(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(o),c};function c(f){return null===f||91===f||93===f&&!a||94===f&&!u&&"_hiddenFootnoteSupport"in s.parser.constructs||u>999?n(f):93===f?(e.exit(o),e.enter(i),e.consume(f),e.exit(i),e.exit(r),t):N(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),l(f))}function l(t){return null===t||91===t||93===t||N(t)||u++>999?(e.exit("chunkString"),c(t)):(e.consume(t),a=a||!U(t),92===t?f:l)}function f(t){return 91===t||92===t||93===t?(e.consume(t),u++,l):l(t)}};var at=function(e,t){var n;return function r(i){if(N(i))return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r;if(U(i))return j(e,r,n?"linePrefix":"lineSuffix")(i);return t(i)}};var st=function(e,t,n,r,i,o){var a;return function(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),a=40===t?41:t,s};function s(n){return n===a?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(o),u(n))}function u(t){return t===a?(e.exit(o),s(a)):null===t?n(t):N(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),j(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(t))}function c(t){return t===a||null===t||N(t)?(e.exit("chunkString"),u(t)):(e.consume(t),92===t?l:c)}function l(t){return t===a||92===t?(e.consume(t),c):c(t)}},ut={name:"definition",tokenize:function(e,t,n){var r,i=this;return function(t){return e.enter("definition"),ot.call(i,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function o(t){return r=z(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),at(e,it(e,e.attempt(ct,j(e,a,"whitespace"),j(e,a,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function a(o){return null===o||N(o)?(e.exit("definition"),i.parser.defined.indexOf(r)<0&&i.parser.defined.push(r),t(o)):n(o)}}},ct={tokenize:function(e,t,n){return function(t){return qe(t)?at(e,r)(t):n(t)};function r(t){return 34===t||39===t||40===t?st(e,j(e,i,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function i(e){return null===e||N(e)?t(e):n(e)}},partial:!0};var lt={name:"headingAtx",tokenize:function(e,t,n){var r=this,i=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),o(t)};function o(s){return 35===s&&i++<6?(e.consume(s),o):null===s||qe(s)?(e.exit("atxHeadingSequence"),r.interrupt?t(s):a(s)):n(s)}function a(n){return 35===n?(e.enter("atxHeadingSequence"),s(n)):null===n||N(n)?(e.exit("atxHeading"),t(n)):U(n)?j(e,a,"whitespace")(n):(e.enter("atxHeadingText"),u(n))}function s(t){return 35===t?(e.consume(t),s):(e.exit("atxHeadingSequence"),a(t))}function u(t){return null===t||35===t||qe(t)?(e.exit("atxHeadingText"),a(t)):(e.consume(t),u)}},resolve:function(e,t){var n,r,i=e.length-2,o=3;"whitespace"===e[o][1].type&&(o+=2);i-2>o&&"whitespace"===e[i][1].type&&(i-=2);"atxHeadingSequence"===e[i][1].type&&(o===i-1||i-4>o&&"whitespace"===e[i-2][1].type)&&(i-=o+1===i?2:4);i>o&&(n={type:"atxHeadingText",start:e[o][1].start,end:e[i][1].end},r={type:"chunkText",start:e[o][1].start,end:e[i][1].end,contentType:"text"},ne(e,o,i-o+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e}};var ft=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],dt=["pre","script","style","textarea"],ht={name:"htmlFlow",tokenize:function(e,t,n){var r,i,o,a,s,u=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c};function c(a){return 33===a?(e.consume(a),l):47===a?(e.consume(a),h):63===a?(e.consume(a),r=3,u.interrupt?t:P):Be(a)?(e.consume(a),o=M(a),i=!0,p):n(a)}function l(i){return 45===i?(e.consume(i),r=2,f):91===i?(e.consume(i),r=5,o="CDATA[",a=0,d):Be(i)?(e.consume(i),r=4,u.interrupt?t:P):n(i)}function f(r){return 45===r?(e.consume(r),u.interrupt?t:P):n(r)}function d(r){return r===o.charCodeAt(a++)?(e.consume(r),a===o.length?u.interrupt?t:A:d):n(r)}function h(t){return Be(t)?(e.consume(t),o=M(t),p):n(t)}function p(a){return null===a||47===a||62===a||qe(a)?47!==a&&i&&dt.indexOf(o.toLowerCase())>-1?(r=1,u.interrupt?t(a):A(a)):ft.indexOf(o.toLowerCase())>-1?(r=6,47===a?(e.consume(a),g):u.interrupt?t(a):A(a)):(r=7,u.interrupt?n(a):i?v(a):m(a)):45===a||ze(a)?(e.consume(a),o+=M(a),p):n(a)}function g(r){return 62===r?(e.consume(r),u.interrupt?t:A):n(r)}function m(t){return U(t)?(e.consume(t),m):S(t)}function v(t){return 47===t?(e.consume(t),S):58===t||95===t||Be(t)?(e.consume(t),y):U(t)?(e.consume(t),v):S(t)}function y(t){return 45===t||46===t||58===t||95===t||ze(t)?(e.consume(t),y):k(t)}function k(t){return 61===t?(e.consume(t),x):U(t)?(e.consume(t),k):v(t)}function x(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,b):U(t)?(e.consume(t),x):(s=void 0,w(t))}function b(t){return t===s?(e.consume(t),E):null===t||N(t)?n(t):(e.consume(t),b)}function w(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||qe(t)?k(t):(e.consume(t),w)}function E(e){return 47===e||62===e||U(e)?v(e):n(e)}function S(t){return 62===t?(e.consume(t),C):n(t)}function C(t){return U(t)?(e.consume(t),C):null===t||N(t)?A(t):n(t)}function A(t){return 45===t&&2===r?(e.consume(t),q):60===t&&1===r?(e.consume(t),L):62===t&&4===r?(e.consume(t),R):63===t&&3===r?(e.consume(t),P):93===t&&5===r?(e.consume(t),I):!N(t)||6!==r&&7!==r?null===t||N(t)?D(t):(e.consume(t),A):e.check(pt,R,D)(t)}function D(t){return e.exit("htmlFlowData"),T(t)}function T(t){return null===t?V(t):N(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),T):(e.enter("htmlFlowData"),A(t))}function q(t){return 45===t?(e.consume(t),P):A(t)}function L(t){return 47===t?(e.consume(t),o="",F):A(t)}function F(t){return 62===t&&dt.indexOf(o.toLowerCase())>-1?(e.consume(t),R):Be(t)&&o.length<8?(e.consume(t),o+=M(t),F):A(t)}function I(t){return 93===t?(e.consume(t),P):A(t)}function P(t){return 62===t?(e.consume(t),R):A(t)}function R(t){return null===t||N(t)?(e.exit("htmlFlowData"),V(t)):(e.consume(t),R)}function V(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},pt={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(W,t,n)}},partial:!0};var gt={name:"htmlText",tokenize:function(e,t,n){var r,i,o,a,s=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),u};function u(t){return 33===t?(e.consume(t),c):47===t?(e.consume(t),w):63===t?(e.consume(t),x):Be(t)?(e.consume(t),C):n(t)}function c(t){return 45===t?(e.consume(t),l):91===t?(e.consume(t),i="CDATA[",o=0,g):Be(t)?(e.consume(t),k):n(t)}function l(t){return 45===t?(e.consume(t),f):n(t)}function f(t){return null===t||62===t?n(t):45===t?(e.consume(t),d):h(t)}function d(e){return null===e||62===e?n(e):h(e)}function h(t){return null===t?n(t):45===t?(e.consume(t),p):N(t)?(a=h,P(t)):(e.consume(t),h)}function p(t){return 45===t?(e.consume(t),V):h(t)}function g(t){return t===i.charCodeAt(o++)?(e.consume(t),o===i.length?m:g):n(t)}function m(t){return null===t?n(t):93===t?(e.consume(t),v):N(t)?(a=m,P(t)):(e.consume(t),m)}function v(t){return 93===t?(e.consume(t),y):m(t)}function y(t){return 62===t?V(t):93===t?(e.consume(t),y):m(t)}function k(t){return null===t||62===t?V(t):N(t)?(a=k,P(t)):(e.consume(t),k)}function x(t){return null===t?n(t):63===t?(e.consume(t),b):N(t)?(a=x,P(t)):(e.consume(t),x)}function b(e){return 62===e?V(e):x(e)}function w(t){return Be(t)?(e.consume(t),E):n(t)}function E(t){return 45===t||ze(t)?(e.consume(t),E):S(t)}function S(t){return N(t)?(a=S,P(t)):U(t)?(e.consume(t),S):V(t)}function C(t){return 45===t||ze(t)?(e.consume(t),C):47===t||62===t||qe(t)?A(t):n(t)}function A(t){return 47===t?(e.consume(t),V):58===t||95===t||Be(t)?(e.consume(t),D):N(t)?(a=A,P(t)):U(t)?(e.consume(t),A):V(t)}function D(t){return 45===t||46===t||58===t||95===t||ze(t)?(e.consume(t),D):T(t)}function T(t){return 61===t?(e.consume(t),q):N(t)?(a=T,P(t)):U(t)?(e.consume(t),T):A(t)}function q(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,L):N(t)?(a=q,P(t)):U(t)?(e.consume(t),q):(e.consume(t),r=void 0,I)}function L(t){return t===r?(e.consume(t),F):null===t?n(t):N(t)?(a=L,P(t)):(e.consume(t),L)}function F(e){return 62===e||47===e||qe(e)?A(e):n(e)}function I(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||qe(t)?A(t):(e.consume(t),I)}function P(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),j(e,R,"linePrefix",s.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function R(t){return e.enter("htmlTextData"),a(t)}function V(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}};var mt={name:"labelEnd",tokenize:function(e,t,n){var r,i,o=this,a=o.events.length;for(;a--;)if(("labelImage"===o.events[a][1].type||"labelLink"===o.events[a][1].type)&&!o.events[a][1]._balanced){r=o.events[a][1];break}return function(t){if(!r)return n(t);return r._inactive?u(t):(i=o.parser.defined.indexOf(z(o.sliceSerialize({start:r.end,end:o.now()})))>-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),s)};function s(n){return 40===n?e.attempt(vt,t,i?t:u)(n):91===n?e.attempt(yt,t,i?e.attempt(kt,t,u):u)(n):i?t(n):u(n)}function u(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){var n,r,i,o,a,s,u,c=e.length,l=0;for(;c--;)if(o=e[c][1],a){if("link"===o.type||"labelLink"===o.type&&o._inactive)break;"enter"===e[c][0]&&"labelLink"===o.type&&(o._inactive=!0)}else if(s){if("enter"===e[c][0]&&("labelImage"===o.type||"labelLink"===o.type)&&!o._balanced&&(a=c,"labelLink"!==o.type)){l=2;break}}else"labelEnd"===o.type&&(s=c);return n={type:"labelLink"===e[a][1].type?"link":"image",start:re(e[a][1].start),end:re(e[e.length-1][1].end)},r={type:"label",start:re(e[a][1].start),end:re(e[s][1].end)},i={type:"labelText",start:re(e[a+l+2][1].end),end:re(e[s-2][1].start)},u=Se(u=[["enter",n,t],["enter",r,t]],e.slice(a+1,a+l+3)),u=Se(u,[["enter",i,t]]),u=Se(u,Ce(t.parser.constructs.insideSpan.null,e.slice(a+l+4,s-3),t)),u=Se(u,[["exit",i,t],e[s-2],e[s-1],["exit",r,t]]),u=Se(u,e.slice(s+1)),u=Se(u,[["exit",n,t]]),ne(e,a,e.length,u),e},resolveAll:function(e){var t,n=-1;for(;++n-1?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)}},St={tokenize:function(e,t,n){var r=this;return j(e,(function(e){return U(e)||!ee(r.events,"listItemPrefixWhitespace")?n(e):t(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},Ct={tokenize:function(e,t,n){var r=this;return j(e,(function(e){return ee(r.events,"listItemIndent")===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};var At={name:"setextUnderline",tokenize:function(e,t,n){var r,i,o=this,a=o.events.length;for(;a--;)if("lineEnding"!==o.events[a][1].type&&"linePrefix"!==o.events[a][1].type&&"content"!==o.events[a][1].type){i="paragraph"===o.events[a][1].type;break}return function(t){if(!o.lazy&&(o.interrupt||i))return e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),r=t,s(t);return n(t)};function s(t){return t===r?(e.consume(t),s):(e.exit("setextHeadingLineSequence"),j(e,u,"lineSuffix")(t))}function u(r){return null===r||N(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}},resolveTo:function(e,t){var n,r,i,o,a=e.length;for(;a--;)if("enter"===e[a][0]){if("content"===e[a][1].type){n=a;break}"paragraph"===e[a][1].type&&(r=a)}else"content"===e[a][1].type&&e.splice(a,1),i||"definition"!==e[a][1].type||(i=a);o={type:"setextHeading",start:re(e[r][1].start),end:re(e[e.length-1][1].end)},e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",o,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end=re(e[i][1].end)):e[n][1]=o;return e.push(["exit",o,t]),e}};var Dt={38:Xe,92:Ge},Tt={"-5":xt,"-4":xt,"-3":xt,33:{name:"labelStartImage",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),i};function i(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),o):n(t)}function o(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:mt.resolveAll},38:Xe,42:Oe,60:[Ne,gt],91:{name:"labelStartLink",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),i};function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:mt.resolveAll},92:[{name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),r};function r(r){return N(r)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(r)):n(r)}}},Ge],93:mt,95:Oe,96:rt},qt={91:ut},Lt={null:[]},Ft={42:Et,43:Et,45:Et,48:Et,49:Et,50:Et,51:Et,52:Et,53:Et,54:Et,55:Et,56:Et,57:Et,62:je},It={35:lt,42:wt,45:[At,wt],60:ht,61:At,95:wt,96:et,126:et},Pt={"-2":tt,"-1":tt,32:tt},Rt={null:[Oe,ke.resolver]},Vt=Dt,Ot=Tt,Bt=Object.defineProperty({contentInitial:qt,disable:Lt,document:Ft,flow:It,flowInitial:Pt,insideSpan:Rt,string:Vt,text:Ot},"__esModule",{value:!0});var zt=function(e){var t={defined:[],constructs:Ee([Bt].concat(xe((e||{}).extensions))),content:n($),document:n(K),flow:n(le),string:n(ke.string),text:n(ke.text)};return t;function n(e){return function(n){return Te(t,e,n)}}},Mt=/[\0\t\n\r]/g;var _t=function(){var e,t=!0,n=1,r="";return function(i,o,a){var s,u,c,l,f,d=[];i=r+i.toString(o),c=0,r="",t&&(65279===i.charCodeAt(0)&&c++,t=void 0);for(;c-1&&(q.call(this,e),L.call(this,e))}function I(){a("atHardBreak",!0)}function R(){var e=this.resume();this.stack[this.stack.length-1].value=e}function V(){var e=this.resume();this.stack[this.stack.length-1].value=e}function M(){var e=this.resume();this.stack[this.stack.length-1].value=e}function N(){var e=this.stack[this.stack.length-1];s("inReference")?(e.type+="Reference",e.referenceType=s("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),a("referenceType")}function U(){var e=this.stack[this.stack.length-1];s("inReference")?(e.type+="Reference",e.referenceType=s("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),a("referenceType")}function j(e){this.stack[this.stack.length-2].identifier=z(this.sliceSerialize(e)).toLowerCase()}function H(){var e=this.stack[this.stack.length-1],t=this.resume();this.stack[this.stack.length-1].label=t,a("inReference",!0),"link"===this.stack[this.stack.length-1].type?this.stack[this.stack.length-1].children=e.children:this.stack[this.stack.length-1].alt=t}function G(){var e=this.resume();this.stack[this.stack.length-1].url=e}function $(){var e=this.resume();this.stack[this.stack.length-1].title=e}function W(){a("inReference")}function Q(){a("referenceType","collapsed")}function Y(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=z(this.sliceSerialize(e)).toLowerCase(),a("referenceType","full")}function J(e){a("characterReferenceType",e.type)}function Z(e){var t,n,r=this.sliceSerialize(e),i=s("characterReferenceType");i?(t=_(r,"characterReferenceMarkerNumeric"===i?10:16),a("characterReferenceType")):t=We(r),(n=this.stack.pop()).value+=t,n.position.end=u(e.end)}function K(e){L.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function X(e){L.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function ee(){return{type:"blockquote",children:[]}}function te(){return{type:"code",lang:null,meta:null,value:""}}function ne(){return{type:"inlineCode",value:""}}function re(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function ie(){return{type:"emphasis",children:[]}}function oe(){return{type:"heading",depth:void 0,children:[]}}function ae(){return{type:"break"}}function se(){return{type:"html",value:""}}function ue(){return{type:"image",title:null,url:"",alt:null}}function ce(){return{type:"link",title:null,url:"",children:[]}}function le(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function fe(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function de(){return{type:"paragraph",children:[]}}function he(){return{type:"strong",children:[]}}function pe(){return{type:"text",value:""}}function ge(){return{type:"thematicBreak"}}}(n)(Nt(zt(n).document().write(_t()(e,t,!0))))};function Qt(e,t){var n,r;for(n in t)r=B.call(e,n)?e[n]:e[n]={},"canContainEols"===n||"transforms"===n?e[n]=[].concat(r,t[n]):Object.assign(r,t[n])}var Yt=Wt,Jt=function(e){var t=this;this.Parser=function(n){return Yt(n,Object.assign({},t.data("settings"),e,{extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]}))}};var Zt=function(e){if(e)throw e} +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */;var Kt=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},Xt=Object.prototype.hasOwnProperty,en=Object.prototype.toString,tn=Object.defineProperty,nn=Object.getOwnPropertyDescriptor,rn=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===en.call(e)},on=function(e){if(!e||"[object Object]"!==en.call(e))return!1;var t,n=Xt.call(e,"constructor"),r=e.constructor&&e.constructor.prototype&&Xt.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||Xt.call(e,t)},an=function(e,t){tn&&"__proto__"===t.name?tn(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},sn=function(e,t){if("__proto__"===t){if(!Xt.call(e,t))return;if(nn)return nn(e,t).value}return e[t]},un=function e(){var t,n,r,i,o,a,s=arguments[0],u=1,c=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},u=2),(null==s||"object"!=typeof s&&"function"!=typeof s)&&(s={});u{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype},ln=[].slice,fn=function(e,t){var n;return function(){var t,o=ln.call(arguments,0),a=e.length>o.length;a&&o.push(r);try{t=e.apply(null,o)}catch(e){if(a&&n)throw e;return r(e)}a||(t&&"function"==typeof t.then?t.then(i,r):t instanceof Error?r(t):i(t))};function r(){n||(n=!0,t.apply(null,arguments))}function i(e){r(null,e)}};var dn=pn;pn.wrap=fn;var hn=[].slice;function pn(){var e=[],t={run:function(){var t=-1,n=hn.call(arguments,0,-1),r=arguments[arguments.length-1];if("function"!=typeof r)throw new Error("Expected function as last argument, not "+r);(function i(o){var a=e[++t],s=hn.call(arguments,0).slice(1),u=n.length,c=-1;if(o)r(o);else{for(;++c1)for(var n=1;n-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+kn.sep+"`")}function Jn(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function Zn(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}Qn.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(Qn.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){Jn(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(Qn.prototype,"dirname",{get:function(){return"string"==typeof this.path?kn.dirname(this.path):void 0},set:function(e){Zn(this.path,"dirname"),this.path=kn.join(e||"",this.basename)}}),Object.defineProperty(Qn.prototype,"basename",{get:function(){return"string"==typeof this.path?kn.basename(this.path):void 0},set:function(e){Jn(e,"basename"),Yn(e,"basename"),this.path=kn.join(this.dirname||"",e)}}),Object.defineProperty(Qn.prototype,"extname",{get:function(){return"string"==typeof this.path?kn.extname(this.path):void 0},set:function(e){if(Yn(e,"extname"),Zn(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=kn.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(Qn.prototype,"stem",{get:function(){return"string"==typeof this.path?kn.basename(this.path,this.extname):void 0},set:function(e){Jn(e,"stem"),Yn(e,"stem"),this.path=kn.join(this.dirname||"",e+(this.extname||""))}});var Kn=Gn;Gn.prototype.message=function(e,t,n){var r=new gn(e,t,n);this.path&&(r.name=this.path+":"+r.name,r.file=this.path);return r.fatal=!1,this.messages.push(r),r},Gn.prototype.info=function(){var e=this.message.apply(this,arguments);return e.fatal=null,e},Gn.prototype.fail=function(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e};var Xn=Kn,er=function e(){var t,n=[],r=dn(),i={},o=-1;return a.data=function(e,n){if("string"==typeof e)return 2===arguments.length?(sr("data",t),i[e]=n,a):nr.call(i,e)&&i[e]||null;if(e)return sr("data",t),i=e,a;return i},a.freeze=s,a.attachers=n,a.use=function(e){var r;if(sr("use",t),null==e);else if("function"==typeof e)l.apply(null,arguments);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?c(e):o(e)}r&&(i.settings=un(i.settings||{},r));return a;function o(e){c(e.plugins),e.settings&&(r=un(r||{},e.settings))}function s(e){if("function"==typeof e)l(e);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?l.apply(null,e):o(e)}}function c(e){var t=-1;if(null==e);else{if("object"!=typeof e||!("length"in e))throw new Error("Expected a list of plugins, not `"+e+"`");for(;++tl.defaults.children(e),annotatetextnode:(e,t)=>l.defaults.annotatetextnode(e,t),interpretmarkup:(e="")=>"\n".repeat((e.match(/\n/g)||[]).length),remarkoptions:{}};t.defaults=n,t.build=function(e,t=n){const r=er().use(Jt,t.remarkoptions).use(I,["yaml","toml"]);return l.build(e,r.parse,t)}}));const fr=/frontmatter|code|math|templater|blockid|hashtag|internal/;function dr(e){let t=0;if(0===e.length)return t;for(let n=0;n1&&i.username.length>1&&(u.username=i.username,u.apiKey=i.apikey),i.staticLanguage&&i.staticLanguage.length>0&&"auto"!==i.staticLanguage&&(u.language=i.staticLanguage),i.motherTongue&&i.motherTongue.length>0&&(u.motherTongue=i.motherTongue);try{c=yield fetch(`${i.serverUrl}/v2/check`,{method:"POST",body:Object.keys(u).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(u[e])}`)).join("&"),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"}})}catch(t){const n="request-failed";return gr===n&&i.shouldAutoCheck||(new e.Notice("Request to LanguageTool server failed. Please check your connection and LanguageTool server URL",3e3),gr=n),Promise.reject(t)}if(!c.ok){const t="request-not-ok";return yield function(e,t){var n,r;return s(this,void 0,void 0,(function*(){let i=`${(new Date).toLocaleString()}:\n url used for request: ${e.url}\n Status: ${e.status}\n Body: ${(yield e.text()).slice(0,200)}\n Settings: ${JSON.stringify(Object.assign(Object.assign({},t),{username:"REDACTED",apikey:"REDACTED"}))}\n `;(t.username||t.apikey)&&(i=i.replaceAll(null!==(n=t.username)&&void 0!==n?n:"username","<>").replaceAll(null!==(r=t.apikey)&&void 0!==r?r:"apiKey","<>")),pr.push(i),pr.length>10&&pr.shift()}))}(c,i),gr===t&&i.shouldAutoCheck||(new e.Notice(`Request to LanguageTool failed\n${c.statusText}Check Plugin Settings for Logs`,3e3),gr=t),Promise.reject(new Error(`unexpected status ${c.status}, see network tab`))}try{l=yield c.json()}catch(t){const n="json-parse-error";return gr===n&&i.shouldAutoCheck||(new e.Notice("Error processing response from LanguageTool server",3e3),gr=n),Promise.reject(t)}return"ok"===gr&&i.shouldAutoCheck||(new e.Notice("LanguageTool detection restored",5e3),gr="ok"),l}))}const yr=3e3,kr={serverUrl:"https://api.languagetool.org",urlMode:"standard",glassBg:!1,shouldAutoCheck:!1,autoCheckDelay:yr,pickyMode:!1};function xr(e){return"standard"===e?"https://api.languagetool.org":"premium"===e?"https://api.languagetoolplus.com":""}class br extends e.PluginSettingTab{constructor(e,t){super(e,t),this.plugin=t}configureAutoCheckDelaySlider(e,t){const n=function(e){return"standard"===e?yr:"premium"===e?750:50}(t);this.plugin.settings.autoCheckDelaye.json()));return this.languages=e,this.languages}))}display(){const{containerEl:t}=this;let n=null,r=null;t.empty(),t.createEl("h2",{text:"Settings for LanguageTool"});const i=t.createEl("button",{text:"Copy failed Request Logs"});i.onclick=()=>s(this,void 0,void 0,(function*(){yield window.navigator.clipboard.writeText(pr.join("\n")),new e.Notice("Logs copied to clipboard")})),i.style.marginBottom="5px",new e.Setting(t).setName("Endpoint").setDesc("Endpoint that will be used to make requests to").then((e=>{e.controlEl.style.display="inline-grid";let t=null;e.addDropdown((e=>{n=e,e.addOptions({standard:"(Standard) api.languagetool.org",premium:"(Premium) api.languagetoolplus.com",custom:"Custom URL"}).setValue(this.plugin.settings.urlMode).onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.urlMode=e,this.plugin.settings.serverUrl=xr(e),null==t||t.setValue(this.plugin.settings.serverUrl),null==t||t.setDisabled("custom"!==e),this.configureAutoCheckDelaySlider(r,e),yield this.plugin.saveSettings()}))))})),e.addText((e=>{t=e,e.setPlaceholder("https://your-custom-url.com").setValue(this.plugin.settings.serverUrl).setDisabled("custom"===this.plugin.settings.urlMode).onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.serverUrl=e.replace(/\/v2\/check\/$/,"").replace(/\/$/,""),yield this.plugin.saveSettings()}))))}))})),new e.Setting(t).setName("API Username").setDesc("Enter a username/email for API Access").addText((e=>e.setPlaceholder("peterlustig@gmail.com").setValue(this.plugin.settings.username||"").onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.username=e.replace(/\s+/g,""),yield this.plugin.saveSettings()})))))).then((e=>{e.descEl.createEl("br"),e.descEl.createEl("a",{text:"Click here for information about Premium Access",href:"https://github.com/Clemens-E/obsidian-languagetool-plugin#premium-accounts"},(e=>{e.setAttr("target","_blank")}))}));let o,a,u,c,l,f=!1;new e.Setting(t).setName("API Key").setDesc("Enter an API Key").addText((t=>t.setValue(this.plugin.settings.apikey||"").onChange((t=>s(this,void 0,void 0,(function*(){if(this.plugin.settings.apikey=t.replace(/\s+/g,""),this.plugin.settings.apikey.length>0&&"premium"!==this.plugin.settings.urlMode&&!f){const r=new e.Modal(this.app);r.titleEl.createEl("span",{text:"Warning"}),r.contentEl.createEl("p",{text:"You have entered an API Key but you are not using the Premium Endpoint"}),r.contentEl.style.display="grid";const i=r.contentEl.createEl("div",{attr:{style:"justify-self:center"}});i.createEl("button",{text:"I know what I'm doing",attr:{style:"justify-self:flex-start; color:red;"}}).onclick=()=>{f=!0,r.close()},i.createEl("button",{text:"Change to Premium",attr:{style:"justify-self:flex-end"}}).onclick=()=>s(this,void 0,void 0,(function*(){return this.plugin.settings.urlMode="premium",null==n||n.setValue("premium"),this.plugin.settings.serverUrl=xr(t),yield this.plugin.saveSettings(),r.close()})),r.open()}yield this.plugin.saveSettings()})))))).then((e=>{e.descEl.createEl("br"),e.descEl.createEl("a",{text:"Click here for information about Premium Access",href:"https://github.com/Clemens-E/obsidian-languagetool-plugin#premium-accounts"},(e=>{e.setAttr("target","_blank")}))})),new e.Setting(t).setName("Autocheck Text").setDesc("Check text as you type").addToggle((e=>{e.setValue(this.plugin.settings.shouldAutoCheck).onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.shouldAutoCheck=e,yield this.plugin.saveSettings()}))))})),new e.Setting(t).setName("AutoCheck Delay (ms)").setDesc("Length of time to wait for AutoCheck after last key press").addSlider((e=>{r=e,n&&this.configureAutoCheckDelaySlider(r,n.getValue()),e.setValue(this.plugin.settings.autoCheckDelay).onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.autoCheckDelay=e,yield this.plugin.saveSettings()})))),e.setDynamicTooltip()})),new e.Setting(t).setName("Glass Background").setDesc("Use the secondary background color of the theme or a glass background").addToggle((e=>{e.setValue(this.plugin.settings.glassBg).onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.glassBg=e,yield this.plugin.saveSettings()}))))})),new e.Setting(t).setName("Static Language").setDesc("Set a static language that will always be used (LanguageTool tries to auto detect the language, this is usually not necessary)").addDropdown((e=>{o=e,this.requestLanguages().then((t=>{var n;e.addOption("auto","Auto Detect"),t.forEach((t=>e.addOption(t.longCode,t.name))),e.setValue(null!==(n=this.plugin.settings.staticLanguage)&&void 0!==n?n:"auto"),e.onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.staticLanguage=e,"auto"!==e&&(this.plugin.settings.englishVeriety=void 0,null==a||a.setValue("default"),this.plugin.settings.germanVeriety=void 0,null==u||u.setValue("default"),this.plugin.settings.portugueseVeriety=void 0,null==c||c.setValue("default"),this.plugin.settings.catalanVeriety=void 0,null==l||l.setValue("default")),yield this.plugin.saveSettings()}))))})).catch(console.error)})),new e.Setting(t).setName("Mother Tongue").setDesc("Set the language you are most comfortable with. This will be used to interpret the language you are writing in").addDropdown((e=>{this.requestLanguages().then((t=>{e.addOption("empty",""),t.forEach((t=>e.addOption(t.longCode,t.name))),e.onChange((t=>s(this,void 0,void 0,(function*(){var n;this.plugin.settings.motherTongue=t,e.setValue(null!==(n=this.plugin.settings.motherTongue)&&void 0!==n?n:""),yield this.plugin.saveSettings()}))))})).catch(console.error)})),t.createEl("h3",{text:"Language Varieties"}),t.createEl("p",{text:"Some languages have varieties depending on the country they are spoken in."}),new e.Setting(t).setName("Interpret English as").addDropdown((e=>{var t;a=e,e.addOptions({default:"---","en-US":"English (US)","en-GB":"English (British)","en-CA":"English (Canada)","en-AU":"English (Australia)","en-ZA":"English (South Africa)","en-NZ":"English (New Zealand)"}).setValue(null!==(t=this.plugin.settings.englishVeriety)&&void 0!==t?t:"default").onChange((e=>s(this,void 0,void 0,(function*(){"default"===e?this.plugin.settings.englishVeriety=void 0:(this.plugin.settings.staticLanguage="auto",null==o||o.setValue("auto"),this.plugin.settings.englishVeriety=e),yield this.plugin.saveSettings()}))))})),new e.Setting(t).setName("Interpret German as").addDropdown((e=>{var t;u=e,e.addOptions({default:"---","de-DE":"German (Germany)","de-CH":"German (Switzerland)","de-AT":"German (Austria)"}).setValue(null!==(t=this.plugin.settings.germanVeriety)&&void 0!==t?t:"default").onChange((e=>s(this,void 0,void 0,(function*(){"default"===e?this.plugin.settings.germanVeriety=void 0:(this.plugin.settings.staticLanguage="auto",null==o||o.setValue("auto"),this.plugin.settings.germanVeriety=e),yield this.plugin.saveSettings()}))))})),new e.Setting(t).setName("Interpret Portuguese as").addDropdown((e=>{var t;c=e,e.addOptions({default:"---","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)","pt-AO":"Portuguese (Angola)","pt-MZ":"Portuguese (Mozambique)"}).setValue(null!==(t=this.plugin.settings.portugueseVeriety)&&void 0!==t?t:"default").onChange((e=>s(this,void 0,void 0,(function*(){"default"===e?this.plugin.settings.portugueseVeriety=void 0:(this.plugin.settings.staticLanguage="auto",null==o||o.setValue("auto"),this.plugin.settings.portugueseVeriety=e),yield this.plugin.saveSettings()}))))})),new e.Setting(t).setName("Interpret Catalan as").addDropdown((e=>{var t;l=e,e.addOptions({default:"---","ca-ES":"Catalan","ca-ES-valencia":"Catalan (Valencian)"}).setValue(null!==(t=this.plugin.settings.catalanVeriety)&&void 0!==t?t:"default").onChange((e=>s(this,void 0,void 0,(function*(){"default"===e?this.plugin.settings.catalanVeriety=void 0:(this.plugin.settings.staticLanguage="auto",null==o||o.setValue("auto"),this.plugin.settings.catalanVeriety=e),yield this.plugin.saveSettings()}))))})),t.createEl("h3",{text:"Rule Categories"}),new e.Setting(t).setName("Picky Mode").setDesc("Provides more style and tonality suggestions, detects long or complex sentences, recognizes colloquialism and redundancies, proactively suggests synonyms for commonly overused words").addToggle((e=>{e.setValue(this.plugin.settings.pickyMode).onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.pickyMode=e,yield this.plugin.saveSettings()}))))})),new e.Setting(t).setName("Other rule categories").setDesc("Enter a comma-separated list of categories").addText((e=>e.setPlaceholder("Eg. CATEGORY_1,CATEGORY_2").setValue(this.plugin.settings.ruleOtherCategories||"").onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.ruleOtherCategories=e.replace(/\s+/g,""),yield this.plugin.saveSettings()})))))).then((e=>{e.descEl.createEl("br"),e.descEl.createEl("a",{text:"Click here for a list of rules and categories",href:"https://community.languagetool.org/rule/list"},(e=>{e.setAttr("target","_blank")}))})),new e.Setting(t).setName("Enable Specific Rules").setDesc("Enter a comma-separated list of rules").addText((e=>e.setPlaceholder("Eg. RULE_1,RULE_2").setValue(this.plugin.settings.ruleOtherRules||"").onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.ruleOtherRules=e.replace(/\s+/g,""),yield this.plugin.saveSettings()})))))).then((e=>{e.descEl.createEl("br"),e.descEl.createEl("a",{text:"Click here for a list of rules and categories",href:"https://community.languagetool.org/rule/list"},(e=>{e.setAttr("target","_blank")}))})),new e.Setting(t).setName("Disable Specific Rules").setDesc("Enter a comma-separated list of rules").addText((e=>e.setPlaceholder("Eg. RULE_1,RULE_2").setValue(this.plugin.settings.ruleOtherDisabledRules||"").onChange((e=>s(this,void 0,void 0,(function*(){this.plugin.settings.ruleOtherDisabledRules=e.replace(/\s+/g,""),yield this.plugin.saveSettings()})))))).then((e=>{e.descEl.createEl("br"),e.descEl.createEl("a",{text:"Click here for a list of rules and categories",href:"https://community.languagetool.org/rule/list"},(e=>{e.setAttr("target","_blank")}))}))}}function wr(t){let r=-1,i=1/0,o=-1/0;return n.EditorView.inputHandler.of(((n,a,s,u)=>{if(!t.settings.shouldAutoCheck||!u.trim())return!1;const c=n.state.field(e.editorViewField);return i=Math.min(i,Math.min(a,s)),o=Math.max(o,Math.max(a,s)),clearTimeout(r),r=window.setTimeout((()=>{const e=n.lineBlockAt(i),r=n.lineBlockAt(o);t.runDetection(n,c,e.from,r.to).catch((e=>{console.error(e)}))}),t.settings.autoCheckDelay),!1}))}const Er=r.StateEffect.define(),Sr=r.StateEffect.define(),Cr=r.StateEffect.define(),Ar=r.StateEffect.define();function Dr(e,t,n,r){return!(e>=n&&e<=r)&&(!(t>=n&&t<=r)&&(!(n>=e&&n<=t)&&!(r>=e&&r<=t)))}const Tr=r.StateField.define({create:()=>({marks:n.Decoration.none,ignoredRanges:new Set}),update(e,t){e.marks=e.marks.map(t.changes),e.ignoredRanges.clear(),e.marks.between(0,t.newDoc.length,((t,n)=>{e.ignoredRanges.add(`${t},${n}`)})),t.docChanged&&t.selection&&e.marks.size&&(e.marks=e.marks.update({filter:(n,r)=>{const i=Dr(n,r,t.selection.main.from,t.selection.main.to);return i||e.ignoredRanges.delete(`${n},${r}`),i}}));for(const r of t.effects)if(r.is(Ar)){const{from:t,to:i}=r.value;e.ignoredRanges.add(`${t},${i}`),e.marks=e.marks.update({add:[n.Decoration.mark({}).range(t,i)]})}return e}}),qr=r.StateField.define({create:()=>n.Decoration.none,update(e,t){const{ignoredRanges:r}=t.state.field(Tr),o=new Set,a={};let s=null;e=e.map(t.changes);const u=e=>{if(void 0!==a[e])return a[e];s||(s=i.syntaxTree(t.state));const n=s.resolveInner(e,1).type.prop(i.tokenClassNodeProp);return n&&fr.test(n)?a[e]=!1:a[e]=!0,a[e]},c=(e,n,r)=>{if("TYPOS"===e.rule.category.id){const e=window.app.vault.getConfig("spellcheckDictionary"),i=t.state.sliceDoc(n,r);if(e&&e.includes(i))return!1}s||(s=i.syntaxTree(t.state));const o=s.resolve(t.newDoc.lineAt(n).from,1).type.prop(i.tokenClassNodeProp);return!(null==o?void 0:o.includes("table"))||"WHITESPACE_RULE"!==e.rule.id};t.docChanged&&t.selection&&e.size&&(e=e.update({filter:(e,n)=>Dr(e,n,t.selection.main.from,t.selection.main.to)}));for(const i of t.effects)if(i.is(Er)){const{from:t,to:a,match:s}=i.value,l=`${t},${a}`;!r.has(l)&&!o.has(l)&&u(t)&&u(a)&&c(s,t,a)&&(o.add(l),e=e.update({add:[n.Decoration.mark({class:`lt-underline ${hr(s.rule.category.id)}`,match:s}).range(t,a)]}))}else i.is(Sr)?e=n.Decoration.none:(i.is(Cr)||i.is(Ar))&&(e=e.update({filter:(e,t)=>Dr(e,t,i.value.from,i.value.to)}));return e},provide:e=>n.EditorView.decorations.from(e)});function Lr(t,n,r){const i=r.match,o=i.message,a=i.shortMessage,s=(i.replacements||[]).slice(0,3).map((e=>e.value)).filter((e=>e.trim())),u=i.rule.category.id,c=i.rule.id,l=t.settings.glassBg?"lt-predictions-container-glass":"lt-predictions-container";return createDiv({cls:[l,hr(u)]},(i=>{a&&i.createSpan({cls:"lt-title"},(e=>{e.createSpan({text:a})})),o&&i.createSpan({cls:"lt-message",text:o});const l=Cr.of({from:r.from,to:r.to}),f=Ar.of({from:r.from,to:r.to});i.createDiv({cls:"lt-bottom"},(t=>{s.length&&t.createDiv({cls:"lt-buttoncontainer"},(e=>{for(const t of s)e.createEl("button",{text:t},(e=>{e.onclick=()=>{n.dispatch({changes:[{from:r.from,to:r.to,insert:t}],effects:[l]})}}))})),t.createDiv({cls:"lt-info-container"},(t=>{t.createEl("button",{cls:"lt-info-button clickable-icon"},(t=>{e.setIcon(t,"info"),t.onclick=()=>{const e=document.getElementsByClassName("lt-info-box").item(0);if(!e)throw Error("Programming error: failed to create popup. Please notify the LanguageTool maintainer if this problem persists.");e.hasClass("hidden")?e.removeClass("hidden"):e.addClass("hidden")}})),t.createDiv({cls:"lt-info-box hidden"},(e=>{e.createDiv({cls:"lt-info",text:`Category: ${u}`}),e.createDiv({cls:"lt-info",text:`Rule: ${c}`})}))}))})),i.createDiv({cls:"lt-ignorecontainer"},(i=>{i.createEl("button",{cls:"lt-ignore-btn"},(i=>{"TYPOS"===u?(e.setIcon(i.createSpan(),"plus-with-circle"),i.createSpan({text:"Add to personal dictionary"}),i.onclick=()=>{const e=t.app.vault.getConfig("spellcheckDictionary")||[];t.app.vault.setConfig("spellcheckDictionary",[...e,n.state.sliceDoc(r.from,r.to)]),n.dispatch({effects:[l]})}):(e.setIcon(i.createSpan(),"cross"),i.createSpan({text:"Ignore suggestion"}),i.onclick=()=>{n.dispatch({effects:[f]})})}))}))}))}function Fr(e,t,n){const r=n.field(qr);if(0===r.size||n.selection.ranges.length>1)return[];let i=null;if(r.between(n.selection.main.from,n.selection.main.to,((e,t,n)=>{i={from:e,to:t,match:n.spec.match}})),null!==i){const{from:n,to:r}=i;if(e.length){const t=e[0];if(t.pos===n&&t.end===r)return e}return[{pos:n,end:r,above:!0,strictSide:!1,arrow:!1,create:e=>({dom:Lr(t,e,i)})}]}return[]}function Ir(e){return r.StateField.define({create:t=>Fr([],e,t),update:(t,n)=>Fr(t,e,n.state),provide:e=>n.showTooltip.computeN([e],(t=>t.field(e)))})}class Pr{get element(){return this.elem}constructor(t,n){const r=t.match.message,i=t.match.shortMessage,o=(t.match.replacements||[]).slice(0,3).map((e=>e.value)),a=t.match.rule.category.id;this.elem=createDiv({cls:[n,hr(a)]},(n=>{n.style.setProperty("left",`${t.position.left}px`),n.style.setProperty("top",`${t.position.bottom}px`),i&&n.createSpan({cls:"lt-title"},(e=>{e.createSpan({text:i})})),r&&n.createSpan({cls:"lt-message",text:r}),o.length&&n.createDiv({cls:"lt-buttoncontainer"},(e=>{for(const n of o)e.createEl("button",{text:n},(e=>{e.onclick=()=>{t.onClick(n)}}))})),n.createDiv({cls:"lt-ignorecontainer"},(n=>{n.createEl("button",{cls:"lt-ignore-btn"},(n=>{"TYPOS"===a?(e.setIcon(n.createSpan(),"plus-with-circle"),n.createSpan({text:"Add to personal dictionary"}),n.onclick=()=>{t.addToDictionary(t.matchedString)}):(e.setIcon(n.createSpan(),"cross"),n.createSpan({text:"Ignore suggestion"}),n.onclick=()=>{t.ignoreSuggestion()})}))}))})),document.body.append(this.elem);const s=this.elem.clientHeight,u=this.elem.clientWidth;t.position.bottom+s>window.innerHeight&&this.elem.style.setProperty("top",t.position.top-s+"px"),t.position.left+u>window.innerWidth&&this.elem.style.setProperty("left",window.innerWidth-u-15+"px")}destroy(){var e;null===(e=this.elem)||void 0===e||e.remove()}}function Rr(e,t){if(!e.getLine(t.line))return!1;const n=e.getTokenTypeAt(t);return!n||!fr.test(n)}function Vr(e,t,n,r){const i=t=>{var n;(null===(n=t.attributes)||void 0===n?void 0:n.isIgnored)||(e.delete(t),t.clear())};if(n&&r)return t.findMarks(n,r).forEach(i);t.getAllMarks().forEach(i)}class Or{constructor(e){this.onCodemirrorChange=(e,t)=>{if(this.openWidget&&(this.openWidget.destroy(),this.openWidget=void 0),this.markerMap.size>0&&t.origin&&"+"===t.origin[0]){const n=e.findMarksAt(t.from);n.length&&n.forEach((e=>e.clear()))}if(this.plugin.settings.shouldAutoCheck&&t.origin&&("+"===t.origin[0]||"paste"===t.origin)){const n=this.dirtyLines.has(e)?this.dirtyLines.get(e):[];t.text.forEach(((r,i)=>{const o=t.from.line+i;Rr(e,Object.assign(Object.assign({},t.from),{line:o}))&&n.push(o)})),this.dirtyLines.set(e,n),this.plugin.setStatusBarWorking(),this.checkLines(e)}},this.runAutoDetection=e=>s(this,void 0,void 0,(function*(){const t=this.dirtyLines.get(e);if(!t||0===t.length)return this.plugin.setStatusBarReady();this.dirtyLines.delete(e);const n=t.sort(((e,t)=>e-t)),r=n[n.length-1],i=e.getLine(r),o={line:n[0],ch:0},a={line:n[n.length-1],ch:i.length};try{yield this.runDetection(e,o,a)}catch(e){console.error(e),this.plugin.setStatusBarReady()}})),this.plugin=e,this.app=e.app}onload(){return s(this,void 0,void 0,(function*(){this.markerMap=new Map,this.hashLru=new u({maxSize:10}),this.dirtyLines=new WeakMap,this.checkLines=e.debounce(this.runAutoDetection,3e3,!0),this.initLegacyEditorHandler()}))}onunload(){this.openWidget&&(this.openWidget.destroy(),this.openWidget=void 0),this.app.workspace.iterateCodeMirrors((e=>{Vr(this.markerMap,e),e.off("change",this.onCodemirrorChange)}))}initLegacyEditorHandler(){this.plugin.registerCodeMirror((e=>{e.on("change",this.onCodemirrorChange)})),this.plugin.registerDomEvent(document,"pointerup",(t=>{var n,r;const i=this.app.workspace.getActiveViewOfType(e.MarkdownView);if(!i)return;if(t.target===(null===(n=this.openWidget)||void 0===n?void 0:n.element)||(null===(r=this.openWidget)||void 0===r?void 0:r.element.contains(t.target)))return;if(this.openWidget&&(this.openWidget.destroy(),this.openWidget=void 0),0===this.markerMap.size||t.target instanceof HTMLElement&&!t.target.hasClass("lt-underline"))return;const o=i.editor.cm;if(!o.getWrapperElement().contains(t.target))return;const a=o.coordsChar({left:t.clientX,top:t.clientY}),s=o.findMarksAt(a);if(0===s.length)return;const u=s[0],c=this.markerMap.get(u);if(!c)return;const{from:l,to:f}=u.find(),d=o.cursorCoords(l),h=o.getRange(l,f);this.openWidget=new Pr({match:c,matchedString:h,position:d,onClick:e=>{var t;o.replaceRange(e,l,f),u.clear(),null===(t=this.openWidget)||void 0===t||t.destroy(),this.openWidget=void 0},addToDictionary:e=>{var t;const n=this.app.vault.getConfig("spellcheckDictionary")||[];this.app.vault.setConfig("spellcheckDictionary",[...n,e]),u.clear(),null===(t=this.openWidget)||void 0===t||t.destroy(),this.openWidget=void 0},ignoreSuggestion:()=>{var e;o.markText(l,f,{clearOnEnter:!1,attributes:{isIgnored:"true"}}),u.clear(),null===(e=this.openWidget)||void 0===e||e.destroy(),this.openWidget=void 0}},this.plugin.settings.glassBg?"lt-predictions-container-glass":"lt-predictions-container")}))}runDetection(e,t,n){return s(this,void 0,void 0,(function*(){this.plugin.setStatusBarWorking();const r=e.getDoc(),i=t&&n?e.getRange(t,n):e.getValue(),o=t&&n?r.indexFromPos(t):0,a=dr(i);if(this.hashLru.has(a))return this.hashLru.get(a);let s;try{s=yield vr(i,(()=>this.plugin.settings)),this.hashLru.set(a,s)}catch(e){return this.plugin.setStatusBarReady(),Promise.reject(e)}if(t&&n?Vr(this.markerMap,e,t,n):Vr(this.markerMap,e),!s.matches)return this.plugin.setStatusBarReady();for(const t of s.matches){const n=r.posFromIndex(t.offset+o),i=e.findMarksAt(n);if(i&&i.length>0)continue;const a=r.posFromIndex(t.offset+o+t.length);if(!Rr(e,n)||!Rr(e,a)||!this.matchAllowed(e,t,n,a))continue;const s=e.markText(n,a,{className:`lt-underline ${hr(t.rule.category.id)}`,clearOnEnter:!1});this.markerMap.set(s,t)}this.plugin.setStatusBarReady()}))}matchAllowed(e,t,n,r){var i;const o=e.getRange(n,r);if("TYPOS"===t.rule.category.id){const e=this.app.vault.getConfig("spellcheckDictionary");if(e&&e.includes(o))return!1}const a=e.getLineTokens(n.line);return!a.length||!(null===(i=a[0].type)||void 0===i?void 0:i.includes("table"))||"WHITESPACE_RULE"!==t.rule.id}}class Br extends e.Plugin{constructor(){super(...arguments),this.isloading=!1,this.handleStatusBarClick=()=>{var t;const n=null===(t=this.statusBarText.parentElement)||void 0===t?void 0:t.getBoundingClientRect(),r=this.statusBarText.getBoundingClientRect();new e.Menu(this.app).addItem((t=>{t.setTitle("Check current document"),t.setIcon("checkbox-glyph"),t.onClick((()=>s(this,void 0,void 0,(function*(){const t=this.app.workspace.activeLeaf;if((null==t?void 0:t.view)instanceof e.MarkdownView&&"source"===t.view.getMode())try{this.isLegacyEditor?yield this.legacyPlugin.runDetection(t.view.editor.cm):yield this.runDetection(t.view.editor.cm,t.view)}catch(e){console.error(e)}}))))})).addItem((e=>{e.setTitle(this.settings.shouldAutoCheck?"Disable automatic checking":"Enable automatic checking"),e.setIcon("uppercase-lowercase-a"),e.onClick((()=>s(this,void 0,void 0,(function*(){this.settings.shouldAutoCheck=!this.settings.shouldAutoCheck,yield this.saveSettings()}))))})).addItem((t=>{t.setTitle("Clear suggestions"),t.setIcon("reset"),t.onClick((()=>{const t=this.app.workspace.getActiveViewOfType(e.MarkdownView);if(t)if(this.isLegacyEditor){const e=t.editor.cm;Vr(this.legacyPlugin.markerMap,e)}else{t.editor.cm.dispatch({effects:[Sr.of(null)]})}}))})).showAtPosition({x:r.right+5,y:((null==n?void 0:n.top)||0)-5})}}onload(){return s(this,void 0,void 0,(function*(){this.isLegacyEditor=Boolean(!this.app.isMobile&&this.app.vault.getConfig("legacyEditor")),yield this.loadSettings();let t=yield this.loadData();if(t&&0!==Object.keys(t).length||(t=this.settings),!t.urlMode||0===t.urlMode.length){const{serverUrl:t}=this.settings;this.settings.urlMode="https://api.languagetool.org"===t?"standard":"https://api.languagetoolplus.com"===t?"premium":"custom";try{yield this.saveSettings(),yield this.loadSettings(),new e.Notice("updated LanguageTool Settings, please confirm your server URL in the settings tab",1e4)}catch(e){console.error(e)}}if(this.settings.serverUrl.includes("/v2/check")){new e.Notice("invalid or outdated LanguageTool Settings, I'm trying to fix it.\nIf it does not work, simply reinstall the plugin",1e4),this.settings.serverUrl=this.settings.serverUrl.replace("/v2/check","");try{yield this.saveSettings()}catch(e){console.error(e)}}var r;this.addSettingTab(new br(this.app,this)),this.app.workspace.onLayoutReady((()=>{this.statusBarText=this.addStatusBarItem(),this.setStatusBarReady(),this.registerDomEvent(this.statusBarText,"click",this.handleStatusBarClick)})),this.isLegacyEditor?(this.legacyPlugin=new Or(this),yield this.legacyPlugin.onload()):(this.hashLru=new u({maxSize:10}),this.registerEditorExtension((r=this,[n.tooltips({position:"absolute",tooltipSpace:e=>{const t=e.dom.getBoundingClientRect();return{top:t.top,left:t.left,bottom:t.bottom,right:t.right}}}),Tr,qr,Ir(r),wr(r)]))),this.registerCommands()}))}onunload(){this.isLegacyEditor&&this.legacyPlugin.onunload(),this.hashLru.clear()}registerCommands(){this.addCommand({id:"ltcheck-text",name:"Check Text",editorCallback:(e,t)=>{if(this.isLegacyEditor){const t=e.cm;e.somethingSelected()?this.legacyPlugin.runDetection(t,t.getCursor("from"),t.getCursor("to")).catch((e=>{console.error(e)})):this.legacyPlugin.runDetection(t).catch((e=>{console.error(e)}))}else this.runDetection(e.cm,t).catch((e=>{console.error(e)}))}}),this.addCommand({id:"ltautocheck-text",name:"Toggle Automatic Checking",callback:()=>s(this,void 0,void 0,(function*(){this.settings.shouldAutoCheck=!this.settings.shouldAutoCheck,yield this.saveSettings()}))}),this.addCommand({id:"ltclear",name:"Clear Suggestions",editorCallback:e=>{if(this.isLegacyEditor){if(this.legacyPlugin.markerMap.size>0){const t=e.cm;Vr(this.legacyPlugin.markerMap,t)}}else{e.cm.dispatch({effects:[Sr.of(null)]})}}}),this.addCommand({id:"ltjump-to-next-suggestion",name:"Jump to next Suggestion",editorCheckCallback:(e,t)=>{const n=t.cm,r=t.posToOffset(t.getCursor());let i=null;if(n.state.field(qr).between(r+1,1/0,((e,t)=>{(!i||i.from>e)&&(i={from:e,to:t})})),e)return Boolean(i);i&&n.dispatch({selection:{anchor:i.from,head:i.to}})}}),this.addCommand({id:"ltjump-to-previous-suggestion",name:"Jump to previous Suggestion",editorCheckCallback:(e,t)=>{const n=t.cm,r=t.posToOffset(t.getCursor("from"));let i=null;if(n.state.field(qr).between(0,r-1,((e,t)=>{(!i||i.from{l.push({from:e,to:t,value:n})}));const f=1===l.length&&(null===(s=null===(a=null===(o=null===(i=null===(r=l[0])||void 0===r?void 0:r.value)||void 0===i?void 0:i.spec)||void 0===o?void 0:o.match)||void 0===a?void 0:a.replacements)||void 0===s?void 0:s.length)>=e;if(t)return f;if(!f)return void console.error("Preconditions were not successfull to apply LT-suggestions.");const{from:d,to:h,value:p}=l[0],g={from:d,to:h,insert:p.spec.match.replacements[e-1].value};u.dispatch({changes:[g],effects:[Cr.of({from:d,to:h})]})}}}setStatusBarReady(){this.isloading=!1,this.statusBarText.empty(),this.statusBarText.createSpan({cls:"lt-status-bar-btn"},(e=>{e.createSpan({cls:"lt-status-bar-check-icon",text:"Aa"})}))}setStatusBarWorking(){this.isloading||(this.isloading=!0,this.statusBarText.empty(),this.statusBarText.createSpan({cls:["lt-status-bar-btn","lt-loading"]},(t=>{e.setIcon(t,"sync-small")})))}runDetection(e,t,n,r){var i,o;return s(this,void 0,void 0,(function*(){const a=null===(i=this.app.metadataCache.getFileCache(t.file))||void 0===i?void 0:i.frontmatter;if(null===(o=null==a?void 0:a.tags)||void 0===o?void 0:o.includes("lt-ignore"))return;this.setStatusBarWorking();const s=e.state.selection.main;let u=t.data,c=0,l=!1,f=0,d=0;void 0===n&&s&&s.from!==s.to&&(n=s.from,r=s.to),void 0!==n&&void 0!==r&&(u=e.state.sliceDoc(n,r),c=n,f=n,d=r,l=!0);const h=dr(u);let p;if(this.hashLru.has(h))p=this.hashLru.get(h);else try{p=yield vr(u,(()=>this.settings)),this.hashLru.set(h,p)}catch(e){return this.setStatusBarReady(),Promise.reject(e)}const g=[];if(l?g.push(Cr.of({from:f,to:d})):g.push(Sr.of(null)),p.matches)for(const e of p.matches){const t=e.offset+c,n=e.offset+c+e.length;g.push(Er.of({from:t,to:n,match:e}))}g.length&&e.dispatch({effects:g}),this.setStatusBarReady()}))}loadSettings(){return s(this,void 0,void 0,(function*(){this.settings=Object.assign({},kr,yield this.loadData())}))}saveSettings(){return s(this,void 0,void 0,(function*(){yield this.saveData(this.settings)}))}}module.exports=Br; + +/* nosourcemap */ \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/manifest.json b/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/manifest.json new file mode 100644 index 0000000..5dc251d --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-languagetool-plugin", + "name": "LanguageTool Integration", + "version": "0.3.7", + "minAppVersion": "0.15.2", + "description": "Inofficial LanguageTool plugin", + "author": "Clemens Ertle", + "authorUrl": "https://github.com/Clemens-E", + "isDesktopOnly": false +} diff --git a/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/styles.css b/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/styles.css new file mode 100644 index 0000000..de39594 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-languagetool-plugin/styles.css @@ -0,0 +1,204 @@ +.lt-underline { + cursor: pointer; + transition: background-color 100ms ease-out; +} + +.lt-underline.lt-minor { + box-shadow: inset 0 -2px #e9b35f; +} + +.lt-underline.lt-major { + box-shadow: inset 0 -2px #da615c; +} + +.lt-underline.lt-style { + box-shadow: inset 0 -2px #8981f3; +} + +.lt-underline.lt-minor:hover { + background-color: #e9b35f21; +} + +.lt-underline.lt-major:hover { + background-color: #da615c21; +} + +.lt-underline.lt-style:hover { + background-color: #8981f321; +} + +@keyframes lineInserted { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.lt-predictions-container-glass.cm-tooltip, +.lt-predictions-container.cm-tooltip, +.lt-predictions-container-glass, +.lt-predictions-container { + position: absolute; + animation-duration: 150ms; + animation-name: lineInserted; + font-family: var(--default-font); + font-size: 0.93rem; + padding: 12px 0 0; + background-color: var(--background-primary); + border: 1px solid var(--background-modifier-border); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + border-radius: 6px; + width: 300px; + line-height: 1.5; + z-index: var(--layer-popover); + overflow: visible; +} + +.lt-predictions-container-glass { + background: hsla(0, 0%, 100%, 0.25); + backdrop-filter: blur(12px); +} + +.lt-predictions-container > button { + transition-delay: 0.5s; +} + +.lt-buttoncontainer:not(:empty) { + padding-top: 10px; +} + +.lt-buttoncontainer > button { + border: 1px solid var(--background-modifier-border); + font-size: 1rem; + margin-right: 4px; + margin-bottom: 4px; + padding: 4px 10px; +} + +.lt-title { + display: block; + font-weight: 600; + margin-bottom: 6px; + padding: 0 12px; +} + +.lt-message { + padding: 0 12px; + display: block; +} + +.lt-bottom { + min-height: 10px; + padding-left: 12px; + position: relative; +} + +.lt-info-container { + position: absolute; + right: 0; + bottom: 0; +} + +.lt-info-button { + color: var(--text-faint); +} + +.lt-info-box { + position: absolute; + right: 0; + animation-duration: 150ms; + animation-name: lineInserted; + font-family: var(--default-font); + font-size: 0.93rem; + padding: 12px 0; + background-color: var(--background-primary); + border: 1px solid var(--background-modifier-border); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + border-radius: 6px; + line-height: 1.5; + z-index: var(--layer-popover); + overflow: hidden; +} + +.hidden { + display: none; +} + +.lt-info { + padding: 0 12px; + display: block; + font-size: 0.8rem; + color: var(--text-muted); + user-select: text; + -webkit-user-select: text; +} + +.lt-ignorecontainer { + display: flex; +} + +.lt-status-bar-btn { + height: 100%; + display: flex; + cursor: pointer; + line-height: 1; + align-items: center; +} + +.lt-status-bar-check-icon { + display: block; + text-decoration: underline; + text-decoration-style: dotted; +} + +.lt-ignore-btn { + margin: 0; + padding: 12px; + display: flex; + width: 100%; + text-align: left; + border-radius: 0; + align-items: center; + line-height: 1; + border-top: 1px solid var(--background-modifier-border); +} + +.lt-ignore-btn > span { + display: flex; +} + +.lt-ignore-btn > span:last-child { + margin-left: 5px; +} + +.lt-minor .lt-title > span { + box-shadow: inset 0 -2px #e9b35f88; +} + +.lt-major .lt-title > span { + box-shadow: inset 0 -2px #da615c88; +} + +.lt-style .lt-title > span { + box-shadow: inset 0 -2px #8981f388; +} + +.lt-loading > svg { + animation-name: spin; + animation-duration: 1s; + animation-iteration-count: infinite; + animation-timing-function: linear; +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} diff --git a/content/notes/.obsidian/plugins/obsidian-link-converter/data.json b/content/notes/.obsidian/plugins/obsidian-link-converter/data.json new file mode 100644 index 0000000..11f0767 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-link-converter/data.json @@ -0,0 +1,6 @@ +{ + "mySetting": "default", + "contextMenu": true, + "finalLinkFormat": "relative-path", + "keepMtime": false +} \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/obsidian-link-converter/main.js b/content/notes/.obsidian/plugins/obsidian-link-converter/main.js new file mode 100644 index 0000000..2fa5917 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-link-converter/main.js @@ -0,0 +1,4 @@ +"use strict";var t=require("obsidian");function e(t,e,i,n){return new(i||(i=Promise))((function(o,a){function l(t){try{r(n.next(t))}catch(t){a(t)}}function s(t){try{r(n.throw(t))}catch(t){a(t)}}function r(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(l,s)}r((n=n.apply(t,e||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const i={mySetting:"default",contextMenu:!0,finalLinkFormat:"not-change",keepMtime:!1};class n extends t.PluginSettingTab{constructor(t,e){super(t,e),this.plugin=e}display(){let{containerEl:e}=this;e.empty(),e.createEl("h2",{text:"Obsidian Link Converter"}),new t.Setting(e).setName("File Context Menu").setDesc("Turn this option off if you don't want single file commands to appear within the file context menu").addToggle((t=>{t.setValue(this.plugin.settings.contextMenu).onChange((t=>{this.plugin.settings.contextMenu=t,this.plugin.saveSettings(),t?this.plugin.app.workspace.on("file-menu",this.plugin.addFileMenuItems):this.plugin.app.workspace.off("file-menu",this.plugin.addFileMenuItems)}))})),new t.Setting(e).setName("Converted Link Format").setDesc("Select the preferred option for the final link format after the conversion. Plugin will use the preferrence where possible").addDropdown((t=>{t.addOption("not-change","Do not change").addOption("relative-path","Relative Path").addOption("absolute-path","Absolute Path").addOption("shortest-path","Shortest Path").setValue(this.plugin.settings.finalLinkFormat).onChange((t=>{this.plugin.settings.finalLinkFormat=t,this.plugin.saveSettings()}))})),new t.Setting(e).setName("Keep mTime (Last Modified Time)").setDesc("Turn on this option if you want plugin to keep the mtime of files same during the link conversion").addToggle((t=>t.setValue(this.plugin.settings.keepMtime).onChange((t=>{this.plugin.settings.keepMtime=t,this.plugin.saveSettings()}))));const i=e.createDiv("coffee");i.addClass("oz-coffee-div");i.createEl("a",{href:"https://ko-fi.com/L3L356V6Q"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi2.png?v=3"}}).height=45}}const o=(t,i)=>e(void 0,void 0,void 0,(function*(){const e=[];let n=yield i.app.vault.read(t),o=n.match(/\[\[.*?\]\]/g);if(o){let i=/(?<=\[\[).*?(?=(\]|\|))/,n=/(?<=\|).*(?=]])/;for(let a of o){if(M(a)){let i=x(a),n=A(a);if(""!==i&&""!==n){let o={type:"wikiTransclusion",match:a,linkText:i,altOrBlockRef:n,sourceFilePath:t.path};e.push(o);continue}}let o=a.match(i);if(o){if(o[0].startsWith("http"))continue;let i=a.match(n),l={type:"wiki",match:a,linkText:o[0],altOrBlockRef:i?i[0]:"",sourceFilePath:t.path};e.push(l)}}}let a=n.match(/\[(^$|.*?)\]\((.*?)\)/g);if(a){let i=/(?<=\().*(?=\))/,n=/(?<=\[)(^$|.*?)(?=\])/;for(let o of a){if(y(o)){let i=x(o),n=A(o);if(""!==i&&""!==n){let a={type:"mdTransclusion",match:o,linkText:i,altOrBlockRef:n,sourceFilePath:t.path};e.push(a);continue}}let a=o.match(i);if(a){if(a[0].startsWith("http"))continue;let i=o.match(n),l={type:"markdown",match:o,linkText:a[0],altOrBlockRef:i?i[0]:"",sourceFilePath:t.path};e.push(l)}}}return e})),a=(i,n,o)=>e(void 0,void 0,void 0,(function*(){let e=yield n.app.vault.read(i),a="markdown"===o?yield c(e,i,n):yield h(e,i,n),l=n.settings.keepMtime?yield n.app.vault.adapter.stat(t.normalizePath(i.path)):{};yield n.app.vault.modify(i,a,l)})),l=(i,n)=>e(void 0,void 0,void 0,(function*(){let e=i.app.workspace.getActiveFile();"md"===e.extension?yield a(e,i,n):new t.Notice("Active File is not a Markdown File")})),s=(i,n,o)=>e(void 0,void 0,void 0,(function*(){let e=((e,i)=>{var n=[];return function e(i,o){var a=o.vault.getAbstractFileByPath(i);if(a instanceof t.TFolder&&a.children)for(let i of a.children)i instanceof t.TFile&&"md"===i.extension&&n.push(i),i instanceof t.TFolder&&e(i.path,o)}(e,i.app),n})(i.path,n),l=new t.Notice("Starting link conversion",0);try{let t=e.length,i=0;for(let s of e)i++,l.setMessage(`Converting the links in notes ${i}/${t}.`),d(n.app,s.path,"excalidraw-plugin")||d(n.app,s.path,"kanban-plugin")||(yield a(s,n,o))}catch(t){console.log(t)}finally{l.hide()}})),r=(i,n)=>e(void 0,void 0,void 0,(function*(){let e=n.app.workspace.getActiveViewOfType(t.MarkdownView);if(e){let o=e.editor,a=o.getSelection(),l=e.file;if(""!==a){let t;"markdown"===i?t=yield c(a,l,n):"wiki"===i&&(t=yield h(a,l,n)),o.replaceSelection(t)}else new t.Notice("You didn't select any text.")}else new t.Notice("There is no active leaf open.",3e3)})),C=(t,i)=>e(void 0,void 0,void 0,(function*(){s(t.app.vault.getRoot(),t,i)})),d=(t,e,i)=>{let n=t.metadataCache.getCache(e);return n.frontmatter&&n.frontmatter[i]},c=(t,i,n)=>e(void 0,void 0,void 0,(function*(){let e=t,a=yield o(i,n),l=a.filter((t=>"wiki"===t.type));for(let t of l){let o=p("markdown",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}let s=a.filter((t=>"wikiTransclusion"===t.type));for(let t of s){let o=p("mdTransclusion",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}return e})),h=(t,i,n)=>e(void 0,void 0,void 0,(function*(){let e=t,a=yield o(i,n),l=a.filter((t=>"markdown"===t.type));for(let t of l){let o=p("wiki",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}let s=a.filter((t=>"mdTransclusion"===t.type));for(let t of s){let o=p("wikiTransclusion",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}return e})),L=(t,e,i,n)=>{let o;if("absolute-path"===n)o=t.path;else if("relative-path"===n)o=function(t,e){function i(t){let e=0;for(;e=0&&""===t[i];i--);return e>i?[]:t.slice(e,i-e+1)}for(var n=i(t.split("/")),o=i(e.split("/")),a=Math.min(n.length,o.length),l=a,s=0;se.name===t.name)).length>1?t.path:t.name}return o.endsWith(".md")&&(o=o.replace(".md","")),o},p=(t,e,i,n,o)=>{let a,l=e,s=decodeURI(l),r=o.app.metadataCache.getFirstLinkpathDest(s,n.path);r&&"not-change"!==o.settings.finalLinkFormat&&(l=L(r,n,o,o.settings.finalLinkFormat));const C=r&&"md"===r.extension?`.${r.extension}`:"";if("wiki"===t)return a=""!==i&&i!==decodeURI(l)?r&&decodeURI(i)===r.basename?"":"|"+i:"",`[[${decodeURI(l)}${a}]]`;if("markdown"===t)return a=""!==i?i:r?r.basename:l,`[${a}](${u(l)}${C})`;if("wikiTransclusion"===t)return`[[${decodeURI(l)}#${decodeURI(i)}]]`;if("mdTransclusion"===t){let t=i;return i.startsWith("^")?(t=u(t.slice(1)),t=`^${t}`):t=u(t),`[](${u(l)}${C}#${t})`}return""};function u(t){return t.replace(/[\\\x00\x08\x0B\x0C\x0E-\x1F ]/g,(t=>encodeURIComponent(t)))}const f=/\[\[(.*?)#.*?\]\]/,k=/(?<=\[\[)(.*)(?=#)/,m=/(?<=#).*?(?=]])/,g=/\[.*?]\((.*?)#.*?\)/,v=/(?<=\]\()(.*)(?=#)/,w=/(?<=#).*?(?=\))/,M=t=>f.test(t),y=t=>g.test(t),x=t=>{let e=f.test(t),i=g.test(t);if(e||i){let i=t.match(e?k:v);if(i)return i[0]}return""},A=t=>{let e=f.test(t),i=g.test(t);if(e||i){let i=t.match(e?m:w);if(i)return i[0]}return""};class F extends t.Modal{constructor(t,e,i){super(t),this.message=e,this.callback=i}onOpen(){let{contentEl:t}=this,e=t.createEl("div");e.addClass("oz-modal-center"),e.innerHTML=`\n
    \n

    Link Converter Plugin

    \n
    \n

    ${this.message}

    \n `,t.createEl("button",{text:"Continue"}).addEventListener("click",(()=>{this.callback(),this.close()}));const i=t.createEl("button",{text:"Cancel"});i.style.cssText="float: right;",i.addEventListener("click",(()=>this.close()))}}class T extends t.FuzzySuggestModal{constructor(t,e){super(t.app),this.plugin=t,this.finalFormat=e}getItemText(t){return t.path}getItems(){return function(e){let i=[],n=e.vault.getRoot();function o(e){for(let n of e.children)if(n instanceof t.TFolder){let t=n;i.push(t),t.children&&o(t)}}return i.push(n),o(n),i}(this.app)}onChooseItem(t,e){let i=`Are you sure you want to convert all \n ${"wiki"===this.finalFormat?"Markdown Links to Wikilinks":"Wikilinks to Markdown Links"} \n under ${t.name}?`;new F(this.app,i,(()=>s(t,this.plugin,this.finalFormat))).open()}}class z extends t.Plugin{constructor(){super(...arguments),this.addFileMenuItems=(i,n)=>{if(n instanceof t.TFile&&"md"===n.extension){if(i.addSeparator(),i.addItem((t=>{t.setTitle("Markdown Links to Wiki").setIcon("bracketIcon").onClick((()=>a(n,this,"wiki")))})),i.addItem((t=>{t.setTitle("WikiLinks to Markdown").setIcon("markdownIcon").onClick((()=>a(n,this,"markdown")))})),"not-change"!==this.settings.finalLinkFormat){let a=this.settings.finalLinkFormat;i.addItem((i=>{i.setTitle("All Links to "+("absolute-path"===a?"Absolute Path":"shortest-path"===a?"Shortest Path":"Relative Path")).setIcon("linkEditIcon").onClick((()=>((i,n,a)=>e(void 0,void 0,void 0,(function*(){let e=yield n.app.vault.read(i),l=yield o(i,n);for(let t of l){let o=decodeURI(t.linkText),l=n.app.metadataCache.getFirstLinkpathDest(o,t.sourceFilePath);l&&(o=L(l,i,n,a),e=e.replace(t.match,p(t.type,o,t.altOrBlockRef,i,n)))}let s=n.settings.keepMtime?yield n.app.vault.adapter.stat(t.normalizePath(i.path)):{};yield n.app.vault.modify(i,e,s)})))(n,this,a)))}))}i.addSeparator()}}}onload(){return e(this,void 0,void 0,(function*(){console.log("Link Converter Loading..."),t.addIcon("bracketIcon",''),t.addIcon("markdownIcon",''),t.addIcon("linkEditIcon",' '),yield this.loadSettings(),this.addSettingTab(new n(this.app,this)),this.addCommand({id:"convert-wikis-to-md-in-active-file",name:"Active File: Links to Markdown",callback:()=>{l(this,"markdown")}}),this.addCommand({id:"convert-md-to-wikis-in-active-file",name:"Active File: Links to Wiki",callback:()=>{l(this,"wiki")}}),this.addCommand({id:"convert-wikis-to-md-in-vault",name:"Vault: Links to Markdown",callback:()=>{new F(this.app,"Are you sure you want to convert all Wikilinks to Markdown Links?",(()=>C(this,"markdown"))).open()}}),this.addCommand({id:"convert-mdlinks-to-wiki-in-vault",name:"Vault: Links to Wiki",callback:()=>{new F(this.app,"Are you sure you want to convert all Markdown Links to Wikilinks?",(()=>C(this,"wiki"))).open()}}),this.addCommand({id:"convert-wikis-to-mdlink-under-folder",name:"Certain Folder: Links to Markdown",callback:()=>{new T(this,"markdown").open()}}),this.addCommand({id:"convert-mdlinks-to-wikis-under-folder",name:"Certain Folder: Links to Wiki",callback:()=>{new T(this,"wiki").open()}}),this.addCommand({id:"convert-wikis-to-mdlinks-within-selection",name:"Editor Selection: Links to Markdown",callback:()=>e(this,void 0,void 0,(function*(){return r("markdown",this)}))}),this.addCommand({id:"convert-mdlinks-to-wiki-within-selection",name:"Editor Selection: Links to Wiki",callback:()=>e(this,void 0,void 0,(function*(){return r("wiki",this)}))}),this.settings.contextMenu&&this.app.workspace.on("file-menu",this.addFileMenuItems)}))}onunload(){console.log("Link Converter Unloading..."),this.app.workspace.off("file-menu",this.addFileMenuItems)}loadSettings(){return e(this,void 0,void 0,(function*(){this.settings=Object.assign({},i,yield this.loadData())}))}saveSettings(){return e(this,void 0,void 0,(function*(){yield this.saveData(this.settings)}))}}module.exports=z; + + +/* nosourcemap */ \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/obsidian-link-converter/manifest.json b/content/notes/.obsidian/plugins/obsidian-link-converter/manifest.json new file mode 100644 index 0000000..a2c8d73 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-link-converter/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-link-converter", + "name": "Link Converter", + "version": "0.1.6", + "minAppVersion": "0.9.12", + "description": "Scan all your links in the vault and convert them to your desired format.", + "author": "Ozan Tellioglu", + "authorUrl": "https://ozan.pl", + "isDesktopOnly": false +} diff --git a/content/notes/.obsidian/plugins/obsidian-link-converter/styles.css b/content/notes/.obsidian/plugins/obsidian-link-converter/styles.css new file mode 100644 index 0000000..bbd6b7f --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-link-converter/styles.css @@ -0,0 +1,4 @@ +.oz-coffee-div { + text-align: center; + margin-top: 20px; +} diff --git a/content/notes/.obsidian/plugins/obsidian-linter/data.json b/content/notes/.obsidian/plugins/obsidian-linter/data.json new file mode 100644 index 0000000..61d0a83 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-linter/data.json @@ -0,0 +1,293 @@ +{ + "ruleConfigs": { + "add-blank-line-after-yaml": { + "enabled": false + }, + "dedupe-yaml-array-values": { + "enabled": false, + "dedupe-alias-key": true, + "dedupe-tag-key": true, + "dedupe-array-keys": true, + "ignore-keys": "" + }, + "escape-yaml-special-characters": { + "enabled": false, + "try-to-escape-single-line-arrays": false + }, + "force-yaml-escape": { + "enabled": false, + "force-yaml-escape-keys": "" + }, + "format-tags-in-yaml": { + "enabled": false + }, + "format-yaml-array": { + "enabled": false, + "alias-key": true, + "tag-key": true, + "default-array-style": "single-line", + "default-array-keys": true, + "force-single-line-array-style": "", + "force-multi-line-array-style": "" + }, + "insert-yaml-attributes": { + "enabled": false, + "text-to-insert": "aliases: \ntags: " + }, + "move-tags-to-yaml": { + "enabled": false, + "how-to-handle-existing-tags": "Nothing", + "tags-to-ignore": "" + }, + "remove-yaml-keys": { + "enabled": false, + "yaml-keys-to-remove": "" + }, + "sort-yaml-array-values": { + "enabled": false, + "sort-alias-key": true, + "sort-tag-key": true, + "sort-array-keys": true, + "ignore-keys": "", + "sort-order": "Ascending Alphabetical" + }, + "yaml-key-sort": { + "enabled": false, + "yaml-key-priority-sort-order": "", + "priority-keys-at-start-of-yaml": true, + "yaml-sort-order-for-other-keys": "None" + }, + "yaml-timestamp": { + "enabled": false, + "date-created": true, + "date-created-key": "date created", + "date-created-source-of-truth": "file system", + "date-modified": true, + "date-modified-key": "date modified", + "date-modified-source-of-truth": "file system", + "format": "dddd, MMMM Do YYYY, h:mm:ss a", + "convert-to-utc": false, + "update-on-file-contents-updated": "never" + }, + "yaml-title": { + "enabled": false, + "title-key": "title", + "mode": "first-h1-or-filename-if-h1-missing" + }, + "yaml-title-alias": { + "enabled": false, + "preserve-existing-alias-section-style": true, + "keep-alias-that-matches-the-filename": false, + "use-yaml-key-to-keep-track-of-old-filename-or-heading": true, + "alias-helper-key": "linter-yaml-title-alias" + }, + "capitalize-headings": { + "enabled": true, + "style": "Title Case", + "ignore-case-words": true, + "ignore-words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript, I", + "lowercase-words": "a, an, the, aboard, about, abt., above, abreast, absent, across, after, against, along, aloft, alongside, amid, amidst, mid, midst, among, amongst, anti, apropos, around, round, as, aslant, astride, at, atop, ontop, bar, barring, before, B4, behind, below, beneath, neath, beside, besides, between, 'tween, beyond, but, by, chez, circa, c., ca., come, concerning, contra, counting, cum, despite, spite, down, during, effective, ere, except, excepting, excluding, failing, following, for, from, in, including, inside, into, less, like, minus, modulo, mod, near, nearer, nearest, next, notwithstanding, of, o', off, offshore, on, onto, opposite, out, outside, over, o'er, pace, past, pending, per, plus, post, pre, pro, qua, re, regarding, respecting, sans, save, saving, short, since, sub, than, through, thru, throughout, thruout, till, times, to, t', touching, toward, towards, under, underneath, unlike, until, unto, up, upon, versus, vs., v., via, vice, vis-à-vis, wanting, with, w/, w., c̄, within, w/i, without, 'thout, w/o, abroad, adrift, aft, afterward, afterwards, ahead, apart, ashore, aside, away, back, backward, backwards, beforehand, downhill, downstage, downstairs, downstream, downward, downwards, downwind, east, eastward, eastwards, forth, forward, forwards, heavenward, heavenwards, hence, henceforth, here, hereby, herein, hereof, hereto, herewith, home, homeward, homewards, indoors, inward, inwards, leftward, leftwards, north, northeast, northward, northwards, northwest, now, onward, onwards, outdoors, outward, outwards, overboard, overhead, overland, overseas, rightward, rightwards, seaward, seawards, skywards, skyward, south, southeast, southwards, southward, southwest, then, thence, thenceforth, there, thereby, therein, thereof, thereto, therewith, together, underfoot, underground, uphill, upstage, upstairs, upstream, upward, upwards, upwind, west, westward, westwards, when, whence, where, whereby, wherein, whereto, wherewith, although, because, considering, given, granted, if, lest, once, provided, providing, seeing, so, supposing, though, unless, whenever, whereas, wherever, while, whilst, ago, according to, as regards, counter to, instead of, owing to, pertaining to, at the behest of, at the expense of, at the hands of, at risk of, at the risk of, at variance with, by dint of, by means of, by virtue of, by way of, for the sake of, for sake of, for lack of, for want of, from want of, in accordance with, in addition to, in case of, in charge of, in compliance with, in conformity with, in contact with, in exchange for, in favor of, in front of, in lieu of, in light of, in the light of, in line with, in place of, in point of, in quest of, in relation to, in regard to, with regard to, in respect to, with respect to, in return for, in search of, in step with, in touch with, in terms of, in the name of, in view of, on account of, on behalf of, on grounds of, on the grounds of, on the part of, on top of, with a view to, with the exception of, à la, a la, as soon as, as well as, close to, due to, far from, in case, other than, prior to, pursuant to, regardless of, subsequent to, as long as, as much as, as far as, by the time, in as much as, inasmuch, in order to, in order that, even, provide that, if only, whether, whose, whoever, why, how, or not, whatever, what, both, and, or, not only, but also, either, neither, nor, just, rather, no sooner, such, that, yet, is, it" + }, + "file-name-heading": { + "enabled": false + }, + "header-increment": { + "enabled": true, + "start-at-h2": true + }, + "headings-start-line": { + "enabled": true + }, + "remove-trailing-punctuation-in-heading": { + "enabled": false, + "punctuation-to-remove": ".,;:!。,;:!" + }, + "footnote-after-punctuation": { + "enabled": false + }, + "move-footnotes-to-the-bottom": { + "enabled": false + }, + "re-index-footnotes": { + "enabled": false + }, + "auto-correct-common-misspellings": { + "enabled": false, + "ignore-words": "", + "skip-words-with-multiple-capitals": false, + "extra-auto-correct-files": [] + }, + "blockquote-style": { + "enabled": true, + "style": "space" + }, + "convert-bullet-list-markers": { + "enabled": false + }, + "default-language-for-code-fences": { + "enabled": false, + "default-language": "" + }, + "emphasis-style": { + "enabled": true, + "style": "asterisk" + }, + "no-bare-urls": { + "enabled": false, + "no-bare-uris": false + }, + "ordered-list-style": { + "enabled": true, + "number-style": "ascending", + "list-end-style": ".", + "preserve-start": true + }, + "proper-ellipsis": { + "enabled": false + }, + "quote-style": { + "enabled": true, + "single-quote-enabled": true, + "single-quote-style": "''", + "double-quote-enabled": true, + "double-quote-style": "\"\"" + }, + "remove-consecutive-list-markers": { + "enabled": true + }, + "remove-empty-list-markers": { + "enabled": true + }, + "remove-hyphenated-line-breaks": { + "enabled": true + }, + "remove-multiple-spaces": { + "enabled": true + }, + "strong-style": { + "enabled": true, + "style": "asterisk" + }, + "two-spaces-between-lines-with-content": { + "enabled": true, + "line-break-indicator": " " + }, + "unordered-list-style": { + "enabled": true, + "list-style": "-" + }, + "compact-yaml": { + "enabled": false, + "inner-new-lines": false + }, + "consecutive-blank-lines": { + "enabled": false + }, + "convert-spaces-to-tabs": { + "enabled": false, + "tabsize": 4 + }, + "empty-line-around-blockquotes": { + "enabled": true + }, + "empty-line-around-code-fences": { + "enabled": true + }, + "empty-line-around-horizontal-rules": { + "enabled": true + }, + "empty-line-around-math-blocks": { + "enabled": true + }, + "empty-line-around-tables": { + "enabled": true + }, + "heading-blank-lines": { + "enabled": true, + "bottom": true, + "empty-line-after-yaml": true + }, + "line-break-at-document-end": { + "enabled": true + }, + "move-math-block-indicators-to-their-own-line": { + "enabled": false + }, + "paragraph-blank-lines": { + "enabled": false + }, + "remove-empty-lines-between-list-markers-and-checklists": { + "enabled": false + }, + "remove-link-spacing": { + "enabled": false + }, + "remove-space-around-characters": { + "enabled": false, + "include-fullwidth-forms": true, + "include-cjk-symbols-and-punctuation": true, + "include-dashes": true, + "other-symbols": "" + }, + "remove-space-before-or-after-characters": { + "enabled": false, + "characters-to-remove-space-before": ",!?;:).’”]", + "characters-to-remove-space-after": "¿¡‘“([" + }, + "space-after-list-markers": { + "enabled": false + }, + "space-between-chinese-japanese-or-korean-and-english-or-numbers": { + "enabled": false, + "english-symbols-punctuation-before": "-+;:'\"°%$)]", + "english-symbols-punctuation-after": "-+'\"([¥$" + }, + "trailing-spaces": { + "enabled": false, + "twp-space-line-break": false + }, + "add-blockquote-indentation-on-paste": { + "enabled": false + }, + "prevent-double-checklist-indicator-on-paste": { + "enabled": false + }, + "prevent-double-list-item-indicator-on-paste": { + "enabled": false + }, + "proper-ellipsis-on-paste": { + "enabled": false + }, + "remove-hyphens-on-paste": { + "enabled": false + }, + "remove-leading-or-trailing-whitespace-on-paste": { + "enabled": false + }, + "remove-leftover-footnotes-from-quote-on-paste": { + "enabled": false + }, + "remove-multiple-blank-lines-on-paste": { + "enabled": false + } + }, + "lintOnSave": true, + "recordLintOnSaveLogs": false, + "displayChanged": true, + "lintOnFileChange": false, + "displayLintOnFileChangeNotice": false, + "settingsConvertedToConfigKeyValues": true, + "foldersToIgnore": [], + "filesToIgnore": [], + "linterLocale": "system-default", + "logLevel": "ERROR", + "lintCommands": [], + "customRegexes": [], + "commonStyles": { + "aliasArrayStyle": "single-line", + "tagArrayStyle": "single-line", + "minimumNumberOfDollarSignsToBeAMathBlock": 2, + "escapeCharacter": "\"", + "removeUnnecessaryEscapeCharsForMultiLineArrays": false + } +} \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/obsidian-linter/main.js b/content/notes/.obsidian/plugins/obsidian-linter/main.js new file mode 100644 index 0000000..00b3c7e --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-linter/main.js @@ -0,0 +1,325 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var mf=Object.create;var or=Object.defineProperty;var ou=Object.getOwnPropertyDescriptor;var ff=Object.getOwnPropertyNames;var gf=Object.getPrototypeOf,hf=Object.prototype.hasOwnProperty;var Tn=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),su=(e,n)=>{for(var t in n)or(e,t,{get:n[t],enumerable:!0})},lu=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of ff(n))!hf.call(e,r)&&r!==t&&or(e,r,{get:()=>n[r],enumerable:!(i=ou(n,r))||i.enumerable});return e};var Cn=(e,n,t)=>(t=e!=null?mf(gf(e)):{},lu(n||!e||!e.__esModule?or(t,"default",{value:e,enumerable:!0}):t,e)),yf=e=>lu(or({},"__esModule",{value:!0}),e),L=(e,n,t,i)=>{for(var r=i>1?void 0:i?ou(n,t):n,a=e.length-1,o;a>=0;a--)(o=e[a])&&(r=(i?o(n,t,r):o(r))||r);return i&&r&&or(n,t,r),r};var Gs=(e,n,t)=>{if(!n.has(e))throw TypeError("Cannot "+t)};var Y=(e,n,t)=>(Gs(e,n,"read from private field"),t?t.call(e):n.get(e)),xe=(e,n,t)=>{if(n.has(e))throw TypeError("Cannot add the same private member more than once");n instanceof WeakSet?n.add(e):n.set(e,t)},Fe=(e,n,t,i)=>(Gs(e,n,"write to private field"),i?i.call(e,t):n.set(e,t),t);var Zs=(e,n,t,i)=>({set _(r){Fe(e,n,r,t)},get _(){return Y(e,n,i)}}),me=(e,n,t)=>(Gs(e,n,"access private method"),t);var so=Tn((Ju,oo)=>{(function(e,n){"use strict";typeof define=="function"&&define.amd?define(n):typeof oo=="object"&&oo.exports?oo.exports=n():e.log=n()})(Ju,function(){"use strict";var e=function(){},n="undefined",t=typeof window!==n&&typeof window.navigator!==n&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},a=null;function o(f,b){var h=f[b];if(typeof h.bind=="function")return h.bind(f);try{return Function.prototype.bind.call(h,f)}catch{return function(){return Function.prototype.apply.apply(h,[f,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(f){return f==="debug"&&(f="log"),typeof console===n?!1:f==="trace"&&t?s:console[f]!==void 0?o(console,f):console.log!==void 0?o(console,"log"):e}function c(){for(var f=this.getLevel(),b=0;b=0&&V<=h.levels.SILENT)return V;throw new TypeError("log.setLevel() called with invalid level: "+z)}h.name=f,h.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},h.methodFactory=b||d,h.getLevel=function(){return S??A??k},h.setLevel=function(z,V){return S=N(z),V!==!1&&M(S),c.call(h)},h.setDefaultLevel=function(z){A=N(z),E()||h.setLevel(z,!1)},h.resetLevel=function(){S=null,O(),c.call(h)},h.enableAll=function(z){h.setLevel(h.levels.TRACE,z)},h.disableAll=function(z){h.setLevel(h.levels.SILENT,z)},h.rebuild=function(){if(a!==h&&(k=N(a.getLevel())),c.call(h),a===h)for(var z in r)r[z].rebuild()},k=N(a?a.getLevel():"WARN");var B=E();B!=null&&(S=N(B)),c.call(h)}a=new m,a.getLogger=function(b){if(typeof b!="symbol"&&typeof b!="string"||b==="")throw new TypeError("You must supply a name when creating a logger.");var h=r[b];return h||(h=r[b]=new m(b,a.methodFactory)),h};var p=typeof window!==n?window.log:void 0;return a.noConflict=function(){return typeof window!==n&&window.log===a&&(window.log=p),a},a.getLoggers=function(){return r},a.default=a,a})});var Yd=Tn((HE,Kl)=>{(function(){var e;typeof Kl<"u"?e=Kl.exports=i:e=function(){return this||(0,eval)("this")}(),e.format=i,e.vsprintf=t,typeof console<"u"&&typeof console.log=="function"&&(e.printf=n);function n(){console.log(i.apply(null,arguments))}function t(r,a){return i.apply(null,[r].concat(a))}function i(r){for(var a=1,o=[].slice.call(arguments),s=0,l=r.length,c="",u,d=!1,m,p,f=!1,b,h=function(){return o[a++]},k=function(){for(var A="";/\d/.test(r[s]);)A+=r[s++],u=r[s];return A.length>0?parseInt(A):null};s{var I=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},ie=-1,oe=1,G=0;I.Diff=function(e,n){return[e,n]};I.prototype.diff_main=function(e,n,t,i){typeof i>"u"&&(this.Diff_Timeout<=0?i=Number.MAX_VALUE:i=new Date().getTime()+this.Diff_Timeout*1e3);var r=i;if(e==null||n==null)throw new Error("Null input. (diff_main)");if(e==n)return e?[new I.Diff(G,e)]:[];typeof t>"u"&&(t=!0);var a=t,o=this.diff_commonPrefix(e,n),s=e.substring(0,o);e=e.substring(o),n=n.substring(o),o=this.diff_commonSuffix(e,n);var l=e.substring(e.length-o);e=e.substring(0,e.length-o),n=n.substring(0,n.length-o);var c=this.diff_compute_(e,n,a,r);return s&&c.unshift(new I.Diff(G,s)),l&&c.push(new I.Diff(G,l)),this.diff_cleanupMerge(c),c};I.prototype.diff_compute_=function(e,n,t,i){var r;if(!e)return[new I.Diff(oe,n)];if(!n)return[new I.Diff(ie,e)];var a=e.length>n.length?e:n,o=e.length>n.length?n:e,s=a.indexOf(o);if(s!=-1)return r=[new I.Diff(oe,a.substring(0,s)),new I.Diff(G,o),new I.Diff(oe,a.substring(s+o.length))],e.length>n.length&&(r[0][0]=r[2][0]=ie),r;if(o.length==1)return[new I.Diff(ie,e),new I.Diff(oe,n)];var l=this.diff_halfMatch_(e,n);if(l){var c=l[0],u=l[1],d=l[2],m=l[3],p=l[4],f=this.diff_main(c,d,t,i),b=this.diff_main(u,m,t,i);return f.concat([new I.Diff(G,p)],b)}return t&&e.length>100&&n.length>100?this.diff_lineMode_(e,n,i):this.diff_bisect_(e,n,i)};I.prototype.diff_lineMode_=function(e,n,t){var i=this.diff_linesToChars_(e,n);e=i.chars1,n=i.chars2;var r=i.lineArray,a=this.diff_main(e,n,!1,t);this.diff_charsToLines_(a,r),this.diff_cleanupSemantic(a),a.push(new I.Diff(G,""));for(var o=0,s=0,l=0,c="",u="";o=1&&l>=1){a.splice(o-s-l,s+l),o=o-s-l;for(var d=this.diff_main(c,u,!1,t),m=d.length-1;m>=0;m--)a.splice(o,0,d[m]);o=o+d.length}l=0,s=0,c="",u="";break}o++}return a.pop(),a};I.prototype.diff_bisect_=function(e,n,t){for(var i=e.length,r=n.length,a=Math.ceil((i+r)/2),o=a,s=2*a,l=new Array(s),c=new Array(s),u=0;ut);k++){for(var A=-k+p;A<=k-f;A+=2){var S=o+A,T;A==-k||A!=k&&l[S-1]i)f+=2;else if(M>r)p+=2;else if(m){var E=o+d-A;if(E>=0&&E=O)return this.diff_bisectSplit_(e,n,T,M,t)}}}for(var N=-k+b;N<=k-h;N+=2){var E=o+N,O;N==-k||N!=k&&c[E-1]i)h+=2;else if(B>r)b+=2;else if(!m){var S=o+d-N;if(S>=0&&S=O)return this.diff_bisectSplit_(e,n,T,M,t)}}}}return[new I.Diff(ie,e),new I.Diff(oe,n)]};I.prototype.diff_bisectSplit_=function(e,n,t,i,r){var a=e.substring(0,t),o=n.substring(0,i),s=e.substring(t),l=n.substring(i),c=this.diff_main(a,o,!1,r),u=this.diff_main(s,l,!1,r);return c.concat(u)};I.prototype.diff_linesToChars_=function(e,n){var t=[],i={};t[0]="";function r(l){for(var c="",u=0,d=-1,m=t.length;di?e=e.substring(t-i):tn.length?e:n,i=e.length>n.length?n:e;if(t.length<4||i.length*2=f.length?[T,M,E,O,S]:null}var o=a(t,i,Math.ceil(t.length/4)),s=a(t,i,Math.ceil(t.length/2)),l;if(!o&&!s)return null;s?o?l=o[4].length>s[4].length?o:s:l=s:l=o;var c,u,d,m;e.length>n.length?(c=l[0],u=l[1],d=l[2],m=l[3]):(d=l[0],m=l[1],c=l[2],u=l[3]);var p=l[4];return[c,u,d,m,p]};I.prototype.diff_cleanupSemantic=function(e){for(var n=!1,t=[],i=0,r=null,a=0,o=0,s=0,l=0,c=0;a0?t[i-1]:-1,o=0,s=0,l=0,c=0,r=null,n=!0)),a++;for(n&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),a=1;a=p?(m>=u.length/2||m>=d.length/2)&&(e.splice(a,0,new I.Diff(G,d.substring(0,m))),e[a-1][1]=u.substring(0,u.length-m),e[a+1][1]=d.substring(m),a++):(p>=u.length/2||p>=d.length/2)&&(e.splice(a,0,new I.Diff(G,u.substring(0,p))),e[a-1][0]=oe,e[a-1][1]=d.substring(0,d.length-p),e[a+1][0]=ie,e[a+1][1]=u.substring(p),a++),a++}a++}};I.prototype.diff_cleanupSemanticLossless=function(e){function n(p,f){if(!p||!f)return 6;var b=p.charAt(p.length-1),h=f.charAt(0),k=b.match(I.nonAlphaNumericRegex_),A=h.match(I.nonAlphaNumericRegex_),S=k&&b.match(I.whitespaceRegex_),T=A&&h.match(I.whitespaceRegex_),M=S&&b.match(I.linebreakRegex_),E=T&&h.match(I.linebreakRegex_),O=M&&p.match(I.blanklineEndRegex_),N=E&&f.match(I.blanklineStartRegex_);return O||N?5:M||E?4:k&&!S&&T?3:S||T?2:k||A?1:0}for(var t=1;t=d&&(d=m,l=i,c=r,u=a)}e[t-1][1]!=l&&(l?e[t-1][1]=l:(e.splice(t-1,1),t--),e[t][1]=c,u?e[t+1][1]=u:(e.splice(t+1,1),t--))}t++}};I.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;I.whitespaceRegex_=/\s/;I.linebreakRegex_=/[\r\n]/;I.blanklineEndRegex_=/\n\r?\n$/;I.blanklineStartRegex_=/^\r?\n\r?\n/;I.prototype.diff_cleanupEfficiency=function(e){for(var n=!1,t=[],i=0,r=null,a=0,o=!1,s=!1,l=!1,c=!1;a0?t[i-1]:-1,l=c=!1),n=!0)),a++;n&&this.diff_cleanupMerge(e)};I.prototype.diff_cleanupMerge=function(e){e.push(new I.Diff(G,""));for(var n=0,t=0,i=0,r="",a="",o;n1?(t!==0&&i!==0&&(o=this.diff_commonPrefix(a,r),o!==0&&(n-t-i>0&&e[n-t-i-1][0]==G?e[n-t-i-1][1]+=a.substring(0,o):(e.splice(0,0,new I.Diff(G,a.substring(0,o))),n++),a=a.substring(o),r=r.substring(o)),o=this.diff_commonSuffix(a,r),o!==0&&(e[n][1]=a.substring(a.length-o)+e[n][1],a=a.substring(0,a.length-o),r=r.substring(0,r.length-o))),n-=t+i,e.splice(n,t+i),r.length&&(e.splice(n,0,new I.Diff(ie,r)),n++),a.length&&(e.splice(n,0,new I.Diff(oe,a)),n++),n++):n!==0&&e[n-1][0]==G?(e[n-1][1]+=e[n][1],e.splice(n,1)):n++,i=0,t=0,r="",a="";break}e[e.length-1][1]===""&&e.pop();var s=!1;for(n=1;nn));o++)r=t,a=i;return e.length!=o&&e[o][0]===ie?a:a+(n-r)};I.prototype.diff_prettyHtml=function(e){for(var n=[],t=/&/g,i=//g,a=/\n/g,o=0;o");switch(s){case oe:n[o]=''+c+"";break;case ie:n[o]=''+c+"";break;case G:n[o]=""+c+"";break}}return n.join("")};I.prototype.diff_text1=function(e){for(var n=[],t=0;tthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var i=this.match_alphabet_(n),r=this;function a(T,M){var E=T/n.length,O=Math.abs(t-M);return r.Match_Distance?E+O/r.Match_Distance:O?1:E}var o=this.Match_Threshold,s=e.indexOf(n,t);s!=-1&&(o=Math.min(a(0,s),o),s=e.lastIndexOf(n,t+n.length),s!=-1&&(o=Math.min(a(0,s),o)));var l=1<=f;k--){var A=i[e.charAt(k-1)];if(p===0?h[k]=(h[k+1]<<1|1)&A:h[k]=(h[k+1]<<1|1)&A|((m[k+1]|m[k])<<1|1)|m[k+1],h[k]&l){var S=a(p,k-1);if(S<=o)if(o=S,s=k-1,s>t)f=Math.max(1,2*t-s);else break}}if(a(p+1,t)>o)break;m=h}return s};I.prototype.match_alphabet_=function(e){for(var n={},t=0;t"u")i=e,r=this.diff_main(i,n,!0),r.length>2&&(this.diff_cleanupSemantic(r),this.diff_cleanupEfficiency(r));else if(e&&typeof e=="object"&&typeof n>"u"&&typeof t>"u")r=e,i=this.diff_text1(r);else if(typeof e=="string"&&n&&typeof n=="object"&&typeof t>"u")i=e,r=n;else if(typeof e=="string"&&typeof n=="string"&&t&&typeof t=="object")i=e,r=t;else throw new Error("Unknown call format to patch_make.");if(r.length===0)return[];for(var a=[],o=new I.patch_obj,s=0,l=0,c=0,u=i,d=i,m=0;m=2*this.Patch_Margin&&s&&(this.patch_addContext_(o,u),a.push(o),o=new I.patch_obj,s=0,u=d,l=c);break}p!==oe&&(l+=f.length),p!==ie&&(c+=f.length)}return s&&(this.patch_addContext_(o,u),a.push(o)),a};I.prototype.patch_deepCopy=function(e){for(var n=[],t=0;tthis.Match_MaxBits?(l=this.match_main(n,s.substring(0,this.Match_MaxBits),o),l!=-1&&(c=this.match_main(n,s.substring(s.length-this.Match_MaxBits),o+s.length-this.Match_MaxBits),(c==-1||l>=c)&&(l=-1))):l=this.match_main(n,s,o),l==-1)r[a]=!1,i-=e[a].length2-e[a].length1;else{r[a]=!0,i=l-o;var u;if(c==-1?u=n.substring(l,l+s.length):u=n.substring(l,c+this.Match_MaxBits),s==u)n=n.substring(0,l)+this.diff_text2(e[a].diffs)+n.substring(l+s.length);else{var d=this.diff_main(s,u,!1);if(s.length>this.Match_MaxBits&&this.diff_levenshtein(d)/s.length>this.Patch_DeleteThreshold)r[a]=!1;else{this.diff_cleanupSemanticLossless(d);for(var m=0,p,f=0;fa[0][1].length){var o=n-a[0][1].length;a[0][1]=t.substring(a[0][1].length)+a[0][1],r.start1-=o,r.start2-=o,r.length1+=o,r.length2+=o}if(r=e[e.length-1],a=r.diffs,a.length==0||a[a.length-1][0]!=G)a.push(new I.Diff(G,t)),r.length1+=n,r.length2+=n;else if(n>a[a.length-1][1].length){var o=n-a[a.length-1][1].length;a[a.length-1][1]+=t.substring(0,o),r.length1+=o,r.length2+=o}return t};I.prototype.patch_splitMax=function(e){for(var n=this.Match_MaxBits,t=0;t2*n?(s.length1+=u.length,r+=u.length,l=!1,s.diffs.push(new I.Diff(c,u)),i.diffs.shift()):(u=u.substring(0,n-s.length1-this.Patch_Margin),s.length1+=u.length,r+=u.length,c===G?(s.length2+=u.length,a+=u.length):l=!1,s.diffs.push(new I.Diff(c,u)),u==i.diffs[0][1]?i.diffs.shift():i.diffs[0][1]=i.diffs[0][1].substring(u.length))}o=this.diff_text2(s.diffs),o=o.substring(o.length-this.Patch_Margin);var d=this.diff_text1(i.diffs).substring(0,this.Patch_Margin);d!==""&&(s.length1+=d.length,s.length2+=d.length,s.diffs.length!==0&&s.diffs[s.diffs.length-1][0]===G?s.diffs[s.diffs.length-1][1]+=d:s.diffs.push(new I.Diff(G,d))),l||e.splice(++t,0,s)}}};I.prototype.patch_toText=function(e){for(var n=[],t=0;t{Ym.exports=hA;var pw=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],mw=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],fw=["Su","Mo","Tu","We","Th","Fr","Sa"],Ms=["January","February","March","April","May","June","July","August","September","October","November","December"],gw=["ACDT","ACST","ACWT","ADT","ACT","AEDT","AEST","AFT","AKDT","AKST","ALMT","AMT","AMST","ANAT","ANAST","AQTT","ART","AST","AWDT","AWST","AZOT","AZOST","AZT","AZST","BNT","BDT","BOT","BRT","BRST","BST","BTT","B","CAST","CAT","CCT","CDT","CEDT","CEST","CET","CHADT","CHAST","CHOT","CHOST","CHsT","CHUT","CIT","CKT","CLST","CLT","COT","CST","CVT","CWST","CXT","C","DAVT","DDUT","DST","EASST","EAST","EAT","ECT","EDT","EEDT","EEST","EET","EGT","EGST","EST","E","EIT","FET","FJT","FJST","FKST","FKT","FNT","F","GALT","GAMT","GET","GFT","GILT","GMT","GST","GYT","G","HADT","HAST","HKT","HOVT","HOVST","HST","ICT","IDT","IOT","IRDT","IRKT","IRKST","IRST","IST","JST","KGT","KOST","KRAT","KRAST","KST","KUYT","LHDT","LHST","LINT","L","MAGT","MAGST","MART","MAWT","MDT","MeST","MHT","MIST","MMT","MSD","MSK","MST","MUT","MVT","MYT","NCT","NDT","NFT","N","NOVT","NOVST","NPT","NRT","NST","NT","NUT","NZDT","NZST","OMST","OMSST","ORAT","O","PDT","PET","PETT","PETST","PGT","PHT","PHOT","PKT","PMDT","PMST","PONT","PST","PWT","PYT","PYST","P","QYZT","RET","ROTT","R","SAKT","SAMT","SAST","SBT","SCT","SGT","SRT","SLT","SLST","SRET","SST","SYOT","TAHT","TFT","TJT","TKT","TLT","TMT","TOT","TRUT","TVT","T","ULAT","ULAST","UTC","UYST","UYT","UZT","U","VET","VLAT","VLAST","VOLT","VUT","V","WAKT","WAT","WAST","WDT","WEDT","WEST","WET","WFT","WGT","WGST","WIB","WIT","WITA","WST","WT","YAKT","YAKST","YAP","YEK","YEKS"],Is=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hw=new RegExp(pw.join("|"),"i"),yw=new RegExp(mw.join("|"),"i"),bw=new RegExp("\\b("+fw.join("|")+")\\b","i"),vw=new RegExp(Ms.join("|"),"i"),kw=new RegExp(Is.join("|"),"i"),ww=new RegExp("\\b("+gw.join("|")+")\\b","i"),Aw=/(\d+)(st|nd|rd|th)\b/i,xw=/(\d{1,4})([/.-])(\d{1,2})[/.-](\d{1,4})/,Lw=/((\+|-)(12:00|11:00|10:00|09:30|09:00|08:00|07:00|06:00|05:00|04:00|03:30|03:00|02:00|01:00|00:00|01:00|02:00|03:00|03:30|04:00|04:30|05:00|05:30|05:45|06:00|06:30|07:00|08:00|08:45|09:00|09:30|10:00|10:30|11:00|12:00|12:45|13:00|14:00))$/,Sw=/((\+|-)(1200|1100|1000|0930|0900|0800|0700|0600|0500|0400|0330|0300|0200|0100|0000|0100|0200|0300|0330|0400|0430|0500|0530|0545|0600|0630|0700|0800|0845|0900|0930|1000|1030|1100|1200|1245|1300|1400))$/,Ji="("+["AM?","PM?"].join("|")+")",Ew=new RegExp("0\\d\\:\\d{1,2}\\:\\d{1,2}(\\s*)"+Ji,"i"),Tw=new RegExp("0\\d\\:\\d{1,2}(\\s*)"+Ji,"i"),Cw=new RegExp("0\\d(\\s*)"+Ji,"i"),Ow=new RegExp("\\d{1,2}\\:\\d{1,2}\\:\\d{1,2}(\\s*)"+Ji,"i"),Mw=new RegExp("\\d{1,2}\\:\\d{1,2}(\\s*)"+Ji,"i"),Iw=new RegExp("\\d{1,2}(\\s*)"+Ji,"i"),Fw=new RegExp("\\d{1,2}"),Rw=new RegExp(Ms.join("|")+"-\\d{2}","i"),Bw=new RegExp(Is.join("|")+"-\\d{2}","i"),Xc=new RegExp("(\\d{1,2})(\\D+)("+Ms.join("|")+"|"+Is.join("|")+")(\\2)('?\\d{2,4})"),Dw=/\d{2}:\d{2}:\d{2}\.\d{3}/,Kw=/\d{2}:\d{2}:\d{2}\.\d{2}/,zw=/\d{2}:\d{2}:\d{2}\.\d{1}/,Nw=/T\d{2}:\d{2}:\d{2}/,Yw=/0\d:\d{2}:\d{2}/,_w=/0\d:\d{2}/,Pw=/\b([01]?[0-9]|2[0-3]):[0-5][0-9]:\d{2}/,Hw=/\b([01]?[0-9]|2[0-3]):[0-5][0-9]:\d{2}\.\d{3}/,qw=/\b([01]?[0-9]|2[0-3]):[0-5][0-9]:\d{2}\.\d{2}/,Uw=/\b([01]?[0-9]|2[0-3]):[0-5][0-9]:\d{2}\.\d{1}/,Ww=/\b([01]?[0-9]|2[0-3]):[0-5][0-9]/,Vw=/24:00:\d{2}/,jw=/24:00:\d{2}\.\d{3}/,$w=/24:00:\d{2}\.\d{2}/,Gw=/24:00:\d{2}\.\d{1}/,Zw=/24:00/,Qw=/\d{4}/,Jw=/\d{2}/,Xw=/'\d{2}/,Bm=/0\d/,Dm=/\d{1,2}/,eA=/0\d/,tA=/\d{1,2}/,nA=/^([1-9])\/([1-9]|0[1-9])$/,iA=/^([1-9])\/(1[012])$/,rA=/^(0[1-9]|[12][0-9]|3[01])\/([1-9])$/,aA=/^(0[1-9]|[12][0-9]|3[01])\/(1[012]|0[1-9])$/,oA=/^([1-9])(\D)([1-9][0-9])$/,sA=/^([1-9])(\D)([0][0-9])$/,lA=/^(0[1-9]|1[012])(\D)([1-9][0-9])$/,cA=/^(0[1-9]|1[012])(\D)([0][0-9])$/,eu=/([/][M]|[M][/]|[MM]|[MMMM])/,Km=/(D)/,tu=/(Y)/,zm=/\d+\D.+$/,Nm=/\D+(\d+)($|Z)/,uA=/M\s*\d{1,2}\b.+$/,dA=/M\D+(0[1-9])\b.+$/,Os=/\d+\s+(H|h|k)/,pA=/\b(at)\b/i,mA=/\d{13}/,fA=/\d{10}/,gA={"/":"MDY",".":"DMY","-":"YMD"};function hA(e,n){var t=e.toString();if(n=n||{},n.preferredOrder=n.preferredOrder||gA,t=t.replace(mA,"x"),t=t.replace(fA,"X"),t=t.replace(pA,"[$1]"),t.match(Xc)){let[,c,u,d,m,p]=t.match(Xc),f=[];c.length===2&&c[0]==="0"||n.preferLongFormat?f.push("DD"):f.push("D"),f.push(u),d.match(Ms)?f.push("MMMM"):d.match(Is)?f.push("MMM"):f.push(d),f.push(m),p[0]==="'"?f.push("'YY"):p.length===2?f.push("YY"):(p.length,f.push("YYYY"));var i=f.join("");t=t.replace(Xc,i)}t=t.replace(hw,"dddd"),t=t.replace(yw,"ddd"),t=t.replace(bw,"dd"),t=t.replace(Aw,"Do"),t=t.replace(vw,"MMMM"),t=t.replace(kw,"MMM"),t=t.replace(xw,yA.bind(null,n)),t=t.replace(ww,c=>"["+c+"]"),t=t.replace(Lw,"Z"),t=t.replace(Sw,"ZZ"),t=t.replace(Dw,"HH:mm:ss.SSS"),t=t.replace(Kw,"HH:mm:ss.SS"),t=t.replace(zw,"HH:mm:ss.S"),t=t.replace(Nw,"THH:mm:ss");function r(c){return function(u,d,m){return c+d+(m[0].toUpperCase()===m[0]?"A":"a")}}if(t=t.replace(Ew,r("hh:mm:ss")),t=t.replace(Ow,r("h:mm:ss")),t=t.replace(Tw,r("hh:mm")),t=t.replace(Mw,r("h:mm")),t=t.replace(Cw,r("hh")),t=t.replace(Iw,r("h")),t=t.replace(Yw,"HH:mm:ss"),t=t.replace(Hw,"H:mm:ss.SSS"),t=t.replace(jw,(n.preferLongFormat?"kk":"k")+":mm:ss.SSS"),t=t.replace(qw,"H:mm:ss.SS"),t=t.replace($w,(n.preferLongFormat?"kk":"k")+":mm:ss.SS"),t=t.replace(Uw,"H:mm:ss.S"),t=t.replace(Gw,(n.preferLongFormat?"kk":"k")+":mm:ss.S"),t=t.replace(Pw,"H:mm:ss"),t=t.replace(Vw,(n.preferLongFormat?"kk":"k")+":mm:ss"),t=t.replace(_w,"HH:mm"),t=t.replace(Ww,"H:mm"),t=t.replace(Zw,(n.preferLongFormat?"kk":"k")+":mm"),t=t.replace(Qw,"YYYY"),t=t.replace(Xw,"'YY"),t=t.replace(Rw,"MMMM-YY"),t=t.replace(Bw,"MMM-YY"),t=t.replace(nA,"D/M"),t=t.replace(iA,"D/MM"),t=t.replace(rA,"DD/M"),t=t.replace(aA,"DD/MM"),t=t.replace(oA,"M$2YY"),t=t.replace(lA,"MM$2YY"),t=t.replace(sA,"M$2DD"),t=t.replace(cA,"MM$2DD"),t.match(eu)){var a=/0\d\.\d{2}|\d{2}\.\d{2}/,o=/\d{1}\.\d{2}/;t=t.replace(a,"H.mm"),t=t.replace(o,"h.mm")}if(!t.match(eu)&&t.match(tu)&&(t=t.replace(eA,"MM")),!t.match(eu)&&t.match(tu)&&(t=t.replace(tA,n.preferLongFormat?"MM":"M")),t.match(dA)&&!t.match(Os)&&(t=t.replace(Bm,"DD")),t.match(uA)&&!t.match(Os)&&(t=t.replace(Dm,n.preferLongFormat?"DD":"D")),!t.match(Km)&&t.match(zm)&&!t.match(Os)&&(t=t.replace(Bm,"DD")),!t.match(Km)&&t.match(zm)&&!t.match(Os)&&(t=t.replace(Dm,n.preferLongFormat?"DD":"D")),t.match(tu)||(t=t.replace(Jw,"YY")),t.match(Nm)){var s=t.match(Nm)[1],l;s==="00"?l="HH":s==="24"?l=n.preferLongFormat?"kk":"k":s>12?l=n.preferLongFormat?"HH":"H":s[0]==="0"?l=n.preferLongFormat?"hh":"h":l=n.preferLongFormat?"hh":"k",t=t.replace(Fw,l)}return t.length<1&&(t=void 0),t}function yA(e,n,t,i,r,a){var o,s=0,l=1,c=2,u=[t.length===1,r.length===1,a.length===1],d=[t[0]==="0",r[0]==="0",a[0]==="0"],m=t.length===4,p=r.length===4,f=a.length===4,b=typeof e.preferredOrder=="string"?e.preferredOrder:e.preferredOrder[i];t=parseInt(t,10),r=parseInt(r,10),a=parseInt(a,10),o=[t,r,a],b=b.toUpperCase();var h=function(A,S){u[A]!==u[S]&&!d[A]&&!d[S]&&(u[A]=!0,u[S]=!0)};if(t>31)return h(l,c),o[0]=m?"YYYY":"YY",o[1]=u[l]?"M":"MM",o[2]=u[c]?"D":"DD",o.join(i);if(t>12)return h(s,l),o[0]=u[s]?"D":"DD",o[1]=u[l]?"M":"MM",o[2]=f?"YYYY":"YY",o.join(i);if(r>12)return h(s,l),o[0]=u[s]?"M":"MM",o[1]=u[l]?"D":"DD",o[2]=f?"YYYY":"YY",o.join(i);if(a>31)return o[2]=f?"YYYY":"YY",b[0]==="M"&&t<13?(h(s,l),o[0]=u[s]?"M":"MM",o[1]=u[l]?"D":"DD",o.join(i)):(h(s,l),o[0]=u[s]?"D":"DD",o[1]=u[l]?"M":"MM",o.join(i));let k=[m,p,f];return h(b.indexOf("D"),b.indexOf("M")),o[b.indexOf("D")]=u[b.indexOf("D")]?"D":"DD",o[b.indexOf("M")]=u[b.indexOf("M")]?"M":"MM",o[b.indexOf("Y")]=k[b.indexOf("Y")]?"YYYY":"YY",o.join(i)}});var qm=Tn((m_,Hm)=>{var Pm=_m();Hm.exports=Pm;typeof window<"u"&&window.moment&&(window.moment.parseFormat=Pm)});var of=Tn((Rq,af)=>{"use strict";var ut=function(e){if(e=e||{},this.Promise=e.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=e.domainReentrant||!1,this.domainReentrant){if(typeof process>"u"||typeof process.domain>"u")throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=e.timeout||ut.DEFAULT_TIMEOUT,this.maxOccupationTime=e.maxOccupationTime||ut.DEFAULT_MAX_OCCUPATION_TIME,this.maxExecutionTime=e.maxExecutionTime||ut.DEFAULT_MAX_EXECUTION_TIME,e.maxPending===1/0||Number.isInteger(e.maxPending)&&e.maxPending>=0?this.maxPending=e.maxPending:this.maxPending=ut.DEFAULT_MAX_PENDING};ut.DEFAULT_TIMEOUT=0;ut.DEFAULT_MAX_OCCUPATION_TIME=0;ut.DEFAULT_MAX_EXECUTION_TIME=0;ut.DEFAULT_MAX_PENDING=1e3;ut.prototype.acquire=function(e,n,t,i){if(Array.isArray(e))return this._acquireBatch(e,n,t,i);if(typeof n!="function")throw new Error("You must pass a function to execute");var r=null,a=null,o=null;typeof t!="function"&&(i=t,t=null,o=new this.Promise(function(A,S){r=A,a=S})),i=i||{};var s=!1,l=null,c=null,u=null,d=this,m=function(A,S,T){c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),A&&(d.queues[e]&&d.queues[e].length===0&&delete d.queues[e],d.domainReentrant&&delete d.domains[e]),s||(o?S?a(S):r(T):typeof t=="function"&&t(S,T),s=!0),A&&d.queues[e]&&d.queues[e].length>0&&d.queues[e].shift()()},p=function(A){if(s)return m(A);l&&(clearTimeout(l),l=null),d.domainReentrant&&A&&(d.domains[e]=process.domain);var S=i.maxExecutionTime||d.maxExecutionTime;if(S&&(u=setTimeout(function(){d.queues[e]&&m(A,new Error("Maximum execution time is exceeded "+e))},S)),n.length===1){var T=!1;try{n(function(M,E){T||(T=!0,m(A,M,E))})}catch(M){T||(T=!0,m(A,M))}}else d._promiseTry(function(){return n()}).then(function(M){m(A,void 0,M)},function(M){m(A,M)})};d.domainReentrant&&process.domain&&(p=process.domain.bind(p));var f=i.maxPending||d.maxPending;if(!d.queues[e])d.queues[e]=[],p(!0);else if(d.domainReentrant&&process.domain&&process.domain===d.domains[e])p(!1);else if(d.queues[e].length>=f)m(!1,new Error("Too many pending tasks in queue "+e));else{var b=function(){p(!0)};i.skipQueue?d.queues[e].unshift(b):d.queues[e].push(b);var h=i.timeout||d.timeout;h&&(l=setTimeout(function(){l=null,m(!1,new Error("async-lock timed out in queue "+e))},h))}var k=i.maxOccupationTime||d.maxOccupationTime;if(k&&(c=setTimeout(function(){d.queues[e]&&m(!1,new Error("Maximum occupation time is exceeded in queue "+e))},k)),o)return o};ut.prototype._acquireBatch=function(e,n,t,i){typeof t!="function"&&(i=t,t=null);var r=this,a=function(s,l){return function(c){r.acquire(s,l,c,i)}},o=e.reduceRight(function(s,l){return a(l,s)},n);if(typeof t=="function")o(t);else return new this.Promise(function(s,l){o.length===1?o(function(c,u){c?l(c):s(u)}):s(o())})};ut.prototype.isBusy=function(e){return e?!!this.queues[e]:Object.keys(this.queues).length>0};ut.prototype._promiseTry=function(e){try{return this.Promise.resolve(e())}catch(n){return this.Promise.reject(n)}};af.exports=ut});var lf=Tn((Bq,sf)=>{"use strict";sf.exports=of()});var WA={};su(WA,{default:()=>$s});module.exports=yf(WA);var X=require("obsidian");function Lu(e){return typeof e>"u"||e===null}function bf(e){return typeof e=="object"&&e!==null}function vf(e){return Array.isArray(e)?e:Lu(e)?[]:[e]}function kf(e,n){var t,i,r,a;if(n)for(a=Object.keys(n),t=0,i=a.length;ts&&(a=" ... ",n=i-s+a.length),t-i>s&&(o=" ...",t=i+s-o.length),{str:a+e.slice(n,t).replace(/\t/g,"\u2192")+o,pos:i-n+a.length}}function Js(e,n){return Ee.repeat(" ",n-e.length)+e}function Of(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var t=/\r?\n|\r|\0/g,i=[0],r=[],a,o=-1;a=t.exec(e.buffer);)r.push(a.index),i.push(a.index+a[0].length),e.position<=a.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s="",l,c,u=Math.min(e.line+n.linesAfter,r.length).toString().length,d=n.maxLength-(n.indent+u+3);for(l=1;l<=n.linesBefore&&!(o-l<0);l++)c=Qs(e.buffer,i[o-l],r[o-l],e.position-(i[o]-i[o-l]),d),s=Ee.repeat(" ",n.indent)+Js((e.line-l+1).toString(),u)+" | "+c.str+` +`+s;for(c=Qs(e.buffer,i[o],r[o],e.position,d),s+=Ee.repeat(" ",n.indent)+Js((e.line+1).toString(),u)+" | "+c.str+` +`,s+=Ee.repeat("-",n.indent+u+3+c.pos)+`^ +`,l=1;l<=n.linesAfter&&!(o+l>=r.length);l++)c=Qs(e.buffer,i[o+l],r[o+l],e.position-(i[o]-i[o+l]),d),s+=Ee.repeat(" ",n.indent)+Js((e.line+l+1).toString(),u)+" | "+c.str+` +`;return s.replace(/\n$/,"")}var Mf=Of,If=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Ff=["scalar","sequence","mapping"];function Rf(e){var n={};return e!==null&&Object.keys(e).forEach(function(t){e[t].forEach(function(i){n[String(i)]=t})}),n}function Bf(e,n){if(n=n||{},Object.keys(n).forEach(function(t){if(If.indexOf(t)===-1)throw new Ge('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.options=n,this.tag=e,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(t){return t},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=Rf(n.styleAliases||null),Ff.indexOf(this.kind)===-1)throw new Ge('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var Ue=Bf;function cu(e,n){var t=[];return e[n].forEach(function(i){var r=t.length;t.forEach(function(a,o){a.tag===i.tag&&a.kind===i.kind&&a.multi===i.multi&&(r=o)}),t[r]=i}),t}function Df(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,t;function i(r){r.multi?(e.multi[r.kind].push(r),e.multi.fallback.push(r)):e[r.kind][r.tag]=e.fallback[r.tag]=r}for(n=0,t=arguments.length;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),ng=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function ig(e){return!(e===null||!ng.test(e)||e[e.length-1]==="_")}function rg(e){var n,t;return n=e.replace(/_/g,"").toLowerCase(),t=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:t*parseFloat(n,10)}var ag=/^[-+]?[0-9]+e/;function og(e,n){var t;if(isNaN(e))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Ee.isNegativeZero(e))return"-0.0";return t=e.toString(10),ag.test(t)?t.replace("e",".e"):t}function sg(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Ee.isNegativeZero(e))}var lg=new Ue("tag:yaml.org,2002:float",{kind:"scalar",resolve:ig,construct:rg,predicate:sg,represent:og,defaultStyle:"lowercase"}),cg=_f.extend({implicit:[Uf,$f,tg,lg]}),ug=cg,Eu=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Tu=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function dg(e){return e===null?!1:Eu.exec(e)!==null||Tu.exec(e)!==null}function pg(e){var n,t,i,r,a,o,s,l=0,c=null,u,d,m;if(n=Eu.exec(e),n===null&&(n=Tu.exec(e)),n===null)throw new Error("Date resolve error");if(t=+n[1],i=+n[2]-1,r=+n[3],!n[4])return new Date(Date.UTC(t,i,r));if(a=+n[4],o=+n[5],s=+n[6],n[7]){for(l=n[7].slice(0,3);l.length<3;)l+="0";l=+l}return n[9]&&(u=+n[10],d=+(n[11]||0),c=(u*60+d)*6e4,n[9]==="-"&&(c=-c)),m=new Date(Date.UTC(t,i,r,a,o,s,l)),c&&m.setTime(m.getTime()-c),m}function mg(e){return e.toISOString()}var fg=new Ue("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:dg,construct:pg,instanceOf:Date,represent:mg});function gg(e){return e==="<<"||e===null}var hg=new Ue("tag:yaml.org,2002:merge",{kind:"scalar",resolve:gg}),al=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function yg(e){if(e===null)return!1;var n,t,i=0,r=e.length,a=al;for(t=0;t64)){if(n<0)return!1;i+=6}return i%8===0}function bg(e){var n,t,i=e.replace(/[\r\n=]/g,""),r=i.length,a=al,o=0,s=[];for(n=0;n>16&255),s.push(o>>8&255),s.push(o&255)),o=o<<6|a.indexOf(i.charAt(n));return t=r%4*6,t===0?(s.push(o>>16&255),s.push(o>>8&255),s.push(o&255)):t===18?(s.push(o>>10&255),s.push(o>>2&255)):t===12&&s.push(o>>4&255),new Uint8Array(s)}function vg(e){var n="",t=0,i,r,a=e.length,o=al;for(i=0;i>18&63],n+=o[t>>12&63],n+=o[t>>6&63],n+=o[t&63]),t=(t<<8)+e[i];return r=a%3,r===0?(n+=o[t>>18&63],n+=o[t>>12&63],n+=o[t>>6&63],n+=o[t&63]):r===2?(n+=o[t>>10&63],n+=o[t>>4&63],n+=o[t<<2&63],n+=o[64]):r===1&&(n+=o[t>>2&63],n+=o[t<<4&63],n+=o[64],n+=o[64]),n}function kg(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var wg=new Ue("tag:yaml.org,2002:binary",{kind:"scalar",resolve:yg,construct:bg,predicate:kg,represent:vg}),Ag=Object.prototype.hasOwnProperty,xg=Object.prototype.toString;function Lg(e){if(e===null)return!0;var n=[],t,i,r,a,o,s=e;for(t=0,i=s.length;t>10)+55296,(e-65536&1023)+56320)}var Ru=new Array(256),Bu=new Array(256);for(On=0;On<256;On++)Ru[On]=pu(On)?1:0,Bu[On]=pu(On);var On;function qg(e,n){this.input=e,this.filename=n.filename||null,this.schema=n.schema||Cu,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Du(e,n){var t={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return t.snippet=Mf(t),new Ge(n,t)}function _(e,n){throw Du(e,n)}function no(e,n){e.onWarning&&e.onWarning.call(null,Du(e,n))}var mu={YAML:function(n,t,i){var r,a,o;n.version!==null&&_(n,"duplication of %YAML directive"),i.length!==1&&_(n,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),r===null&&_(n,"ill-formed argument of the YAML directive"),a=parseInt(r[1],10),o=parseInt(r[2],10),a!==1&&_(n,"unacceptable YAML version of the document"),n.version=i[0],n.checkLineBreaks=o<2,o!==1&&o!==2&&no(n,"unsupported YAML version of the document")},TAG:function(n,t,i){var r,a;i.length!==2&&_(n,"TAG directive accepts exactly two arguments"),r=i[0],a=i[1],Iu.test(r)||_(n,"ill-formed tag handle (first argument) of the TAG directive"),nn.call(n.tagMap,r)&&_(n,'there is a previously declared suffix for "'+r+'" tag handle'),Fu.test(a)||_(n,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{_(n,"tag prefix is malformed: "+a)}n.tagMap[r]=a}};function tn(e,n,t,i){var r,a,o,s;if(n1&&(e.result+=Ee.repeat(` +`,n-1))}function Ug(e,n,t){var i,r,a,o,s,l,c,u,d=e.kind,m=e.result,p;if(p=e.input.charCodeAt(e.position),tt(p)||Ei(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(r=e.input.charCodeAt(e.position+1),tt(r)||t&&Ei(r)))return!1;for(e.kind="scalar",e.result="",a=o=e.position,s=!1;p!==0;){if(p===58){if(r=e.input.charCodeAt(e.position+1),tt(r)||t&&Ei(r))break}else if(p===35){if(i=e.input.charCodeAt(e.position-1),tt(i))break}else{if(e.position===e.lineStart&&ao(e)||t&&Ei(p))break;if(It(p))if(l=e.line,c=e.lineStart,u=e.lineIndent,Le(e,!1,-1),e.lineIndent>=n){s=!0,p=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=l,e.lineStart=c,e.lineIndent=u;break}}s&&(tn(e,a,o,!1),sl(e,e.line-l),a=o=e.position,s=!1),Mn(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return tn(e,a,o,!1),e.result?!0:(e.kind=d,e.result=m,!1)}function Wg(e,n){var t,i,r;if(t=e.input.charCodeAt(e.position),t!==39)return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;(t=e.input.charCodeAt(e.position))!==0;)if(t===39)if(tn(e,i,e.position,!0),t=e.input.charCodeAt(++e.position),t===39)i=e.position,e.position++,r=e.position;else return!0;else It(t)?(tn(e,i,r,!0),sl(e,Le(e,!1,n)),i=r=e.position):e.position===e.lineStart&&ao(e)?_(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);_(e,"unexpected end of the stream within a single quoted scalar")}function Vg(e,n){var t,i,r,a,o,s;if(s=e.input.charCodeAt(e.position),s!==34)return!1;for(e.kind="scalar",e.result="",e.position++,t=i=e.position;(s=e.input.charCodeAt(e.position))!==0;){if(s===34)return tn(e,t,e.position,!0),e.position++,!0;if(s===92){if(tn(e,t,e.position,!0),s=e.input.charCodeAt(++e.position),It(s))Le(e,!1,n);else if(s<256&&Ru[s])e.result+=Bu[s],e.position++;else if((o=_g(s))>0){for(r=o,a=0;r>0;r--)s=e.input.charCodeAt(++e.position),(o=Yg(s))>=0?a=(a<<4)+o:_(e,"expected hexadecimal character");e.result+=Hg(a),e.position++}else _(e,"unknown escape sequence");t=i=e.position}else It(s)?(tn(e,t,i,!0),sl(e,Le(e,!1,n)),t=i=e.position):e.position===e.lineStart&&ao(e)?_(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}_(e,"unexpected end of the stream within a double quoted scalar")}function jg(e,n){var t=!0,i,r,a,o=e.tag,s,l=e.anchor,c,u,d,m,p,f=Object.create(null),b,h,k,A;if(A=e.input.charCodeAt(e.position),A===91)u=93,p=!1,s=[];else if(A===123)u=125,p=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),A=e.input.charCodeAt(++e.position);A!==0;){if(Le(e,!0,n),A=e.input.charCodeAt(e.position),A===u)return e.position++,e.tag=o,e.anchor=l,e.kind=p?"mapping":"sequence",e.result=s,!0;t?A===44&&_(e,"expected the node content, but found ','"):_(e,"missed comma between flow collection entries"),h=b=k=null,d=m=!1,A===63&&(c=e.input.charCodeAt(e.position+1),tt(c)&&(d=m=!0,e.position++,Le(e,!0,n))),i=e.line,r=e.lineStart,a=e.position,Ci(e,n,eo,!1,!0),h=e.tag,b=e.result,Le(e,!0,n),A=e.input.charCodeAt(e.position),(m||e.line===i)&&A===58&&(d=!0,A=e.input.charCodeAt(++e.position),Le(e,!0,n),Ci(e,n,eo,!1,!0),k=e.result),p?Ti(e,s,f,h,b,k,i,r,a):d?s.push(Ti(e,null,f,h,b,k,i,r,a)):s.push(b),Le(e,!0,n),A=e.input.charCodeAt(e.position),A===44?(t=!0,A=e.input.charCodeAt(++e.position)):t=!1}_(e,"unexpected end of the stream within a flow collection")}function $g(e,n){var t,i,r=Xs,a=!1,o=!1,s=n,l=0,c=!1,u,d;if(d=e.input.charCodeAt(e.position),d===124)i=!1;else if(d===62)i=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)Xs===r?r=d===43?uu:Dg:_(e,"repeat of a chomping mode identifier");else if((u=Pg(d))>=0)u===0?_(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?_(e,"repeat of an indentation width identifier"):(s=n+u-1,o=!0);else break;if(Mn(d)){do d=e.input.charCodeAt(++e.position);while(Mn(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!It(d)&&d!==0)}for(;d!==0;){for(ol(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!o||e.lineIndents&&(s=e.lineIndent),It(d)){l++;continue}if(e.lineIndentn)&&l!==0)_(e,"bad indentation of a sequence entry");else if(e.lineIndentn)&&(h&&(o=e.line,s=e.lineStart,l=e.position),Ci(e,n,to,!0,r)&&(h?f=e.result:b=e.result),h||(Ti(e,d,m,p,f,b,o,s,l),p=f=b=null),Le(e,!0,-1),A=e.input.charCodeAt(e.position)),(e.line===a||e.lineIndent>n)&&A!==0)_(e,"bad indentation of a mapping entry");else if(e.lineIndentn?l=1:e.lineIndent===n?l=0:e.lineIndentn?l=1:e.lineIndent===n?l=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,m=e.implicitTypes.length;d"),e.result!==null&&f.kind!==e.kind&&_(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result,e.tag)?(e.result=f.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):_(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||u}function Xg(e){var n=e.position,t,i,r,a=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(o=e.input.charCodeAt(e.position))!==0&&(Le(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(a=!0,o=e.input.charCodeAt(++e.position),t=e.position;o!==0&&!tt(o);)o=e.input.charCodeAt(++e.position);for(i=e.input.slice(t,e.position),r=[],i.length<1&&_(e,"directive name must not be less than one character in length");o!==0;){for(;Mn(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!It(o));break}if(It(o))break;for(t=e.position;o!==0&&!tt(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}o!==0&&ol(e),nn.call(mu,i)?mu[i](e,i,r):no(e,'unknown document directive "'+i+'"')}if(Le(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,Le(e,!0,-1)):a&&_(e,"directives end mark is expected"),Ci(e,e.lineIndent-1,to,!1,!0),Le(e,!0,-1),e.checkLineBreaks&&zg.test(e.input.slice(n,e.position))&&no(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&ao(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,Le(e,!0,-1));return}if(e.position"u"&&(t=n,n=null);var i=Ku(e,t);if(typeof n!="function")return i;for(var r=0,a=i.length;r=55296&&t<=56319&&n+1=56320&&i<=57343)?(t-55296)*1024+i-56320+65536:t}function Wu(e){var n=/^\n* /;return n.test(e)}var Vu=1,il=2,ju=3,$u=4,Si=5;function Oh(e,n,t,i,r,a,o,s){var l,c=0,u=null,d=!1,m=!1,p=i!==-1,f=-1,b=Th(sr(e,0))&&Ch(sr(e,e.length-1));if(n||o)for(l=0;l=65536?l+=2:l++){if(c=sr(e,l),!dr(c))return Si;b=b&&bu(c,u,s),u=c}else{for(l=0;l=65536?l+=2:l++){if(c=sr(e,l),c===cr)d=!0,p&&(m=m||l-f-1>i&&e[f+1]!==" ",f=l);else if(!dr(c))return Si;b=b&&bu(c,u,s),u=c}m=m||p&&l-f-1>i&&e[f+1]!==" "}return!d&&!m?b&&!o&&!r(e)?Vu:a===ur?Si:il:t>9&&Wu(e)?Si:o?a===ur?Si:il:m?$u:ju}function Mh(e,n,t,i,r){e.dump=function(){if(n.length===0)return e.quotingType===ur?'""':"''";if(!e.noCompatMode&&(kh.indexOf(n)!==-1||wh.test(n)))return e.quotingType===ur?'"'+n+'"':"'"+n+"'";var a=e.indent*Math.max(1,t),o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),s=i||e.flowLevel>-1&&t>=e.flowLevel;function l(c){return Eh(e,c)}switch(Oh(n,s,e.indent,o,l,e.quotingType,e.forceQuotes&&!i,r)){case Vu:return n;case il:return"'"+n.replace(/'/g,"''")+"'";case ju:return"|"+vu(n,e.indent)+ku(hu(n,a));case $u:return">"+vu(n,e.indent)+ku(hu(Ih(n,o),a));case Si:return'"'+Fh(n)+'"';default:throw new Ge("impossible error: invalid scalar style")}}()}function vu(e,n){var t=Wu(e)?String(n):"",i=e[e.length-1]===` +`,r=i&&(e[e.length-2]===` +`||e===` +`),a=r?"+":i?"":"-";return t+a+` +`}function ku(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function Ih(e,n){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=e.indexOf(` +`);return c=c!==-1?c:e.length,t.lastIndex=c,wu(e.slice(0,c),n)}(),r=e[0]===` +`||e[0]===" ",a,o;o=t.exec(e);){var s=o[1],l=o[2];a=l[0]===" ",i+=s+(!r&&!a&&l!==""?` +`:"")+wu(l,n),r=a}return i}function wu(e,n){if(e===""||e[0]===" ")return e;for(var t=/ [^ ]/g,i,r=0,a,o=0,s=0,l="";i=t.exec(e);)s=i.index,s-r>n&&(a=o>r?o:s,l+=` +`+e.slice(r,a),r=a+1),o=s;return l+=` +`,e.length-r>n&&o>r?l+=e.slice(r,o)+` +`+e.slice(o+1):l+=e.slice(r),l.slice(1)}function Fh(e){for(var n="",t=0,i,r=0;r=65536?r+=2:r++)t=sr(e,r),i=We[t],!i&&dr(t)?(n+=e[r],t>=65536&&(n+=e[r+1])):n+=i||xh(t);return n}function Rh(e,n,t){var i="",r=e.tag,a,o,s;for(a=0,o=t.length;a"u"&&Wt(e,n,null,!1,!1))&&(i!==""&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=r,e.dump="["+i+"]"}function Au(e,n,t,i){var r="",a=e.tag,o,s,l;for(o=0,s=t.length;o"u"&&Wt(e,n+1,null,!0,!0,!1,!0))&&((!i||r!=="")&&(r+=nl(e,n)),e.dump&&cr===e.dump.charCodeAt(0)?r+="-":r+="- ",r+=e.dump);e.tag=a,e.dump=r||"[]"}function Bh(e,n,t){var i="",r=e.tag,a=Object.keys(t),o,s,l,c,u;for(o=0,s=a.length;o1024&&(u+="? "),u+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Wt(e,n,c,!1,!1)&&(u+=e.dump,i+=u));e.tag=r,e.dump="{"+i+"}"}function Dh(e,n,t,i){var r="",a=e.tag,o=Object.keys(t),s,l,c,u,d,m;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new Ge("sortKeys must be a boolean or a function");for(s=0,l=o.length;s1024,d&&(e.dump&&cr===e.dump.charCodeAt(0)?m+="?":m+="? "),m+=e.dump,d&&(m+=nl(e,n)),Wt(e,n+1,u,!0,d)&&(e.dump&&cr===e.dump.charCodeAt(0)?m+=":":m+=": ",m+=e.dump,r+=m));e.tag=a,e.dump=r||"{}"}function xu(e,n,t){var i,r,a,o,s,l;for(r=t?e.explicitTypes:e.implicitTypes,a=0,o=r.length;a tag resolver accepts not "'+l+'" style');e.dump=i}return!0}return!1}function Wt(e,n,t,i,r,a,o){e.tag=null,e.dump=t,xu(e,t,!1)||xu(e,t,!0);var s=Nu.call(e.dump),l=i,c;i&&(i=e.flowLevel<0||e.flowLevel>n);var u=s==="[object Object]"||s==="[object Array]",d,m;if(u&&(d=e.duplicates.indexOf(t),m=d!==-1),(e.tag!==null&&e.tag!=="?"||m||e.indent!==2&&n>0)&&(r=!1),m&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(u&&m&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),s==="[object Object]")i&&Object.keys(e.dump).length!==0?(Dh(e,n,e.dump,r),m&&(e.dump="&ref_"+d+e.dump)):(Bh(e,n,e.dump),m&&(e.dump="&ref_"+d+" "+e.dump));else if(s==="[object Array]")i&&e.dump.length!==0?(e.noArrayIndent&&!o&&n>0?Au(e,n-1,e.dump,r):Au(e,n,e.dump,r),m&&(e.dump="&ref_"+d+e.dump)):(Rh(e,n,e.dump),m&&(e.dump="&ref_"+d+" "+e.dump));else if(s==="[object String]")e.tag!=="?"&&Mh(e,e.dump,n,a,l);else{if(s==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new Ge("unacceptable kind of an object to dump "+s)}e.tag!==null&&e.tag!=="?"&&(c=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?c="!"+c:c.slice(0,18)==="tag:yaml.org,2002:"?c="!!"+c.slice(18):c="!<"+c+">",e.dump=c+" "+e.dump)}return!0}function Kh(e,n){var t=[],i=[],r,a;for(rl(e,t,i),r=0,a=i.length;rre.default.levels.DEBUG||ml.set(e,performance.now())}function rn(e){if(re.default.getLevel()>re.default.levels.DEBUG)return;ml.has(e)||pt(x("logs.timing-key-not-found").replace("{TIMING_KEY}",e));let n=performance.now()-ml.get(e);nt(`${e}: ${n} `+x("logs.milliseconds-abbreviation"))}function po(e,n){re.default.getLevel()<=n&&co.push(e)}function Xu(){co=[]}function fl(e){mr=e}function mo(e){switch(e){case"INFO":{re.default.setLevel("info");break}case"TRACE":{re.default.setLevel("trace");break}case"DEBUG":{re.default.setLevel("debug");break}case"SILENT":{re.default.setLevel("silent");break}case"ERROR":{re.default.setLevel("error");break}case"WARN":{re.default.setLevel("warn");break}}}function ed(e){switch(e){case re.default.levels.INFO:return"INFO";case re.default.levels.TRACE:return"TRACE";case re.default.levels.DEBUG:return"DEBUG";case re.default.levels.SILENT:return"SILENT";case re.default.levels.ERROR:return"ERROR";case re.default.levels.WARN:return"WARN"}}var td={};var nd={};var id={};var rd={commands:{"lint-file":{name:"Linten Sie die aktuelle Datei","error-message":"Lint-Datei-Fehler in der Datei"},"lint-file-unless-ignored":{name:"Linten Sie die aktuelle Datei, es sei denn, sie wird ignoriert"},"lint-all-files":{name:"Linten Sie alle Dateien im Vault","error-message":"Beim Linten aller Dateien Fehler in der Datei","success-message":"Alle Dateien gelinted","errors-message-singular":"Beim Linten aller Dateien gab es einen Fehler.","errors-message-plural":"Beim Linten aller Dateien gab es {NUM} Fehler.","start-message":"Dadurch werden alle Ihre Dateien ver\xE4ndert und es k\xF6nnen Fehler entstehen.","submit-button-text":"Linte alle","submit-button-notice-text":"Linte alle Dateien..."},"lint-all-files-in-folder":{name:"Linte alle Dateien im aktuellen Ordner","start-message":"Dadurch werden alle Ihre Dateien in {FOLDER_NAME} bearbeitet, einschlie\xDFlich der Dateien in den Unterordnern, was zu Fehlern f\xFChren kann.","submit-button-text":"Linte alle Dateien in {FOLDER_NAME}","submit-button-notice-text":"Linten aller Dateien in {FOLDER_NAME}...","error-message":"Beim Linten aller Dateien im Ordner gab es Fehler in der Datei","success-message":"Alle {NUM}-Dateien in {FOLDER_NAME} wurden gelinted.","message-singular":"Alle {NUM}-Dateien in {FOLDER_NAME} wurden gelinted und es trat ein Fehler auf.","message-plural":"Alle {FILE_COUNT}-Dateien in {FOLDER_NAME} wurden gelinted und es gab {ERROR_COUNT} Fehler."},"paste-as-plain-text":{name:"Einf\xFCgen als reiner Text und ohne \xC4nderungen"},"lint-file-pop-up-menu-text":{name:"Linte Datei"},"lint-folder-pop-up-menu-text":{name:"Linte Ordner"}},logs:{"plugin-load":"Plugin wird geladen","plugin-unload":"Plugin entladen","folder-lint":"Linting-Ordner ","linter-run":"Laufender Linter","paste-link-warning":"Abgebrochenes Einf\xFCgen des Lints, da der Inhalt der Zwischenablage ein Link ist, wodurch Konflikte mit anderen Plugins vermieden werden, die das Einf\xFCgen \xE4ndern.","see-console":"Weitere Informationen finden Sie in der Konsole.","unknown-error":"Beim Linten ist ein unbekannter Fehler aufgetreten.","moment-locale-not-found":"Beim Versuch, Moment.js locale auf {MOMENT_LOCALE} umzustellen, wurde {CURRENT_LOCALE} angezeigt","file-change-lint-message-start":"Linted","pre-rules":"Regeln vor regul\xE4ren Regeln","post-rules":"Regeln nach regul\xE4ren Regeln","rule-running":"Laufende Regeln","custom-regex":"Benutzerdefinierte Regex-Regeln","running-custom-regex":"Ausf\xFChren von benutzerdefinierten Regex","running-custom-lint-command":"Ausf\xFChren von benutzerdefinierten Lint-Befehlen","custom-lint-duplicate-warning":'Sie k\xF6nnen denselben Befehl ("{COMMAND_NAME}") nicht zweimal als benutzerdefinierte Lint-Regel ausf\xFChren.',"custom-lint-error-message":"Benutzerdefinierter Lint-Befehl","disabled-text":"ist deaktiviert","run-rule-text":"L\xE4uft","timing-key-not-found":"Der Timing-Schl\xFCssel '{TIMING_KEY}' ist in der Timing-Info-Liste nicht vorhanden, daher wurde er ignoriert","milliseconds-abbreviation":"ms","invalid-date-format-error":"Das Format des Erstellungsdatums '{DATE}' konnte nicht analysiert oder bestimmt werden, sodass das Erstellungsdatum in '{FILE_NAME}","invalid-delimiter-error-message":"Trennzeichen darf nur ein einzelnes Zeichen sein","missing-footnote-error-message":"Die Fu\xDFnote '{FOOTNOTE}' hat keinen entsprechenden Fu\xDFnotenverweis vor dem Fu\xDFnoteninhalt und kann nicht verarbeitet werden. Bitte achten Sie darauf, dass alle Fu\xDFnoten vor dem Inhalt der Fu\xDFnote einen entsprechenden Verweis haben.","too-many-footnotes-error-message":"Der Fu\xDFnotenschl\xFCssel '{FOOTNOTE_KEY}' hat mehr als 1 Fu\xDFnote, die darauf verweist. Bitte aktualisieren Sie die Fu\xDFnoten so, dass es nur noch eine Fu\xDFnote pro Fu\xDFnotenschl\xFCssel gibt.","wrapper-yaml-error":"Fehler in der YAML: {ERROR_MESSAGE}","wrapper-unknown-error":"Unbekannter Fehler: {ERROR_MESSAGE}"},"notice-text":{"empty-clipboard":"Es gibt keinen Inhalt in der Zwischenablage.","characters-added":"Zeichen hinzugef\xFCgt","characters-removed":"Zeichen entfernt","copy-to-clipboard-failed":"Kopieren des Textes in die Zwischenablage fehlgeschlagen: "},"all-rules-option":"Alle","linter-title":"Linter","empty-search-results-text":"Keine Einstellungen stimmen mit der Suche \xFCberein","warning-text":"Warnung","file-backup-text":"Stellen Sie sicher, dass Sie Ihre Dateien gesichert haben.",tabs:{names:{general:"Allgemein",custom:"Individuell",yaml:"YAML",heading:"\xDCberschrift",content:"Inhalt",footnote:"Fu\xDFnote",spacing:"Abstand",paste:"Einf\xFCgen",debug:"Debuggen"},"default-search-bar-text":"Alle Einstellungen durchsuchen",general:{"lint-on-save":{name:"Linten beim Speichern",description:"Linten der Datei beim manuellen Speichern (wenn Strg + S gedr\xFCckt wird oder wenn :w ausgef\xFChrt wird, w\xE4hrend vim-Tastenkombinationen verwendet werden)"},"display-message":{name:"Meldung beim Linten anzeigen",description:"Zeigen Sie die Anzahl der Zeichen an, die sich nach dem Linten ge\xE4ndert haben"},"lint-on-file-change":{name:"Linten bei Datei\xE4nderungen",description:"Wenn eine Datei geschlossen oder zu einer neuen Datei gewechselt wird, wird die vorherige Datei gelinted."},"display-lint-on-file-change-message":{name:"Nachricht beim Linten nach einer Datei\xE4nderung anzeigen",description:"Zeigt eine Meldung an, wenn Linten bei Datei\xE4nderungen ausgel\xF6st wurde"},"folders-to-ignore":{name:"Ordner, die ignoriert werden sollen",description:"Ordner, die ignoriert werden sollen, wenn alle Dateien gelinted oder beim Speichern gelinted werden. Geben Sie Ordnerpfade ein, die durch Zeilenumbr\xFCche getrennt sind","folder-search-placeholder-text":"Ordner-Name","add-input-button-text":"Einen anderen zu ignorierenden Ordner hinzuf\xFCgen","delete-tooltip":"L\xF6schen"},"override-locale":{name:"Gebietsschema \xFCberschreiben",description:"Legen Sie diese Option fest, wenn Sie ein anderes Gebietsschema als das Standardgebietsschema verwenden m\xF6chten"},"same-as-system-locale":"Identisch mit System ({SYS_LOCALE})","yaml-aliases-section-style":{name:"YAML-Aliase-Abschnittsstil",description:"Der Stil des YAML-Aliasabschnitts"},"yaml-tags-section-style":{name:"Abschnittsstil f\xFCr YAML-Tags",description:"Der Stil des YAML-Tags-Abschnitts"},"default-escape-character":{name:"Standard-Escape-Zeichen",description:"Das Standardzeichen, das zum Maskieren von YAML-Werten verwendet werden soll, wenn ein einfaches Anf\xFChrungszeichen und kein doppeltes Anf\xFChrungszeichen vorhanden sind."},"remove-unnecessary-escape-chars-in-multi-line-arrays":{name:"Entfernen Sie unn\xF6tige Escape-Zeichen im mehrzeiligen Array-Format",description:"Escape-Zeichen f\xFCr mehrzeilige YAML-Arrays ben\xF6tigen nicht die gleiche Escape-Funktion wie einzeilige Arrays. Entfernen Sie also im mehrzeiligen Format zus\xE4tzliche Escapezeichen, die nicht erforderlich sind"},"number-of-dollar-signs-to-indicate-math-block":{name:"Anzahl der Dollarzeichen, die den Matheblock anzeigen",description:"Die Anzahl der Dollarzeichen, um den mathematischen Inhalt als mathematischen Block anstelle von Inline-Mathematik zu betrachten"}},debug:{"log-level":{name:"Log-Ebene",description:"Die Arten von Logmeldungen, die vom Dienst protokolliert werden d\xFCrfen. Der Standardwert ist Fehler."},"linter-config":{name:"Linter-Konfiguration",description:"Der Inhalt der data.json f\xFCr den Linter zum Zeitpunkt des Ladens der Einstellungsseite"},"log-collection":{name:"Sammeln Sie Protokolle bei aktiviertem Linten beim Speichern und dem Linten der aktuellen Datei",description:"Sammelt die Log-Meldungen, wenn Sie Linten beim Speichern aktiviert haben und die aktuelle Datei linten. Diese Protokolle k\xF6nnen beim Debuggen und Erstellen von Fehlerberichten hilfreich sein."},"linter-logs":{name:"Linter-Protokolle",description:"Die Protokolle des letzten Linten beim Speichern-Durchlaufes oder dem letzten Linten der aktuellen Datei werden gesammelt, wenn die Option aktiviert ist."}}},options:{"custom-command":{name:"Benutzerdefinierte Befehle",description:"Benutzerdefinierte Befehle sind Obsidian-Befehle, die ausgef\xFChrt werden, nachdem der Linter seine regul\xE4ren Regeln ausgef\xFChrt hat. Dies bedeutet, dass sie nicht ausgef\xFChrt werden, bevor die YAML-Zeitstempellogik ausgef\xFChrt wird, sodass sie dazu f\xFChren k\xF6nnen, dass der YAML-Zeitstempel bei der n\xE4chsten Ausf\xFChrung des Linters ausgel\xF6st wird. Sie k\xF6nnen einen Obsidian-Befehl nur einmal ausw\xE4hlen.",warning:"Wenn Sie eine Option ausw\xE4hlen, stellen Sie sicher, dass Sie die Option entweder mit der Maus oder durch Dr\xFCcken der Eingabetaste ausw\xE4hlen. Andere Auswahlmethoden funktionieren m\xF6glicherweise nicht und es werden nur Auswahlen eines tats\xE4chlichen Obsidian-Befehls oder einer leeren Zeichenfolge gespeichert.","add-input-button-text":"Neuen Befehl hinzuf\xFCgen","command-search-placeholder-text":"Obsidian-Befehl","move-up-tooltip":"Aufr\xFCcken","move-down-tooltip":"Bewegen Sie sich nach unten","delete-tooltip":"L\xF6schen"},"custom-replace":{name:"Benutzerdefinierter Regex-Ersatz",description:"Der benutzerdefinierte Regex-Ersatz kann verwendet werden, um alles zu ersetzen, was mit dem Such-Regex mit dem Ersatzwert \xFCbereinstimmt. Bei den Werten replace und find muss es sich um g\xFCltige Regex-Werte handeln.",warning:"Verwenden Sie dies mit Vorsicht, wenn Sie Regex nicht kennen. Stellen Sie au\xDFerdem sicher, dass Sie keine Lookbehinds in Ihrem regul\xE4ren Ausdruck auf iOS-Mobilger\xE4ten verwenden, da dies dazu f\xFChrt, dass Lints fehlschlagen, da dies auf dieser Plattform nicht unterst\xFCtzt wird.","add-input-button-text":"Neuen Regex-Ersatz hinzuf\xFCgen","regex-to-find-placeholder-text":"Regex zu finden","flags-placeholder-text":"Flaggen","regex-to-replace-placeholder-text":"Regex zu ersetzen","label-placeholder-text":"Etikett","move-up-tooltip":"Aufr\xFCcken","move-down-tooltip":"Bewegen Sie sich nach unten","delete-tooltip":"L\xF6schen"}},rules:{"auto-correct-common-misspellings":{name:"H\xE4ufige Rechtschreibfehler automatisch korrigieren",description:'Verwendet ein W\xF6rterbuch mit h\xE4ufigen Rechtschreibfehlern, um sie automatisch in die richtige Schreibweise umzuwandeln. Siehe Autokorrekturkarte f\xFCr die vollst\xE4ndige Liste der automatisch korrigierten W\xF6rter.',"ignore-words":{name:"Ignorieren Sie W\xF6rter",description:"Eine durch Kommas getrennte Liste von W\xF6rtern in Kleinbuchstaben, die bei der automatischen Korrektur ignoriert werden sollen"}},"add-blockquote-indentation-on-paste":{name:"Blockquote-Einr\xFCckung beim Einf\xFCgen hinzuf\xFCgen",description:"F\xFCgt Blockzitate zu allen au\xDFer der ersten Zeile hinzu, wenn sich der Cursor w\xE4hrend des Einf\xFCgens in einer Blockquote/Callout-Zeile befindet"},"blockquote-style":{name:"Blockquote-Stil",description:"Stellt sicher, dass der Blockquote-Stil konsistent ist.",style:{name:"Stil",description:"Der f\xFCr Blockquote-Indikatoren verwendete Stil"}},"capitalize-headings":{name:"\xDCberschriften gro\xDF schreiben",description:"\xDCberschriften sollten mit Gro\xDF- und Kleinschreibung formatiert werden",style:{name:"Stil",description:"Die Art der zu verwendenden Gro\xDFschreibung"},"ignore-case-words":{name:"Ignore Cased Words",description:"Only apply title case style to words that are all lowercase"},"ignore-words":{name:"Ignorieren Sie Gro\xDF-/Kleinschreibungsw\xF6rter",description:"Eine durch Kommas getrennte Liste von W\xF6rtern, die bei der Gro\xDFschreibung ignoriert werden sollen"},"lowercase-words":{name:"W\xF6rter in Kleinbuchstaben",description:"Eine durch Kommas getrennte Liste von W\xF6rtern, um Kleinbuchstaben zu behalten"}},"compact-yaml":{name:"YAML komprimieren",description:"Entfernt f\xFChrende und nachfolgende Leerzeilen im YAML-Frontmatter.","inner-new-lines":{name:"Innere neue Zeilen",description:"Entfernen Sie neue Zeilen, die sich nicht am Anfang oder am Ende der YAML befinden"}},"consecutive-blank-lines":{name:"aufeinanderfolgende Leerzeilen zusammenfassen",description:"Es sollte h\xF6chstens eine aufeinanderfolgende Leerzeile geben."},"convert-bullet-list-markers":{name:"Konvertiere Aufz\xE4hlungszeichen",description:"Konvertiert g\xE4ngige Symbole f\xFCr Aufz\xE4hlungslisten in Markdown-Listenmarkierungen."},"convert-spaces-to-tabs":{name:"Leerzeichen in Tabulatoren konvertieren",description:"Konvertiert f\xFChrende Leerzeichen in Tabulatoren.",tabsize:{name:"Tabgr\xF6\xDFe",description:"Anzahl der Leerzeichen, die in einen Tabulator umgewandelt werden"}},"emphasis-style":{name:"Hervorhebungsstil",description:"Stellt sicher, dass der Hervorhebungsstil konsistent ist.",style:{name:"Stil",description:"Der Stil, der verwendet wird, um hervorgehobene Inhalte zu kennzeichnen"}},"empty-line-around-blockquotes":{name:"Leere Zeile um Blockquotes",description:"Stellt sicher, dass Blockzitate in einer leeren Zeile stehen, es sei denn, sie beginnen oder beenden ein Dokument. Beachten Sie, dass eine leere Zeile entweder eine Verschachtelungsebene weniger f\xFCr Blockzitate oder ein Zeilenumbruchzeichen ist."},"empty-line-around-code-fences":{name:"Leere Zeile um Code-Bereiche",description:"Stellt sicher, dass Codebereiche mit einer leeren Zeile versehen sind, es sei denn, sie beginnen oder beenden ein Dokument."},"empty-line-around-math-blocks":{name:"Leere Zeile um mathematische Bl\xF6cke",description:"Stellt sicher, dass es eine leere Zeile um mathematische Bl\xF6cke gibt, indem Anzahl der Dollarzeichen, die einen mathematischen Block anzeigen verwendet wird, um zu bestimmen, wie viele Dollarzeichen einen mathematischen Block f\xFCr einzeilige Mathematik anzeigen."},"empty-line-around-tables":{name:"Leere Zeile um Tabellen",description:"Stellt sicher, dass es eine leere Zeile um Github-formatierte Tabellen gibt, es sei denn, sie beginnen oder beenden ein Dokument."},"escape-yaml-special-characters":{name:"Escape-YAML-Sonderzeichen",description:`Maskiert Doppelpunkte mit einem Leerzeichen nach ihnen (: ), einfache Anf\xFChrungszeichen (') und doppelte Anf\xFChrungszeichen (") in YAML.`,"try-to-escape-single-line-arrays":{name:"Versucht, Single-Line-Arrays zu vermeiden",description:'Versucht, Arraywerte zu maskieren, wobei davon ausgegangen wird, dass ein Array mit "[" beginnt, mit "]" endet und Elemente enth\xE4lt, die durch "," getrennt sind.'}},"file-name-heading":{name:"\xDCberschrift des Dateinamens",description:"F\xFCgt den Dateinamen als H1-\xDCberschrift ein, wenn keine H1-\xDCberschrift vorhanden ist."},"footnote-after-punctuation":{name:"Fu\xDFnote nach Interpunktion",description:"Stellt sicher, dass Fu\xDFnotenverweise nach der Interpunktion und nicht davor platziert werden."},"force-yaml-escape":{name:"YAML-Escape erzwingen",description:"Maskiert die Werte f\xFCr die angegebenen YAML-Schl\xFCssel.","force-yaml-escape-keys":{name:"Erzwingen Sie die YAML-Escape-Klausel f\xFCr Schl\xFCssel",description:"Verwendet das YAML-Escapezeichen f\xFCr die angegebenen YAML-Schl\xFCssel, die durch ein Zeilenumbruchzeichen getrennt sind, wenn es nicht bereits mit Escapezeichen versehen ist. Nicht auf YAML-Arrays verwenden."}},"format-tags-in-yaml":{name:"Formatieren von Tags in YAML",description:"Entfernen Sie Hashtags aus Tags im YAML-Frontmatter, da sie die Tags dort ung\xFCltig machen."},"format-yaml-array":{name:"Formatieren des YAML-Arrays",description:"Erm\xF6glicht die Formatierung von regul\xE4ren YAML-Arrays als mehrzeilig oder einzeilig und tags und aliases d\xFCrfen einige Obsidian-spezifische YAML-Formate haben. Beachten Sie, dass eine einzelne Zeichenfolge zu einer einzelnen Zeile von einem einzelnen Zeichenfolgeneintrag zu einem einzeiligen Array wechselt, wenn mehr als 1 Eintrag vorhanden ist. Das Gleiche gilt f\xFCr eine einzelne Zeichenfolge bis zu einer mehrzeiligen Zeichenfolge, mit der Ausnahme, dass sie zu einem mehrzeiligen Array wird.","alias-key":{name:'Abschnitt "YAML-Aliase" formatieren',description:"Aktiviert die Formatierung f\xFCr den Abschnitt YAML-Aliase. Sie sollten diese Option nicht zusammen mit der Regel YAML-Titel-Alias aktivieren, da sie m\xF6glicherweise nicht gut zusammenarbeiten oder unterschiedliche Formatstile ausgew\xE4hlt haben, was zu unerwarteten Ergebnissen f\xFChrt."},"tag-key":{name:'Abschnitt "YAML-Tags formatieren"',description:"Aktiviert die Formatierung f\xFCr den Abschnitt YAML-Tags."},"default-array-style":{name:"Standardm\xE4\xDFiger YAML-Array-Abschnittsstil",description:"Der Stil anderer YAML-Arrays, die nicht tags oder aliases sind oder bei Erzwingt f\xFCr Schl\xFCsselwerte einzeilige Arrays und Erzwingt f\xFCr Schl\xFCsselwerte mehrzeilige Arrays"},"default-array-keys":{name:"Formatieren von YAML-Array-Abschnitten",description:"Aktiviert die Formatierung f\xFCr regul\xE4re YAML-Arrays"},"force-single-line-array-style":{name:"Erzwingt f\xFCr Schl\xFCsselwerte einzeilige Arrays",description:"Erzwingt, dass das YAML-Array f\xFCr die neuen zeilengetrennten Schl\xFCssel im einzeiligen Format vorliegt (leer lassen, um diese Option zu deaktivieren)"},"force-multi-line-array-style":{name:"Erzwingt f\xFCr Schl\xFCsselwerte mehrzeilige Arrays",description:"Erzwingt, dass das YAML-Array f\xFCr die neuen zeilengetrennten Schl\xFCssel im mehrzeiligen Format vorliegt (leer lassen, um diese Option zu deaktivieren)"}},"header-increment":{name:"Header-Inkrement",description:"\xDCberschriftenebenen sollten jeweils nur um eine Ebene erh\xF6ht werden","start-at-h2":{name:"Start-Header-Inkrement auf \xDCberschriftenebene 2",description:"Legt die \xDCberschriftenebene 2 als minimale \xDCberschriftenebene in einer Datei f\xFCr das Kopfzeileninkrement fest und verschiebt alle \xDCberschriften entsprechend, sodass sie beginnend mit einer \xDCberschrift der Ebene 2 inkrementiert werden."}},"heading-blank-lines":{name:"\xDCberschriften mit Leerzeilen",description:"Alle \xDCberschriften haben sowohl davor als auch danach eine Leerzeile (au\xDFer wenn sich die \xDCberschrift am Anfang oder Ende des Dokuments befindet).",bottom:{name:"Darunter",description:"Einf\xFCgen einer Leerzeile unter \xDCberschriften"},"empty-line-after-yaml":{name:"Leere Zeile zwischen YAML und Header",description:"Behalten Sie die leere Zeile zwischen dem YAML-Frontmatter und dem Header bei"}},"headings-start-line":{name:"\xDCberschriften am Zeilenbeginn",description:"Bei \xDCberschriften, die keine Zeile beginnen, wird der vorangehende Leerraum entfernt, um sicherzustellen, dass sie als \xDCberschriften erkannt werden."},"insert-yaml-attributes":{name:"Einf\xFCgen von YAML-Attributen",description:"F\xFCgt die angegebenen YAML-Attribute in den YAML-Frontmatter ein. Setzen Sie jedes Attribut in eine einzelne Zeile.","text-to-insert":{name:"Text zum Einf\xFCgen",description:"Text, der in den YAML-Frontmatter eingef\xFCgt werden soll"}},"line-break-at-document-end":{name:"Zeilenumbruch am Dokumentende",description:"Stellt sicher, dass am Ende eines Dokuments genau ein Zeilenumbruch steht."},"move-footnotes-to-the-bottom":{name:"Fu\xDFnoten nach unten verschieben",description:"Verschieben Sie alle Fu\xDFnoten an das Ende des Dokuments."},"move-math-block-indicators-to-their-own-line":{name:"Verschieben Sie mathematische Blockindikatoren in eine eigene Zeile",description:"Verschieben Sie alle Anfangs- und Endindikatoren f\xFCr mathematische Bl\xF6cke in ihre eigenen Zeilen, indem Sie Anzahl der Dollarzeichen, die einen mathematischen Block anzeigen verwenden, um zu bestimmen, wie viele Dollarzeichen einen mathematischen Block f\xFCr einzeilige Mathematik anzeigen."},"move-tags-to-yaml":{name:"Tags nach YAML verschieben",description:"Verschieben Sie alle Tags in den YAML-Frontmatter des Dokuments.","how-to-handle-existing-tags":{name:"Body-Tag-Operation",description:"Die Aktion, die mit nicht ignorierten Tags im Hauptteil der Datei ausgef\xFChrt werden soll, nachdem sie in den Frontmatter verschoben wurden"},"tags-to-ignore":{name:"ignorierte Tags",description:"Die Tags, die nicht in das Tags-Array verschoben oder aus dem Textinhalt entfernt werden, wenn Entfernen Sie den Hashtag aus Tags im Inhaltstext aktiviert ist. Jedes Tag sollte in einer neuen Zeile und ohne das # stehen. Stellen Sie sicher, dass Sie den Hashtag nicht in den Tag-Namen aufnehmen."}},"no-bare-urls":{name:"Keine blo\xDFen URLs",description:"Umschlie\xDFt blo\xDFe URLs mit spitzen Klammern, es sei denn, sie sind in Back-Ticks, eckige Klammern oder einfache oder doppelte Anf\xFChrungszeichen eingeschlossen."},"ordered-list-style":{name:"Geordneter Listenstil",description:"Stellt sicher, dass geordnete Listen dem angegebenen Stil entsprechen. Beachten Sie, dass 2 Leerzeichen oder 1 Tabulator als Einr\xFCckungsebene betrachtet werden.","number-style":{name:"Zahlen-Stil",description:"Der Zahlenstil, der in geordneten Listenindikatoren verwendet wird"},"list-end-style":{name:"Endestil des Indikators f\xFCr eine geordnete Liste",description:"Das Endezeichen eines geordneten Listenkennzeichens"}},"paragraph-blank-lines":{name:"Leere Absatzzeilen",description:"Alle Abs\xE4tze sollten sowohl davor als auch danach genau eine Leerzeile haben."},"prevent-double-checklist-indicator-on-paste":{name:"Verhindern Sie eine doppelte Checklistenanzeige beim Einf\xFCgen",description:"Entfernt die Start-Checklisten-Anzeige aus dem Text, um sie einzuf\xFCgen, wenn die Zeile, auf der sich der Cursor in der Datei befindet, \xFCber eine Checklistenanzeige verf\xFCgt"},"prevent-double-list-item-indicator-on-paste":{name:"Verhindern Sie die Anzeige f\xFCr doppelte Listenelemente beim Einf\xFCgen",description:"Entfernt den Startlistenindikator aus dem Text, der eingef\xFCgt werden soll, wenn die Zeile, auf der sich der Cursor in der Datei befindet, einen Listenindikator hat"},"proper-ellipsis-on-paste":{name:"Richtige Auslassungspunkte auf Paste",description:"Ersetzt drei aufeinanderfolgende Punkte durch Auslassungspunkte, auch wenn sie im Text ein Leerzeichen zum Einf\xFCgen haben"},"proper-ellipsis":{name:"Richtige Auslassungspunkte",description:"Ersetzt drei aufeinanderfolgende Punkte durch Auslassungspunkte."},"quote-style":{name:"Zitatstil",description:"Aktualisiert die Anf\xFChrungszeichen im Textk\xF6rperinhalt, sodass sie auf die angegebenen einfachen und doppelten Anf\xFChrungszeichenstile aktualisiert werden.","single-quote-enabled":{name:"Aktivieren Sie Stil f\xFCr einfache Anf\xFChrungszeichen",description:"Gibt an, dass der ausgew\xE4hlte einfache Anf\xFChrungszeichenstil verwendet werden soll."},"single-quote-style":{name:"Stil f\xFCr einfache Anf\xFChrungszeichen",description:"Der Stil der zu verwendenden einfachen Anf\xFChrungszeichen."},"double-quote-enabled":{name:"Aktivieren Sie Stil f\xFCr doppelte Anf\xFChrungszeichen",description:"Gibt an, dass der ausgew\xE4hlte doppelte Anf\xFChrungszeichenstil verwendet werden soll."},"double-quote-style":{name:"Stil f\xFCr doppelte Anf\xFChrungszeichen",description:"Der zu verwendende Stil der doppelten Anf\xFChrungszeichen."}},"re-index-footnotes":{name:"Fu\xDFnoten neu indizieren",description:"Indiziert Fu\xDFnotenschl\xFCssel und Fu\xDFnoten basierend auf der Reihenfolge des Auftretens neu (HINWEIS: Diese Regel funktioniert *nicht*, wenn es mehr als eine Fu\xDFnote f\xFCr einen Schl\xFCssel gibt.)"},"remove-consecutive-list-markers":{name:"Entfernen Sie aufeinanderfolgende Listenmarkierungen",description:"Entfernt aufeinanderfolgende Listenmarkierungen. N\xFCtzlich beim Kopieren und Einf\xFCgen von Listenelementen."},"remove-empty-lines-between-list-markers-and-checklists":{name:"Entfernen Sie leere Zeilen zwischen Listenmarkierungen und Checklisten",description:"Es sollten keine leeren Zeilen zwischen Listenmarkierungen und Checklisten stehen."},"remove-empty-list-markers":{name:"Entfernen Sie leere Listenmarkierungen",description:"Entfernt leere Listenmarkierungen, d.h. Listenelemente ohne Inhalt."},"remove-hyphenated-line-breaks":{name:"Entfernen Sie Zeilenumbr\xFCche mit Bindestrich",description:"Entfernt Zeilenumbr\xFCche mit Bindestrich. N\xFCtzlich beim Einf\xFCgen von Text aus Lehrb\xFCchern."},"remove-hyphens-on-paste":{name:"Entfernen Sie Bindestriche auf Paste",description:"Entfernt Bindestriche aus dem Text zum Einf\xFCgen"},"remove-leading-or-trailing-whitespace-on-paste":{name:"Entfernen Sie f\xFChrende oder nachgestellte Leerzeichen beim Einf\xFCgen",description:"Entfernt alle f\xFChrenden Leerzeichen ohne Tabulatoren und alle nachgestellten Leerzeichen, die der Text einf\xFCgen kann"},"remove-leftover-footnotes-from-quote-on-paste":{name:"Entfernen Sie \xFCbrig gebliebene Fu\xDFnoten aus dem Zitat beim Einf\xFCgen",description:"Entfernt alle \xFCbrig gebliebenen Fu\xDFnotenverweise, die der Text einf\xFCgen kann"},"remove-link-spacing":{name:"Linkabstand entfernen",description:"Entfernt den Abstand um den Linktext."},"remove-multiple-blank-lines-on-paste":{name:"Entfernen Sie mehrfache Leerzeilen beim Einf\xFCgen",description:"Verdichtet mehrere Leerzeilen zu einer Leerzeile, damit der Text eingef\xFCgt werden kann"},"remove-multiple-spaces":{name:"Entfernen Sie mehrfache Leerzeichen",description:"Entfernt zwei oder mehr aufeinanderfolgende Leerzeichen. Ignoriert Leerzeichen am Anfang und am Ende der Zeile."},"remove-space-around-characters":{name:"Entfernen Sie den Abstand um die Zeichen",description:"Stellt sicher, dass bestimmte Zeichen nicht von Leerzeichen umgeben sind (entweder einzelne Leerzeichen oder ein Tabulator). Beachten Sie, dass dies in einigen F\xE4llen zu Problemen mit dem Markdown-Format f\xFChren kann.","include-fullwidth-forms":{name:"Einf\xFCgen von Formularen in voller Breite",description:'Einschlie\xDFen Unicode-Block "Formulare" in voller Breite'},"include-cjk-symbols-and-punctuation":{name:"CJK-Symbole und Satzzeichen einschlie\xDFen",description:'Einschlie\xDFen CJK-Symbole und Satzzeichen Unicode-Block'},"include-dashes":{name:"Bindestriche einschlie\xDFen",description:"F\xFCgen Sie den Gedankenstrich (\u2013) und den Gedankenstrich (\u2014) ein"},"other-symbols":{name:"Andere Symbole",description:"Andere Symbole, die enthalten sind"}},"remove-space-before-or-after-characters":{name:"Entfernen Sie Leerzeichen vor oder nach Zeichen",description:"Entfernt Leerzeichen vor und nach den angegebenen Zeichen. Beachten Sie, dass dies in einigen F\xE4llen zu Problemen mit dem Markdown-Format f\xFChren kann.","characters-to-remove-space-before":{name:"Leerzeichen vor Zeichen entfernen",description:"Entfernt Leerzeichen vor den angegebenen Zeichen. Hinweis: Die Verwendung von { oder } in der Zeichenliste wirkt sich unerwartet auf Dateien aus, da es in der Ignoriersyntax hinter den Kulissen verwendet wird."},"characters-to-remove-space-after":{name:"Leerzeichen nach Zeichen entfernen",description:"Entfernt Leerzeichen vor den angegebenen Zeichen. Hinweis: Die Verwendung von { oder } in der Zeichenliste wirkt sich unerwartet auf Dateien aus, da es in der Ignoriersyntax hinter den Kulissen verwendet wird."}},"remove-trailing-punctuation-in-heading":{name:"Entfernen Sie nachgestellte Satzzeichen in der \xDCberschrift",description:'Entfernt die angegebene Interpunktion am Ende von \xDCberschriften, wobei darauf zu achten ist, dass das Semikolon am Ende von HTML-Entit\xE4tsreferenzen ignoriert wird.',"punctuation-to-remove":{name:"Nachfolgende Interpunktion",description:"Das nachfolgende Satzzeichen, das aus den \xDCberschriften in der Datei entfernt werden soll."}},"remove-yaml-keys":{name:"Entfernen von YAML-Schl\xFCsseln",description:"Entfernt die angegebenen YAML-Schl\xFCssel","yaml-keys-to-remove":{name:"Zu entfernende YAML-Schl\xFCssel",description:"Die zu entfernenden YAML-Schl\xFCssel aus dem YAML-Frontmatter mit oder ohne Doppelpunkt"}},"space-after-list-markers":{name:"Leerzeichen nach Listenmarkierungen",description:"Es sollte ein einzelnes Leerzeichen nach Listenmarkierungen und Kontrollk\xE4stchen geben."},"space-between-chinese-japanese-or-korean-and-english-or-numbers":{name:"Leerzeichen zwischen Chinesisch, Japanisch oder Koreanisch und Englisch oder Zahlen",description:'Stellt sicher, dass Chinesisch, Japanisch oder Koreanisch und Englisch oder Zahlen durch ein einziges Leerzeichen getrennt werden. Folgt diesen Richtlinien'},"strong-style":{name:"Starker Stil",description:"Stellt sicher, dass der starke Stil konsistent ist.",style:{name:"Stil",description:"Der Stil, der verwendet wird, um starke/fettgedruckte Inhalte zu kennzeichnen"}},"trailing-spaces":{name:"Nachgestellte Leerzeichen",description:"Entfernt zus\xE4tzliche Leerzeichen nach jeder Zeile.","twp-space-line-break":{name:"Zwei Leerzeichen Zeilenumbruch",description:'Ignorieren Sie zwei Leerzeichen, gefolgt von einem Zeilenumbruch ("Zwei-Leerzeichen-Regel").'}},"two-spaces-between-lines-with-content":{name:"Zwei Leerzeichen zwischen Zeilen mit Inhalt",description:"Stellt sicher, dass zwei Leerzeichen an den Zeilenenden hinzugef\xFCgt werden, wobei der Inhalt in der n\xE4chsten Zeile f\xFCr Abs\xE4tze, Blockzitate und Listenelemente fortgesetzt wird"},"unordered-list-style":{name:"Ungeordneter Listenstil",description:"Stellt sicher, dass ungeordnete Listen dem angegebenen Stil folgen.","list-style":{name:"Stil des Listenelements",description:"Das Listenelementformat, das in ungeordneten Listen verwendet werden soll"}},"yaml-key-sort":{name:"Sortierung von YAML-Schl\xFCsseln",description:"Sortiert die YAML-Schl\xFCssel basierend auf der angegebenen Reihenfolge und Priorit\xE4t. Hinweis: Kann auch Leerzeilen entfernen.","yaml-key-priority-sort-order":{name:"Priorit\xE4tssortierreihenfolge der YAML-Schl\xFCssel",description:"Die Reihenfolge, in der die Schl\xFCssel sortiert werden sollen, wobei in jeder Zeile ein Schl\xFCssel in der Reihenfolge der Liste sortiert wird"},"priority-keys-at-start-of-yaml":{name:"Priorit\xE4tsschl\xFCssel am Anfang von YAML",description:"Die priorisierte Sortierreihenfolge der YAML-Schl\xFCssel wird am Anfang des YAML-Frontmatters platziert"},"yaml-sort-order-for-other-keys":{name:"YAML-Sortierreihenfolge f\xFCr andere Schl\xFCssel",description:"Die Art und Weise, wie die Schl\xFCssel sortiert werden, die nicht im Textbereich der priorisierten Sortierreihenfolge von YAML-Keys vorhanden sind"}},"yaml-timestamp":{name:"YAML-Zeitstempel",description:"Verfolgen Sie das Datum, an dem die Datei zuletzt bearbeitet wurde, im YAML-Frontmatter. Ruft Datumsangaben aus Dateimetadaten ab.","date-created":{name:"Erstellungsdatum",description:"Geben Sie das Datum ein, an dem die Datei erstellt wurde"},"date-created-key":{name:"Schl\xFCssel f\xFCr das Erstellungsdatum",description:"Der YAML-Schl\xFCssel, der f\xFCr das Erstellungsdatum verwendet werden soll"},"date-modified":{name:"\xC4nderungsdatum",description:"Geben Sie das Datum ein, an dem die Datei zuletzt ge\xE4ndert wurde"},"date-modified-key":{name:"Schl\xFCssel f\xFCr das \xC4nderungsdatum",description:"Der YAML-Schl\xFCssel, der f\xFCr das \xC4nderungsdatum verwendet werden soll"},format:{name:"Format",description:'Zu verwendendes Datumsformat f\xFCr Moment.js (siehe Momentformatoptionen)'}},"yaml-title-alias":{name:"YAML-Titel-Alias",description:"F\xFCgt den Titel der Datei in den Aliasabschnitt des YAML-Frontmatters ein. Ruft den Titel aus dem ersten H1- oder Dateinamen ab.","preserve-existing-alias-section-style":{name:"Vorhandenes Alias-Abschnittsformat beibehalten",description:"Wenn diese Option festgelegt ist, gilt die Einstellung YAML-Aliase-Abschnittsstil nur f\xFCr die neu erstellten Abschnitte"},"keep-alias-that-matches-the-filename":{name:"Behalten Sie einen Alias bei, der mit dem Dateinamen \xFCbereinstimmt",description:"Solche Aliase sind in der Regel redundant"},"use-yaml-key-to-keep-track-of-old-filename-or-heading":{name:"Verwenden Sie den YAML-Schl\xFCssel linter-yaml-title-alias, um bei \xC4nderungen von Dateinamen und \xDCberschriften zu helfen",description:"Wenn sich die erste H1-\xDCberschrift \xE4ndert oder der Dateiname ge\xE4ndert wird, wenn der erste H1 nicht vorhanden ist, wird der alte Alias, der in diesem Schl\xFCssel gespeichert ist, durch den neuen Wert ersetzt, anstatt nur einen neuen Eintrag in das Alias-Array einzuf\xFCgen"}},"yaml-title":{name:"YAML-Titel",description:"F\xFCgt den Titel der Datei in das YAML-Frontmatter ein. Ruft den Titel basierend auf dem ausgew\xE4hlten Modus ab.","title-key":{name:"Titel-Schl\xFCssel",description:"Der YAML-Schl\xFCssel, der f\xFCr den Titel verwendet werden soll"},mode:{name:"Modus",description:"Die zum Abrufen des Titels zu verwendende Methode"}}},enums:{"Title Case":"Titel Gro\xDF- und Kleinschreibung","ALL CAPS":"GROSSBUCHSTABEN","First letter":"Anfangsbuchstabe",".":".",")":")",ERROR:"Fehler",TRACE:"Spur",DEBUG:"Debuggen",INFO:"Info",WARN:"Warnen",SILENT:"Leise",ascending:"aufsteigend",lazy:"lazy",Nothing:"Faul","Remove hashtag":"Hashtag entfernen","Remove whole tag":"Ganzes Tag entfernen",asterisk:"Sternchen",underscore:"unterstreichen",consistent:"folgerichtig","-":"-","*":"*","+":"+",space:"Raum","no space":"kein Platz",None:"Nichts","Ascending Alphabetical":"Aufsteigend Alphabetisch","Descending Alphabetical":"Absteigend Alphabetisch","multi-line":"mehrzeilig","single-line":"einzeilig","single string to single-line":"Single String zu Single-Line","single string to multi-line":"Single String zu Multi-Line","single string comma delimited":"Komma mit Trennzeichen f\xFCr eine Zeichenfolge","single string space delimited":"Einzelzeichenfolgenabstand durch Trennzeichen","single-line space delimited":"einzeiliger Abstand durch Trennzeichen","first-h1":"erste \xDCberschrift der Ebene 1","first-h1-or-filename-if-h1-missing":"Erste \xDCberschrift der Ebene 1 oder Dateiname, wenn die \xDCberschrift der Ebene 1 fehlt",filename:"Dateinamen","''":"''","\u2018\u2019":"\u2018\u2019",'""':'""',"\u201C\u201D":"\u201C\u201D","\\":"\\","
    ":"
    "," ":" ","
    ":"
    "}};var gl={commands:{"lint-file":{name:"Lint the current file","error-message":"Lint File Error in File"},"lint-file-unless-ignored":{name:"Lint the current file unless ignored"},"lint-all-files":{name:"Lint all files in the vault","error-message":"Lint All Files Error in File","success-message":"Linted all files","errors-message-singular":"Linted all files and there was 1 error.","errors-message-plural":"Linted all files and there were {NUM} errors.","start-message":"This will edit all of your files and may introduce errors.","submit-button-text":"Lint All","submit-button-notice-text":"Linting all files..."},"lint-all-files-in-folder":{name:"Lint all files in the current folder","start-message":"This will edit all of your files in {FOLDER_NAME} including files in its subfolders which may introduce errors.","submit-button-text":"Lint All Files in {FOLDER_NAME}","submit-button-notice-text":"Linting all files in {FOLDER_NAME}...","error-message":"Lint All Files in Folder Error in File","success-message":"Linted all {NUM} files in {FOLDER_NAME}.","message-singular":"Linted all {NUM} files in {FOLDER_NAME} and there was 1 error.","message-plural":"Linted all {FILE_COUNT} files in {FOLDER_NAME} and there were {ERROR_COUNT} error."},"paste-as-plain-text":{name:"Paste as Plain Text & without Modifications"},"lint-file-pop-up-menu-text":{name:"Lint file"},"lint-folder-pop-up-menu-text":{name:"Lint folder"}},logs:{"plugin-load":"Loading plugin","plugin-unload":"Unloading plugin","folder-lint":"Linting folder ","linter-run":"Running linter","file-change-yaml-lint-run":"Running editor content change YAML linting","file-change-yaml-lint-skipped":"No file change detected, so YAML linting skipped","file-change-yaml-lint-warning":"No file info is present, but debounce ran. Something went wrong somewhere.","paste-link-warning":"aborted paste lint as the clipboard content is a link and doing so will avoid conflicts with other plugins that modify pasting.","see-console":"See console for more details.","unknown-error":"An unknown error occurred during linting.","moment-locale-not-found":"Trying to switch Moment.js locale to {MOMENT_LOCALE}, got {CURRENT_LOCALE}","file-change-lint-message-start":"Linted","custom-command-callback-warning":"Please only set the custom command callback for integration tests.","pre-rules":"rules before regular rules","post-rules":"rules after regular rules","rule-running":"rules running","custom-regex":"custom regex rules","running-custom-regex":"Running Custom Regex","running-custom-lint-command":"Running Custom Lint Commands","custom-lint-duplicate-warning":'You cannot run the same command ("{COMMAND_NAME}") as a custom lint rule twice.',"custom-lint-error-message":"Custom Lint Command","disabled-text":"is disabled","run-rule-text":"Running","timing-key-not-found":"timing key '{TIMING_KEY}' does not exist in the timing info list, so it was ignored","milliseconds-abbreviation":"ms","invalid-date-format-error":"The format of the created date '{DATE}' could not be parsed or determined so the created date was left alone in '{FILE_NAME}'","invalid-delimiter-error-message":"delimiter is only allowed to be a single character","missing-footnote-error-message":"Footnote '{FOOTNOTE}' has no corresponding footnote reference before the footnote contents and cannot be processed. Please make sure that all footnotes have a corresponding reference before the content of the footnote.","too-many-footnotes-error-message":"Footnote key '{FOOTNOTE_KEY}' has more than 1 footnote referencing it. Please update the footnotes so that there is only one footnote per footnote key.","wrapper-yaml-error":"error in the YAML: {ERROR_MESSAGE}","wrapper-unknown-error":"unknown error: {ERROR_MESSAGE}"},"notice-text":{"empty-clipboard":"There is no clipboard content.","characters-added":"characters added","characters-removed":"characters removed","copy-to-clipboard-failed":"Failed to copy text to clipboard: "},"all-rules-option":"All","linter-title":"Linter","empty-search-results-text":"No settings match search","warning-text":"Warning","file-backup-text":"Make sure you have backed up your files.","custom-command-warning":"Linting multiple files with custom commands enabled is a slow process that requires the ability to open panes in the side panel. It is noticeably slower than running without custom commands enabled. Please proceed with caution.","cancel-button-text":"Cancel","copy-aria-label":"Copy","disabled-other-rule-notice":"If you enable {NAME_1}, it will disable {NAME_2}. Would you like to proceed?","disabled-conflicting-rule-notice":"{NAME_1}, conflicts with {NAME_2}, so it has been turned off. You can switch which setting is off in the settings tab.",ok:"Ok","parse-results-heading-text":"Custom Parse Values","file-parse-description-text":"The following is the list of custom replacements found in {FILE}.","no-parsed-values-found-text":"There were no custom replacements found in {FILE}. Please make sure that all tables with custom replacements in {FILE} only have two columns and all rows start and end with a pipe (i.e. |).","find-header-text":"Word to Find","replace-header-text":"Replacement Word","close-button-text":"Close",tabs:{names:{general:"General",custom:"Custom",yaml:"YAML",heading:"Heading",content:"Content",footnote:"Footnote",spacing:"Spacing",paste:"Paste",debug:"Debug"},"default-search-bar-text":"Search all settings",general:{"lint-on-save":{name:"Lint on save",description:"Lint the file on manual save (when Ctrl + S is pressed or when :w is executed while using vim keybindings)"},"display-message":{name:"Display message on lint",description:"Display the number of characters changed after linting"},"lint-on-file-change":{name:"Lint on Focused File Change",description:"When a file is closed or a new file is swapped to, the previous file is linted."},"display-lint-on-file-change-message":{name:"Display Lint on File Change Message",description:"Displays a message when Lint on Focused File Change occurs"},"folders-to-ignore":{name:"Folders to ignore",description:"Folders to ignore when linting all files or linting on save.","folder-search-placeholder-text":"Folder name","add-input-button-text":"Add another folder to ignore","delete-tooltip":"Delete"},"files-to-ignore":{name:"Files to ignore",description:"Files to ignore when linting all files or linting on save.","file-search-placeholder-text":"regex for file to ignore","add-input-button-text":"Add another file to ignore regex","delete-tooltip":"Delete","label-placeholder-text":"label","flags-placeholder-text":"flags",warning:"Use this with caution if you do not know regex. Also, please make sure that if you use lookbehinds in your regex on iOS mobile that you are on a version that supports using them."},"override-locale":{name:"Override locale",description:"Set this if you want to use a locale different from the default"},"same-as-system-locale":"Same as system ({SYS_LOCALE})","yaml-aliases-section-style":{name:"YAML aliases section style",description:"The style of the YAML aliases section"},"yaml-tags-section-style":{name:"YAML tags section style",description:"The style of the YAML tags section"},"default-escape-character":{name:"Default Escape Character",description:"The default character to use to escape YAML values when a single quote and double quote are not present."},"remove-unnecessary-escape-chars-in-multi-line-arrays":{name:"Remove Unnecessary Escape Characters when in Multi-Line Array Format",description:"Escape characters for multi-line YAML arrays don't need the same escaping as single-line arrays, so when in multi-line format remove extra escapes that are not necessary"},"number-of-dollar-signs-to-indicate-math-block":{name:"Number of Dollar Signs to Indicate Math Block",description:"The amount of dollar signs to consider the math content to be a math block instead of inline math"}},debug:{"log-level":{name:"Log Level",description:"The types of logs that will be allowed to be logged by the service. The default is ERROR."},"linter-config":{name:"Linter Config",description:"The contents of the data.json for the Linter as of the setting page loading"},"log-collection":{name:"Collect logs when linting on save and linting the current file",description:"Goes ahead and collects logs when you Lint on save and linting the current file. These logs can be helpful for debugging and create bug reports."},"linter-logs":{name:"Linter Logs",description:"The logs from the last Lint on save or the last lint current file run if enabled."}}},options:{"custom-command":{name:"Custom Commands",description:"Custom commands are Obsidian commands that get run after the linter is finished running its regular rules. This means that they do not run before the YAML timestamp logic runs, so they can cause YAML timestamp to be triggered on the next run of the linter. You may only select an Obsidian command once.",warning:"When selecting an option, make sure to select the option either by using the mouse or by hitting the enter key. Other selection methods may not work and only selections of an actual Obsidian command or an empty string will be saved.","add-input-button-text":"Add new command","command-search-placeholder-text":"Obsidian command","move-up-tooltip":"Move up","move-down-tooltip":"Move down","delete-tooltip":"Delete"},"custom-replace":{name:"Custom Regex Replacement",description:"Custom regex replacement can be used to replace anything that matches the find regex with the replacement value. The replace and find values will need to be valid regex values.",warning:"Use this with caution if you do not know regex. Also, please make sure that if you use lookbehinds in your regex on iOS mobile that you are on a version that supports using them.","add-input-button-text":"Add new regex replacement","regex-to-find-placeholder-text":"regex to find","flags-placeholder-text":"flags","regex-to-replace-placeholder-text":"regex to replace","label-placeholder-text":"label","move-up-tooltip":"Move up","move-down-tooltip":"Move down","delete-tooltip":"Delete"},"custom-auto-correct":{"delete-tooltip":"Delete","show-parsed-contents-tooltip":"View parsed replacements","custom-row-parse-warning":'"{ROW}" is not a valid row with custom replacements. It must have only 2 columns.',"file-search-placeholder-text":"File name","add-new-replacement-file-tooltip":"Add another custom file","warning-text":"Selected files will automatically have {NAME} disabled.","refresh-tooltip-text":"Reload custom replacements"}},rules:{"auto-correct-common-misspellings":{name:"Auto-correct Common Misspellings",description:'Uses a dictionary of common misspellings to automatically convert them to their proper spellings. See auto-correct map for the full list of auto-corrected words. Note: this list can work on text from multiple languages, but this list is the same no matter what language is currently in use.',"ignore-words":{name:"Ignore Words",description:"A comma separated list of lowercased words to ignore when auto-correcting"},"extra-auto-correct-files":{name:"Extra Auto-Correct Source Files",description:"These are files that have a markdown table in them that have the initial word and the word to correct it to (these are case insensitive corrections). Note: the tables used should have the starting and ending | indicators present for each line."},"skip-words-with-multiple-capitals":{name:"Skip Words with Multiple Capitals",description:"Will skip any files that have a capital letter in them other than as the first letter of the word. Acronyms and some other words can benefit from this. It may cause issues with proper nouns being properly fixed."},"default-install":"You are using Auto-correct Common Misspellings. In order to do so, the default misspellings will be downloaded. This should only happen once. Please wait...","default-install-failed":"Failed to download {URL}. Disabling Auto-correct Common Misspellings.","defaults-missing":"Failed to find default common auto-correct file: {FILE}."},"add-blank-line-after-yaml":{name:"Add Blank Line After YAML",description:"Adds a blank line after the YAML block if it does not end the current file or it is not already followed by at least 1 blank line"},"add-blockquote-indentation-on-paste":{name:"Add Blockquote Indentation on Paste",description:"Adds blockquotes to all but the first line, when the cursor is in a blockquote/callout line during pasting"},"blockquote-style":{name:"Blockquote Style",description:"Makes sure the blockquote style is consistent.",style:{name:"Style",description:"The style used on blockquote indicators"}},"capitalize-headings":{name:"Capitalize Headings",description:"Headings should be formatted with capitalization",style:{name:"Style",description:"The style of capitalization to use"},"ignore-case-words":{name:"Ignore Cased Words",description:"Only apply title case style to words that are all lowercase"},"ignore-words":{name:"Ignore Words",description:"A comma separated list of words to ignore when capitalizing"},"lowercase-words":{name:"Lowercase Words",description:"A comma separated list of words to keep lowercase"}},"compact-yaml":{name:"Compact YAML",description:"Removes leading and trailing blank lines in the YAML front matter.","inner-new-lines":{name:"Inner New Lines",description:"Remove new lines that are not at the start or the end of the YAML"}},"consecutive-blank-lines":{name:"Consecutive blank lines",description:"There should be at most one consecutive blank line."},"convert-bullet-list-markers":{name:"Convert Bullet List Markers",description:"Converts common bullet list marker symbols to markdown list markers."},"convert-spaces-to-tabs":{name:"Convert Spaces to Tabs",description:"Converts leading spaces to tabs.",tabsize:{name:"Tabsize",description:"Number of spaces that will be converted to a tab"}},"dedupe-yaml-array-values":{name:"Dedupe YAML Array Values",description:"Removes duplicate array values in a case sensitive manner.","dedupe-alias-key":{name:"Dedupe YAML aliases section",description:"Turns on removing duplicate aliases."},"dedupe-tag-key":{name:"Dedupe YAML tags section",description:"Turns on removing duplicate tags."},"dedupe-array-keys":{name:"Dedupe YAML array sections",description:"Turns on removing duplicate values for regular YAML arrays"},"ignore-keys":{name:"YAML Keys to Ignore",description:"A list of YAML keys without the ending colon on their own lines that are not meant to have duplicate values removed from them."}},"default-language-for-code-fences":{name:"Default Language For Code Fences",description:"Add a default language to code fences that do not have a language specified.","default-language":{name:"Programming Language",description:'Leave empty to do nothing. Languages tags can be found here.'}},"emphasis-style":{name:"Emphasis Style",description:"Makes sure the emphasis style is consistent.",style:{name:"Style",description:"The style used to denote emphasized content"}},"empty-line-around-blockquotes":{name:"Empty Line Around Blockquotes",description:"Ensures that there is an empty line around blockquotes unless they start or end a document. Note: an empty line is either one less level of nesting for blockquotes or a newline character."},"empty-line-around-code-fences":{name:"Empty Line Around Code Fences",description:"Ensures that there is an empty line around code fences unless they start or end a document."},"empty-line-around-math-blocks":{name:"Empty Line Around Math Blocks",description:"Ensures that there is an empty line around math blocks using Number of Dollar Signs to Indicate a Math Block to determine how many dollar signs indicates a math block for single-line math."},"empty-line-around-tables":{name:"Empty Line Around Tables",description:"Ensures that there is an empty line around github flavored tables unless they start or end a document."},"escape-yaml-special-characters":{name:"Escape YAML Special Characters",description:`Escapes colons with a space after them (: ), single quotes ('), and double quotes (") in YAML.`,"try-to-escape-single-line-arrays":{name:"Try to Escape Single Line Arrays",description:'Tries to escape array values assuming that an array starts with "[", ends with "]", and has items that are delimited by ",".'}},"file-name-heading":{name:"File Name Heading",description:"Inserts the file name as a H1 heading if no H1 heading exists."},"footnote-after-punctuation":{name:"Footnote after Punctuation",description:"Ensures that footnote references are placed after punctuation, not before."},"force-yaml-escape":{name:"Force YAML Escape",description:"Escapes the values for the specified YAML keys.","force-yaml-escape-keys":{name:"Force YAML Escape on Keys",description:"Uses the YAML escape character on the specified YAML keys separated by a new line character if it is not already escaped. Do not use on YAML arrays."}},"format-tags-in-yaml":{name:"Format Tags in YAML",description:"Remove Hashtags from tags in the YAML frontmatter, as they make the tags there invalid."},"format-yaml-array":{name:"Format YAML Array",description:"Allows for the formatting of regular YAML arrays as either multi-line or single-line and tags and aliases are allowed to have some Obsidian specific YAML formats. Note: that single string to single-line goes from a single string entry to a single-line array if more than 1 entry is present. The same is true for single string to multi-line except it becomes a multi-line array.","alias-key":{name:"Format YAML aliases section",description:"Turns on formatting for the YAML aliases section. You should not enable this option alongside the rule YAML Title Alias as they may not work well together or they may have different format styles selected causing unexpected results."},"tag-key":{name:"Format YAML tags section",description:"Turns on formatting for the YAML tags section."},"default-array-style":{name:"Default YAML array section style",description:"The style of other YAML arrays that are not tags, aliases or in Force key values to be single-line arrays and Force key values to be multi-line arrays"},"default-array-keys":{name:"Format YAML array sections",description:"Turns on formatting for regular YAML arrays"},"force-single-line-array-style":{name:"Force key values to be single-line arrays",description:"Forces the YAML array for the new line separated keys to be in single-line format (leave empty to disable this option)"},"force-multi-line-array-style":{name:"Force key values to be multi-line arrays",description:"Forces the YAML array for the new line separated keys to be in multi-line format (leave empty to disable this option)"}},"header-increment":{name:"Header Increment",description:"Heading levels should only increment by one level at a time","start-at-h2":{name:"Start Header Increment at Heading Level 2",description:"Makes heading level 2 the minimum heading level in a file for header increment and shifts all headings accordingly so they increment starting with a level 2 heading."}},"heading-blank-lines":{name:"Heading blank lines",description:"All headings have one blank line both before and after (except where the heading is at the beginning or end of the document).",bottom:{name:"Bottom",description:"Ensures one blank line after headings"},"empty-line-after-yaml":{name:"Empty Line Between YAML and Header",description:"Keep the empty line between the YAML frontmatter and header"}},"headings-start-line":{name:"Headings Start Line",description:"Headings that do not start a line will have their preceding whitespace removed to make sure they get recognized as headers."},"insert-yaml-attributes":{name:"Insert YAML attributes",description:"Inserts the given YAML attributes into the YAML frontmatter. Put each attribute on a single line.","text-to-insert":{name:"Text to insert",description:"Text to insert into the YAML frontmatter"}},"line-break-at-document-end":{name:"Line Break at Document End",description:"Ensures that there is exactly one line break at the end of a document if the note is not empty."},"move-footnotes-to-the-bottom":{name:"Move Footnotes to the bottom",description:"Move all footnotes to the bottom of the document and makes sure they are sorted based on the order they are referenced in the file's body."},"move-math-block-indicators-to-their-own-line":{name:"Move Math Block Indicators to Their Own Line",description:"Move all starting and ending math block indicators to their own lines using Number of Dollar Signs to Indicate a Math Block to determine how many dollar signs indicates a math block for single-line math."},"move-tags-to-yaml":{name:"Move Tags to YAML",description:"Move all tags to YAML frontmatter of the document.","how-to-handle-existing-tags":{name:"Body tag operation",description:"What to do with non-ignored tags in the body of the file once they have been moved to the frontmatter"},"tags-to-ignore":{name:"Tags to ignore",description:"The tags that will not be moved to the tags array or removed from the body content if Remove the hashtag from tags in content body is enabled. Each tag should be on a new line and without the #. Make sure not to include the hashtag in the tag name."}},"no-bare-urls":{name:"No Bare URLs",description:"Encloses bare URLs with angle brackets except when enclosed in back ticks, square braces, or single or double quotes.","no-bare-uris":{name:"No Bare URIs",description:"Attempts to enclose bare URIs with angle brackets except when enclosed in back ticks, square braces, or single or double quotes."}},"ordered-list-style":{name:"Ordered List Style",description:"Makes sure that ordered lists follow the style specified. Note: that 2 spaces or 1 tab is considered to be an indentation level.","number-style":{name:"Number Style",description:"The number style used in ordered list indicators"},"list-end-style":{name:"Ordered List Indicator End Style",description:"The ending character of an ordered list indicator"},"preserve-start":{name:"Preserve Starting Number",description:"Whether to preserve the starting number of an ordered list. This can be used to have an ordered list that has content in between the ordered list items."}},"paragraph-blank-lines":{name:"Paragraph blank lines",description:"All paragraphs should have exactly one blank line both before and after."},"prevent-double-checklist-indicator-on-paste":{name:"Prevent Double Checklist Indicator on Paste",description:"Removes starting checklist indicator from the text to paste if the line the cursor is on in the file has a checklist indicator"},"prevent-double-list-item-indicator-on-paste":{name:"Prevent Double List Item Indicator on Paste",description:"Removes starting list indicator from the text to paste if the line the cursor is on in the file has a list indicator"},"proper-ellipsis-on-paste":{name:"Proper Ellipsis on Paste",description:"Replaces three consecutive dots with an ellipsis even if they have a space between them in the text to paste"},"proper-ellipsis":{name:"Proper Ellipsis",description:"Replaces three consecutive dots with an ellipsis."},"quote-style":{name:"Quote Style",description:"Updates the quotes in the body content to be updated to the specified single and double quote styles.","single-quote-enabled":{name:"Enable Single Quote Style",description:"Specifies that the selected single quote style should be used."},"single-quote-style":{name:"Single Quote Style",description:"The style of single quotes to use."},"double-quote-enabled":{name:"Enable Double Quote Style",description:"Specifies that the selected double quote style should be used."},"double-quote-style":{name:"Double Quote Style",description:"The style of double quotes to use."}},"re-index-footnotes":{name:"Re-Index Footnotes",description:"Re-indexes footnote keys and footnote, based on the order of occurrence. Note: This rule does not work if there is more than one footnote for a key."},"remove-consecutive-list-markers":{name:"Remove Consecutive List Markers",description:"Removes consecutive list markers. Useful when copy-pasting list items."},"remove-empty-lines-between-list-markers-and-checklists":{name:"Remove Empty Lines Between List Markers and Checklists",description:"There should not be any empty lines between list markers and checklists."},"remove-empty-list-markers":{name:"Remove Empty List Markers",description:"Removes empty list markers, i.e. list items without content."},"empty-line-around-horizontal-rules":{name:"Empty Line Around Horizontal Rules",description:"Ensures that there is an empty line around horizontal rules unless they start or end a document."},"remove-hyphenated-line-breaks":{name:"Remove Hyphenated Line Breaks",description:"Removes hyphenated line breaks. Useful when pasting text from textbooks."},"remove-hyphens-on-paste":{name:"Remove Hyphens on Paste",description:"Removes hyphens from the text to paste"},"remove-leading-or-trailing-whitespace-on-paste":{name:"Remove Leading or Trailing Whitespace on Paste",description:"Removes any leading non-tab whitespace and all trailing whitespace for the text to paste"},"remove-leftover-footnotes-from-quote-on-paste":{name:"Remove Leftover Footnotes from Quote on Paste",description:"Removes any leftover footnote references for the text to paste"},"remove-link-spacing":{name:"Remove link spacing",description:"Removes spacing around link text."},"remove-multiple-blank-lines-on-paste":{name:"Remove Multiple Blank Lines on Paste",description:"Condenses multiple blank lines down into one blank line for the text to paste"},"remove-multiple-spaces":{name:"Remove Multiple Spaces",description:"Removes two or more consecutive spaces. Ignores spaces at the beginning and ending of the line. "},"remove-space-around-characters":{name:"Remove Space around Characters",description:"Ensures that certain characters are not surrounded by whitespace (either single spaces or a tab). Note: this may causes issues with markdown format in some cases.","include-fullwidth-forms":{name:"Include Fullwidth Forms",description:'Include Fullwidth Forms Unicode block'},"include-cjk-symbols-and-punctuation":{name:"Include CJK Symbols and Punctuation",description:'Include CJK Symbols and Punctuation Unicode block'},"include-dashes":{name:"Include Dashes",description:"Include en dash (\u2013) and em dash (\u2014)"},"other-symbols":{name:"Other symbols",description:"Other symbols to include"}},"remove-space-before-or-after-characters":{name:"Remove Space Before or After Characters",description:"Removes space before the specified characters and after the specified characters. Note: this may causes issues with markdown format in some cases.","characters-to-remove-space-before":{name:"Remove Space Before Characters",description:"Removes space before the specified characters. Note: using { or } in the list of characters will unexpectedly affect files as it is used in the ignore syntax behind the scenes."},"characters-to-remove-space-after":{name:"Remove Space After Characters",description:"Removes space after the specified characters. >Note: using { or } in the list of characters will unexpectedly affect files as it is used in the ignore syntax behind the scenes."}},"remove-trailing-punctuation-in-heading":{name:"Remove Trailing Punctuation in Heading",description:'Removes the specified punctuation from the end of headings making sure to ignore the semicolon at the end of HTML entity references.',"punctuation-to-remove":{name:"Trailing Punctuation",description:"The trailing punctuation to remove from the headings in the file."}},"remove-yaml-keys":{name:"Remove YAML Keys",description:"Removes the YAML keys specified","yaml-keys-to-remove":{name:"YAML Keys to Remove",description:"The YAML keys to remove from the YAML frontmatter with or without colons"}},"sort-yaml-array-values":{name:"Sort YAML Array Values",description:"Sorts YAML array values based on the specified sort order.","sort-alias-key":{name:"Sort YAML aliases section",description:"Turns on sorting aliases."},"sort-tag-key":{name:"Sort YAML tags section",description:"Turns on sorting tags."},"sort-array-keys":{name:"Sort YAML array sections",description:"Turns on sorting values for regular YAML arrays"},"ignore-keys":{name:"YAML Keys to Ignore",description:"A list of YAML keys without the ending colon on their own lines that are not meant to have their values sorted."},"sort-order":{name:"Sort Order",description:"The way to sort the YAML array values."}},"space-after-list-markers":{name:"Space after list markers",description:"There should be a single space after list markers and checkboxes."},"space-between-chinese-japanese-or-korean-and-english-or-numbers":{name:"Space between Chinese Japanese or Korean and English or numbers",description:'Ensures that Chinese, Japanese, or Korean and English or numbers are separated by a single space. Follows these guidelines',"english-symbols-punctuation-before":{name:"English Punctuations and Symbols Before CJK",description:'The list of non-letter punctuation and symbols to consider to be from English when found before Chinese, Japanese, or Korean characters. Note: "*" is always considered to be English and is necessary for handling some markdown syntaxes properly.'},"english-symbols-punctuation-after":{name:"English Punctuations and Symbols After CJK",description:'The list of non-letter punctuation and symbols to consider to be from English when found after Chinese, Japanese, or Korean characters. Note: "*" is always considered to be English and is necessary for handling some markdown syntaxes properly.'}},"strong-style":{name:"Strong Style",description:"Makes sure the strong style is consistent.",style:{name:"Style",description:"The style used to denote strong/bolded content"}},"trailing-spaces":{name:"Trailing spaces",description:"Removes extra spaces after every line.","twp-space-line-break":{name:"Two Space Linebreak",description:'Ignore two spaces followed by a line break ("Two Space Rule").'}},"two-spaces-between-lines-with-content":{name:"Line Break Between Lines with Content",description:"Makes sure that the specified line break is added to the ends of lines with content continued on the next line for paragraphs, blockquotes, and list items","line-break-indicator":{name:"Line Break Indicator",description:"The line break indicator to use."}},"unordered-list-style":{name:"Unordered List Style",description:"Makes sure that unordered lists follow the style specified.","list-style":{name:"List item style",description:"The list item style to use in unordered lists"}},"yaml-key-sort":{name:"YAML Key Sort",description:"Sorts the YAML keys based on the order and priority specified. Note: may remove blank lines as well. Only works on non-nested keys.","yaml-key-priority-sort-order":{name:"YAML Key Priority Sort Order",description:"The order in which to sort keys with one on each line where it sorts in the order found in the list"},"priority-keys-at-start-of-yaml":{name:"Priority Keys at Start of YAML",description:"YAML Key Priority Sort Order is placed at the start of the YAML frontmatter"},"yaml-sort-order-for-other-keys":{name:"YAML Sort Order for Other Keys",description:"The way in which to sort the keys that are not found in the YAML Key Priority Sort Order text area"}},"yaml-timestamp":{name:"YAML Timestamp",description:"Keep track of the date the file was last edited in the YAML front matter. Gets dates from file metadata.","date-created":{name:"Date Created",description:"Insert the file creation date"},"date-created-key":{name:"Date Created Key",description:"Which YAML key to use for creation date"},"date-created-source-of-truth":{name:"Date Created Source of Truth",description:"Specifies where to get the date created value from if it is already present in the frontmatter."},"date-modified-source-of-truth":{name:"Date Modified Source of Truth",description:"Specifies what way should be used to determine when the date modified should be updated if it is already present in the frontmatter."},"date-modified":{name:"Date Modified",description:"Insert the date the file was last modified"},"date-modified-key":{name:"Date Modified Key",description:"Which YAML key to use for modification date"},format:{name:"Format",description:'Moment date format to use (see Moment format options)'},"convert-to-utc":{name:"Convert Local Time to UTC",description:"Uses UTC equivalent for saved dates instead of local time"},"update-on-file-contents-updated":{name:"Update YAML Timestamp on File Contents Update",description:"When the currently active note is modified, YAML Timestamp is run on the note. This should update the modified note timestamp if it is more than 5 seconds off from the current value."}},"yaml-title-alias":{name:"YAML Title Alias",description:"Inserts or updates the title of the file into the YAML frontmatter's aliases section. Gets the title from the first H1 or filename.","preserve-existing-alias-section-style":{name:"Preserve existing aliases section style",description:"If set, the YAML aliases section style setting applies only to the newly created sections"},"keep-alias-that-matches-the-filename":{name:"Keep alias that matches the filename",description:"Such aliases are usually redundant"},"use-yaml-key-to-keep-track-of-old-filename-or-heading":{name:"Use the YAML key specified by Alias Helper Key to help with filename and heading changes",description:"If set, when the first H1 heading changes or filename if first H1 is not present changes, then the old alias stored in this key will be replaced with the new value instead of just inserting a new entry in the aliases array"},"alias-helper-key":{name:"Alias Helper Key",description:"The key to use to help keep track of what the last file name or heading was that was stored in the frontmatter by this rule."}},"yaml-title":{name:"YAML Title",description:"Inserts the title of the file into the YAML frontmatter. Gets the title based on the selected mode.","title-key":{name:"Title Key",description:"Which YAML key to use for title"},mode:{name:"Mode",description:"The method to use to get the title"}}},enums:{"Title Case":"Title Case","ALL CAPS":"ALL CAPS","First letter":"First letter",".":".",")":")",ERROR:"error",TRACE:"trace",DEBUG:"debug",INFO:"info",WARN:"warn",SILENT:"silent",ascending:"ascending",lazy:"lazy",preserve:"preserve",Nothing:"Nothing","Remove hashtag":"Remove hashtag","Remove whole tag":"Remove whole tag",asterisk:"asterisk",underscore:"underscore",consistent:"consistent","-":"-","*":"*","+":"+",space:"space","no space":"no space",None:"None","Ascending Alphabetical":"Ascending Alphabetical","Descending Alphabetical":"Descending Alphabetical","multi-line":"multi-line","single-line":"single-line","single string to single-line":"single string to single-line","single string to multi-line":"single string to multi-line","single string comma delimited":"single string comma delimited","single string space delimited":"single string space delimited","single-line space delimited":"single-line space delimited","first-h1":"First H1","first-h1-or-filename-if-h1-missing":"First H1 or Filename if H1 is Missing",filename:"Filename",never:"Never","after 5 seconds":"After 5 seconds","after 10 seconds":"After 10 seconds","after 15 seconds":"After 15 seconds","after 30 seconds":"After 30 seconds","after 1 minute":"After 1 minute","file system":"File system",frontmatter:"YAML frontmatter","user or Linter edits":"Changes in Obsidian","''":"''","\u2018\u2019":"\u2018\u2019",'""':'""',"\u201C\u201D":"\u201C\u201D","\\":"\\","
    ":"
    "," ":" ","
    ":"
    "}};var ad={commands:{"lint-file":{name:"Analizar este archivo","error-message":"Error Analizando un Archivooccuri\xF3 en el Archivo"},"lint-file-unless-ignored":{name:"Analizar este archivo si no es ignorado"},"lint-all-files":{name:"Analizar todos los archivos en la b\xF3veda","error-message":"Error Analizando Todos los Archivos en Archivo","success-message":"Analiz\xF3 todos los archivos","errors-message-singular":"Analiz\xF3 todos los archivos y un error ocurri\xF3.","errors-message-plural":"Analiz\xF3 todos los archivos y {NUM} errores ocurrieron","start-message":"Esto editar\xE1 todos de sus archivos y es possible que introduzca errores","submit-button-text":"Analizar Todo","submit-button-notice-text":"Analizando todos los archivos..."},"lint-all-files-in-folder":{name:"Analizar todos los archivos en esta carpeta","start-message":"Esto editar\xE1 todos de sus archivos en {FOLDER_NAME} incluyendo los archivos que existen en las subcarpetas y es possible que introduzca errores.","submit-button-text":"Analizar Todos los Archivos en {FOLDER_NAME}","submit-button-notice-text":"Analizando todos los archivos en {FOLDER_NAME}...","error-message":"Error Analizando Todos los Archivos en Carpeta en Archivo","success-message":"Analiz\xF3 los {NUM} archivos en {FOLDER_NAME}.","message-singular":"Analiz\xF3 los {NUM} archivos en {FOLDER_NAME} y un error ocurri\xF3.","message-plural":"Analiz\xF3 los {FILE_COUNT} archivos en {FOLDER_NAME} y {ERROR_COUNT} errores ocurrieron."},"paste-as-plain-text":{name:"Pegar como texto sin formato y sin modificaciones"},"lint-file-pop-up-menu-text":{name:"Analizar el archivo"},"lint-folder-pop-up-menu-text":{name:"Analizar la carpeta"}},logs:{"plugin-load":"Cargando el programa adicional","plugin-unload":"Descargando el programa adicional","folder-lint":"Analizando la carpeta ","linter-run":"Usando linter","paste-link-warning":"abort\xF3 lint de pagar porque el contento del portapapeles es un enlace y no lo hizo para evitar conflictos con otros programas adicionales que modifican lo que hace el pegar.","see-console":"Consulte la consola para obtener m\xE1s detalles.","unknown-error":"Se ha producido un error desconocido durante el linting.","moment-locale-not-found":"Intentando cambiar la zona de Moment.js a {MOMENT_LOCALE}, el resulto fue {CURRENT_LOCALE}","file-change-lint-message-start":"Analiz\xF3","pre-rules":"Las reglas antes de las reglas normales","post-rules":"las reglas despu\xE9s de las reglas normales","rule-running":"usando las reglas","custom-regex":"las reglas regex personalizadas","running-custom-regex":"Usando regex personalizada","running-custom-lint-command":"Usando comandos de lint personalizados","custom-lint-duplicate-warning":'No se puede usar el mismo comando ("{COMMAND_NAME}") dos veces como un comando de lint.',"custom-lint-error-message":"El commando de lint personalizado","disabled-text":"es inhabilitado","run-rule-text":"Usando","timing-key-not-found":"clave de ritmo '{TIMING_KEY}' no ya existe en la lista de claves de ritmo y fue ignorado por eso","milliseconds-abbreviation":"ms","invalid-date-format-error":"No se pudo analizar ni identificar el formato de la fech de creaci\xF3n `{DATE}` entonces la fecha de creaci\xF3n se dej\xF3 sola en `{FILE_NAME}`","invalid-delimiter-error-message":"El delimitador solo puede ser de un solo car\xE1cter","missing-footnote-error-message":"La nota al pie `{FOOTNOTE}` no tiene ninguna referencia de nota al pie correspondiente antes del contenido de la nota al pie y no se puede procesar. Aseg\xFArese de que todas las notas a pie de p\xE1gina tengan una referencia correspondiente antes del contenido de la nota al pie de p\xE1gina.","too-many-footnotes-error-message":"La clave de nota al pie '{FOOTNOTE_KEY}' tiene m\xE1s de 1 nota al pie que hace referencia a ella. Actualice las notas al pie para que solo haya una nota al pie por clave de nota al pie.","wrapper-yaml-error":"hubo un error en el YAML: {ERROR_MESSAGE}","wrapper-unknown-error":"huno un error desconocido: {ERROR_MESSAGE}"},"notice-text":{"empty-clipboard":"No hay contenido del portapapeles.","characters-added":"Caracteres a\xF1adidos","characters-removed":"Caracteres eliminados"},"all-rules-option":"Todo","linter-title":"Linter","empty-search-results-text":"No hay configuraci\xF3n que coincida con la b\xFAsqueda","warning-text":"Advertencia","file-backup-text":"Aseg\xFArese de haber realizado una copia de seguridad de sus archivos.","copy-aria-label":"Copiar",tabs:{names:{general:"General",custom:"Personalizado",yaml:"YAML",heading:"Encabezado",content:"Contenido",footnote:"Notas al pie",spacing:"Espacio en blanco",paste:"Pegar",debug:"Depurar"},"default-search-bar-text":"Buscar en todos los ajustes",general:{"lint-on-save":{name:"Analizar en guardar",description:"Analizar el archivo en el guardado manual (cuando se presiona `Ctrl + S` o cuando se ejecuta `:w` mientras se usan combinaciones de claves de vim)"},"display-message":{name:"Mostrar mensaje en analizar",description:"Mostrar el n\xFAmero de caracteres modificados despu\xE9s de analizar"},"folders-to-ignore":{name:"Carpetas para omitir",description:"Carpetas que se deben omitir al analizar todos los archivos o al guardar en l\xEDnea.","folder-search-placeholder-text":"El nombre de la carpeta","add-input-button-text":"Agregar otra carpeta para ignorar","delete-tooltip":"Borrar"},"lint-on-file-change":{name:"Analizar archivo en cambiar",description:"Cuando se cierra un archivo o se cambia a un nuevo archivo, el archivo anterior se analiza."},"display-lint-on-file-change-message":{name:"Mostrar mensaje en cambiar el archivo",description:"Muestra un mensaje cuando se produce `Analizar archivo en cambiar`"},"override-locale":{name:"Anular configuraci\xF3n regional",description:"Establezca esta opci\xF3n si desea utilizar una configuraci\xF3n regional diferente de la predeterminada"},"same-as-system-locale":"Igual que el sistema ({SYS_LOCALE})","yaml-aliases-section-style":{name:"Estilo de secci\xF3n de alias de YAML",description:"El estilo de la secci\xF3n de alias de YAML"},"yaml-tags-section-style":{name:"Estilo de secci\xF3n de etiquetas de YAML",description:"El estilo de la secci\xF3n de etiquetas de YAML"},"default-escape-character":{name:"Car\xE1cter de escape predeterminado",description:"El car\xE1cter predeterminado que se va a usar para escapar de los valores YAML cuando no hay comillas simples y comillas dobles."},"remove-unnecessary-escape-chars-in-multi-line-arrays":{name:"Eliminaci\xF3n de caracteres de escape innecesarios cuando est\xE1 en formato de matriz multil\xEDnea",description:"Los caracteres de escape para matrices de YAML multil\xEDnea no necesitan el mismo escape que las matrices de una sola l\xEDnea, por lo que cuando est\xE1n en formato multil\xEDnea, elimine los escapes adicionales que no son necesarios"},"number-of-dollar-signs-to-indicate-math-block":{name:"N\xFAmero de signos de d\xF3lar para indicar el bloque matem\xE1tico",description:"La cantidad de signos de d\xF3lar para considerar el contenido matem\xE1tico como un bloque matem\xE1tico en lugar de matem\xE1ticas en l\xEDnea"}},debug:{"log-level":{name:"Nivel de registro",description:"Los tipos de registros que el servicio permitir\xE1 registrar. El valor predeterminado es error."},"linter-config":{name:"Configuraci\xF3n de Linter",description:"El contenido del archivo data.json para Linter a partir de la carga de la p\xE1gina de configuraci\xF3n"},"log-collection":{name:"Recopilar registros al activar y desactivar el archivo actual",description:"Contin\xFAa y recopila registros cuando `Analizar en guardar` y analizar el archivo actual. Estos registros pueden ser \xFAtiles para depurar y crear informes de errores."},"linter-logs":{name:"Registros de Linter",description:"Los registros del \xFAltimo `Analizar en guardar` o del \xFAltimo archivo actual de analizar se ejecutan si est\xE1n habilitados."}}},options:{"custom-command":{name:"Comandos personalizados",description:"Los comandos personalizados son comandos de Obsidian que se ejecutan despu\xE9s de que Linter termina de ejecutar sus reglas regulares. Esto significa que no se ejecutan antes de que se ejecute la l\xF3gica de marca de tiempo YAML, por lo que pueden hacer que la marca de tiempo de YAML se active en la siguiente ejecuci\xF3n del Linter. Solo puede seleccionar un comando de Obsidian una vez.",warning:"Al seleccionar una opci\xF3n, aseg\xFArese de seleccionar la opci\xF3n usando el rat\xF3n o presionando la clave Intro. Es posible que otros m\xE9todos de selecci\xF3n no funcionen y solo se guardar\xE1n las selecciones de un comando de Obsidian real o una cadena vac\xEDa.","add-input-button-text":"Agregar nuevo comando","command-search-placeholder-text":"Comando de Obsidian","move-up-tooltip":"Desplazar hacia arriba","move-down-tooltip":"Desplazar hacia abajo","delete-tooltip":"Borrar"},"custom-replace":{name:"Reemplazo regex personalizado",description:"El reemplazo de regex personalizado se puede usar para reemplazar cualquier cosa que coincida con el valor de b\xFAsqueda de regex con el valor de reemplazo. Los valores de reemplazo y b\xFAsqueda deber\xE1n ser valores regex v\xE1lidos.",warning:"Use esto con precauci\xF3n si no conoce regex. Adem\xE1s, aseg\xFArese de no usar lookbehinds en su regex en dispositivos m\xF3viles iOS, ya que eso har\xE1 que falle analizar ya que no es compatible con esa plataforma.","add-input-button-text":"Agregar nuevo reemplazo de regex","regex-to-find-placeholder-text":"Regex para encontrar","flags-placeholder-text":"Marcas","regex-to-replace-placeholder-text":"Regex para reemplazar","label-placeholder-text":"etiqueta","move-up-tooltip":"Desplazar hacia arriba","move-down-tooltip":"Desplazar hacia abajo","delete-tooltip":"Borrar"}},rules:{"auto-correct-common-misspellings":{name:"Correcci\xF3n autom\xE1tica de errores ortogr\xE1ficos comunes",description:'Utiliza un diccionario de errores ortogr\xE1ficos comunes para convertirlos autom\xE1ticamente a su ortograf\xEDa correcta. Consulte mapa de autocorrecci\xF3n para obtener la lista completa de palabras corregidas autom\xE1ticamente. Nota: esta lista puede funcionar en texto de varios idiomas, pero esta lista es la misma sin importar qu\xE9 idioma est\xE9 en uso actualmente.',"ignore-words":{name:"Ignorar palabras",description:"Una lista separada por comas de palabras en min\xFAsculas para ignorar al corregir autom\xE1ticamente"}},"add-blockquote-indentation-on-paste":{name:"Agregar sangr\xEDa de blockquote en pegar",description:"Agrega blockquotes a todas menos a la primera l\xEDnea, cuando el cursor est\xE1 en una l\xEDnea blockquote/callout durante el pegado"},"blockquote-style":{name:"Estilo de cotizaci\xF3n en bloque",description:"Se asegura de que el estilo de la cita en bloque sea consistente.",style:{name:"Estilo",description:"El estilo utilizado en los indicadores de cotizaci\xF3n en bloque"}},"capitalize-headings":{name:"Poner may\xFAsculas en los encabezados",description:"Los encabezados deben estar formateados con may\xFAsculas",style:{name:"Estilo",description:"El estilo de may\xFAsculas que se va a utilizar"},"ignore-case-words":{name:"Ignorar palabras en may\xFAsculas y min\xFAsculas",description:"Solo aplique el estilo de may\xFAsculas y min\xFAsculas a las palabras que est\xE9n todas en min\xFAsculas"},"ignore-words":{name:"Ignorar palabras",description:"Una lista de palabras separadas por comas para ignorar al poner en may\xFAsculas"},"lowercase-words":{name:"Palabras en min\xFAsculas",description:"Una lista de palabras separadas por comas para mantener min\xFAsculas"}},"compact-yaml":{name:"YAML compacto",description:"Elimina las l\xEDneas en blanco iniciales y finales en la materia frontal de YAML.","inner-new-lines":{name:"Nuevas l\xEDneas internas",description:"Quitar nuevas l\xEDneas que no est\xE9n al principio o al final del YAML"}},"consecutive-blank-lines":{name:"L\xEDneas en blanco consecutivas",description:"Debe haber como m\xE1ximo una l\xEDnea en blanco consecutiva."},"convert-bullet-list-markers":{name:"Convertir marcadores de lista de vi\xF1etas",description:"Convierte s\xEDmbolos de marcador de lista de vi\xF1etas comunes en marcadores de lista de rebajas."},"convert-spaces-to-tabs":{name:"Convertir espacios en pesta\xF1as",description:"Convierte los espacios iniciales en pesta\xF1as.",tabsize:{name:"Tama\xF1o de la pesta\xF1a",description:"N\xFAmero de espacios que se convertir\xE1n en una pesta\xF1a"}},"emphasis-style":{name:"Estilo de \xE9nfasis",description:"Se asegura de que el estilo de \xE9nfasis sea consistente.",style:{name:"Estilo",description:"El estilo utilizado para denotar el contenido enfatizado"}},"empty-line-around-blockquotes":{name:"L\xEDnea vac\xEDa alrededor de blockquotes",description:"Asegura que haya una l\xEDnea vac\xEDa alrededor de blockquotes a menos que inicien o finalicen un documento. **Tenga en cuenta que una l\xEDnea vac\xEDa es un nivel menos de anidamiento para blockquotes o un car\xE1cter de nueva l\xEDnea.**"},"empty-line-around-code-fences":{name:"L\xEDnea vac\xEDa alrededor de las vallas de c\xF3digo",description:"Garantiza que haya una l\xEDnea vac\xEDa alrededor de las vallas de c\xF3digo a menos que inicien o finalicen un documento."},"empty-line-around-math-blocks":{name:"L\xEDnea vac\xEDa alrededor de los bloques matem\xE1ticos",description:"Asegura que haya una l\xEDnea vac\xEDa alrededor de los bloques matem\xE1ticos usando `N\xFAmero de signos de d\xF3lar para indicar un bloque matem\xE1tico` para determinar cu\xE1ntos signos de d\xF3lar indica un bloque matem\xE1tico para matem\xE1ticas de una sola l\xEDnea."},"empty-line-around-tables":{name:"L\xEDnea vac\xEDa alrededor de las tablas",description:"Asegura que haya una l\xEDnea vac\xEDa alrededor de las tablas con sabor a github a menos que inicien o finalicen un documento."},"escape-yaml-special-characters":{name:"Evitar los caracteres especiales de YAML",description:`Escapa dos puntos con un espacio despu\xE9s de ellos (:), comillas simples (') y comillas dobles (") en YAML.`,"try-to-escape-single-line-arrays":{name:"Intente escapar las matrices de una sola l\xEDnea",description:'Intenta escapar de los valores de matriz suponiendo que una matriz comienza con "[", termina con "]" y tiene elementos que est\xE1n delimitados por ",".'}},"file-name-heading":{name:"Encabezado de nombre de archivo",description:"Inserta el nombre de archivo como un encabezado H1 si no existe ning\xFAn encabezado H1."},"footnote-after-punctuation":{name:"Nota al pie despu\xE9s de la puntuaci\xF3n",description:"Asegura que las referencias de notas al pie se coloquen despu\xE9s de la puntuaci\xF3n, no antes."},"force-yaml-escape":{name:"Forzar escape de YAML",description:"Escapa los valores de las claves YAML especificadas.","force-yaml-escape-keys":{name:"Forzar escape de YAML en las claves",description:"Utiliza el car\xE1cter de escape de YAML en las claves de YAML especificadas separadas por un nuevo car\xE1cter de l\xEDnea si a\xFAn no est\xE1 escapado. No lo use en matrices de YAML."}},"format-tags-in-yaml":{name:"Dar formato a las etiquetas de formato en YAML",description:"Elimine los hashtags de las etiquetas en el frontmatter del YAML, ya que hacen que las etiquetas no sean v\xE1lidas."},"format-yaml-array":{name:"Dar formato a las matrices de YAML",description:"Permite el formato de matrices regulares de YAML como multil\xEDnea o de una sola l\xEDnea y las `etiquetas` y `alias` pueden tener algunos formatos espec\xEDficos de YAML de Obsidian. Tenga en cuenta que una sola cadena a una sola l\xEDnea pasa de una sola entrada de cadena a una matriz de una sola l\xEDnea si hay m\xE1s de 1 entrada presente. Lo mismo es cierto para una sola cadena a multil\xEDnea, excepto que se convierte en una matriz multil\xEDnea.","alias-key":{name:"Dar formato a la secci\xF3n de alias de YAML",description:"Activa el formato para la secci\xF3n de alias YAML. No debe habilitar esta opci\xF3n junto con la regla `Alias de t\xEDtulo YAML`, ya que es posible que no funcionen bien juntos o que tengan diferentes estilos de formato seleccionados que causen resultados inesperados."},"tag-key":{name:"Dar formato a la secci\xF3n de etiquetas de YAML",description:"Activa el formato para la secci\xF3n de etiquetas de YAML."},"default-array-style":{name:"Estilo de secci\xF3n de matriz predeterminado de YAML",description:"El estilo de otras matrices de YAML que no son `etiquetas`, `alias` o en `Forzar valores de clave para que sean matrices de una sola l\xEDnea` y `Forzar valores de clave para que sean matrices multil\xEDnea`"},"default-array-keys":{name:"Dar formato a las secciones de matrices de YAML",description:"Activa el formato para matrices normales de YAML"},"force-single-line-array-style":{name:"Forzar que los valores de clave sean matrices de una sola l\xEDnea",description:"Fuerza la matriz de YAML para que las nuevas claves separadas por l\xEDnea est\xE9n en formato de una sola l\xEDnea (deje vac\xEDo para deshabilitar esta opci\xF3n)"},"force-multi-line-array-style":{name:"Forzar que los valores de las claves sean matrices multil\xEDneas",description:"Fuerza la matriz de YAML para que las nuevas claves separadas por l\xEDnea est\xE9n en formato multil\xEDnea (deje vac\xEDa para deshabilitar esta opci\xF3n)"}},"header-increment":{name:"Incremento de encabezado",description:"Los niveles de encabezado solo deben aumentar en un nivel a la vez","start-at-h2":{name:"Iniciar el incremento de encabezado en el nivel de encabezado 2",description:"Hace que el nivel de encabezado 2 sea el nivel de t\xEDtulo m\xEDnimo en un archivo para el incremento de encabezado y desplaza todos los encabezados en consecuencia para que se incrementen a partir de un encabezado de nivel 2."}},"heading-blank-lines":{name:"L\xEDneas en blanco de encabezado",description:"Todos los encabezados tienen una l\xEDnea en blanco antes y despu\xE9s (excepto cuando el encabezado est\xE1 al principio o al final del documento).",bottom:{name:"Abajo",description:"Asegura una l\xEDnea en blanco despu\xE9s de los encabezados"},"empty-line-after-yaml":{name:"L\xEDnea vac\xEDa entre el YAML y el encabezado",description:"Mantenga la l\xEDnea vac\xEDa entre el frontmatter del YAML y el encabezado"}},"headings-start-line":{name:"Comenzar los encabezados al principio de la l\xEDnea",description:"Los encabezados que no inician una l\xEDnea tendr\xE1n su espacio en blanco anterior eliminado para asegurarse de que se reconozcan como encabezados."},"insert-yaml-attributes":{name:"Insertar atributos de YAML",description:"Inserta los atributos especificados de YAML en el frontmatter del YAML. Coloque cada atributo en una sola l\xEDnea.","text-to-insert":{name:"Texto a insertar",description:"Texto para insertar en el frontmatter del YAML"}},"line-break-at-document-end":{name:"Salto de l\xEDnea al final del documento",description:"Asegura que haya exactamente un salto de l\xEDnea al final de un documento."},"move-footnotes-to-the-bottom":{name:"Mover las notas al pie a la parte inferior",description:"Mueva todas las notas al pie de p\xE1gina a la parte inferior del documento."},"move-math-block-indicators-to-their-own-line":{name:"Mover los indicadores de bloques matem\xE1ticos a su propia l\xEDnea",description:"Mueva todos los indicadores de bloques matem\xE1ticos iniciales y finales a sus propias l\xEDneas usando `N\xFAmero de signos de d\xF3lar para indicar un bloque matem\xE1tico` para determinar cu\xE1ntos signos de d\xF3lar indica un bloque matem\xE1tico para matem\xE1ticas de una sola l\xEDnea."},"move-tags-to-yaml":{name:"Mover etiquetas a YAML",description:"Mueva todas las etiquetas al frontmatter del YAML del documento.","how-to-handle-existing-tags":{name:"Operaci\xF3n de etiqueta corporal",description:"Lo qur se debe hacer con las etiquetas no ignoradas en el cuerpo del archivo una vez que se han movido al frontmatter"},"tags-to-ignore":{name:"Etiquetas para omitir",description:"Las etiquetas que no se mover\xE1n a la matriz de etiquetas ni se eliminar\xE1n del contenido del cuerpo si est\xE1 habilitado `Eliminar el hashtag de las etiquetas en el cuerpo del contenido`. Cada etiqueta debe estar en una nueva l\xEDnea y sin el `#`. **Aseg\xFArese de no incluir el hashtag en el nombre de la etiqueta.**"}},"no-bare-urls":{name:"Sin URL desnuda",description:"Encierra las direcciones URL desnudas con corchetes angulares, excepto cuando est\xE1n encerradas en marcas traseras, llaves cuadradas o comillas simples o dobles.","no-bare-uris":{name:"Sin URI desnuda",description:"Encierra las direcciones URI desnudas con corchetes angulares, excepto cuando est\xE1n encerradas en marcas traseras, llaves cuadradas o comillas simples o dobles."}},"ordered-list-style":{name:"Estilo de lista ordenada",description:"Se asegura de que las listas ordenadas siguen el estilo especificado. Tenga en cuenta que 2 espacios o 1 tabulaci\xF3n se considera un nivel de sangr\xEDa.","number-style":{name:"Estilo num\xE9rico",description:"El estilo num\xE9rico utilizado en los indicadores de lista ordenada"},"list-end-style":{name:"Estilo final del indicador de lista ordenada",description:"El car\xE1cter final de un indicador de lista ordenada"}},"paragraph-blank-lines":{name:"L\xEDneas en blanco del p\xE1rrafo",description:"Todos los p\xE1rrafos deben tener exactamente una l\xEDnea en blanco antes y despu\xE9s."},"prevent-double-checklist-indicator-on-paste":{name:"Evitar el indicador de doble lista de verificaci\xF3n en pegar",description:"Elimina el indicador de lista de verificaci\xF3n inicial del texto para pegar si la l\xEDnea en la que se encuentra el cursor en el archivo tiene un indicador de lista de verificaci\xF3n"},"prevent-double-list-item-indicator-on-paste":{name:"Prevenir el indicador de elemento de lista doble al pegar",description:"Elimina el indicador de lista inicial del texto para pegar si la l\xEDnea en la que se encuentra el cursor en el archivo tiene un indicador de lista"},"proper-ellipsis-on-paste":{name:"Puntos suspensivos adecuados al pegar",description:"Reemplaza tres puntos consecutivos por puntos suspensivos aunque tengan un espacio entre ellos en el texto a pegar"},"proper-ellipsis":{name:"Puntos suspensivos propios",description:"Reemplaza tres puntos consecutivos con puntos suspensivos."},"quote-style":{name:"Estilo de cotizaci\xF3n",description:"Actualiza las comillas en el contenido del cuerpo para que se actualicen a los estilos de comillas simples y dobles especificados.","single-quote-enabled":{name:"Habilitar `Estilo de comillas simples`",description:"Especifica que se debe utilizar el estilo de comillas simples seleccionado."},"single-quote-style":{name:"Estilo de comillas simples",description:"El estilo de las comillas simples a utilizar."},"double-quote-enabled":{name:"Habilitar `Estilo de comillas dobles`",description:"Especifica que se debe utilizar el estilo de comillas dobles seleccionado."},"double-quote-style":{name:"Estilo de comillas dobles",description:"El estilo de comillas dobles a utilizar."}},"re-index-footnotes":{name:"Volver a indexar notas al pie",description:"Vuelve a indexar las notas al pie de p\xE1gina y las notas al pie, seg\xFAn el orden de aparici\xF3n (NOTA: esta regla *no* funciona si hay m\xE1s de una nota al pie para una clave)."},"remove-consecutive-list-markers":{name:"Eliminar marcadores de lista consecutiva",description:"Elimina marcadores de lista consecutivos. \xDAtil al copiar y pegar elementos de la lista."},"remove-empty-lines-between-list-markers-and-checklists":{name:"Eliminar l\xEDneas vac\xEDas entre marcadores de lista y listas de verificaci\xF3n",description:"No debe haber l\xEDneas vac\xEDas entre los marcadores de lista y las listas de verificaci\xF3n."},"remove-empty-list-markers":{name:"Eliminar marcadores de lista vac\xEDa",description:"Elimina marcadores de listas vac\xEDas, es decir, lista de elementos sin contenido."},"remove-hyphenated-line-breaks":{name:"Eliminar saltos de l\xEDnea con gui\xF3n",description:"Elimina los saltos de l\xEDnea con gui\xF3n. \xDAtil al pegar texto de libros de texto."},"remove-hyphens-on-paste":{name:"Eliminar guiones al pegar",description:"Elimina guiones del texto al pegar"},"remove-leading-or-trailing-whitespace-on-paste":{name:"Eliminar espacios en blanco iniciales o finales al pegar",description:"Elimina cualquier espacio en blanco inicial que no sea una pesta\xF1a y todos los espacios en blanco finales para que el texto se pegue"},"remove-leftover-footnotes-from-quote-on-paste":{name:"Eliminar las notas al pie sobrantes de la cita al pegar",description:"Elimina las referencias de notas al pie sobrantes para que el texto se pegue"},"remove-link-spacing":{name:"Quitar el espacio entre enlaces",description:"Elimina el espacio alrededor del texto del enlace."},"remove-multiple-blank-lines-on-paste":{name:"Eliminar varias l\xEDneas en blanco al pegar",description:"Condensa varias l\xEDneas en blanco en una l\xEDnea en blanco para que el texto se pegue"},"remove-multiple-spaces":{name:"Quitar varios espacios",description:"Elimina dos o m\xE1s espacios consecutivos. Ignora los espacios al principio y al final de la l\xEDnea."},"remove-space-around-characters":{name:"Quitar el espacio alrededor de los caracteres",description:"Garantiza que determinados caracteres no est\xE9n rodeados de espacios en blanco (ya sean espacios individuales o tabulaciones). Tenga en cuenta que esto puede causar problemas con el formato de descuento en algunos casos.","include-fullwidth-forms":{name:"Incluir formularios de ancho completo",description:'Incluir bloque Unicode de formularios de ancho completo'},"include-cjk-symbols-and-punctuation":{name:"Incluir s\xEDmbolos de CJK y puntuaci\xF3n",description:'Incluir Bloque Unicode de s\xEDmbolos y puntuaci\xF3n de CJK'},"include-dashes":{name:"Incluir guiones",description:"Incluir gui\xF3n corto (\u2013) y gui\xF3n largo (\u2014)"},"other-symbols":{name:"Otros s\xEDmbolos",description:"Otros s\xEDmbolos para incluir"}},"remove-space-before-or-after-characters":{name:"Quitar el espacio antes o despu\xE9s de los caracteres",description:"Elimina el espacio antes de los caracteres especificados y despu\xE9s de los caracteres especificados. Tenga en cuenta que esto puede causar problemas con el formato de descuento en algunos casos.","characters-to-remove-space-before":{name:"Eliminar espacio antes de los caracteres",description:"Elimina el espacio antes de los caracteres especificados. **Nota: el uso de `{` o `}` en la lista de caracteres afectar\xE1 inesperadamente a los archivos, ya que se usa en la sintaxis de ignorar en segundo plano.**"},"characters-to-remove-space-after":{name:"Eliminar espacio despu\xE9s de los caracteres",description:"Elimina el espacio despu\xE9s de los caracteres especificados. **Nota: el uso de `{` o `}` en la lista de caracteres afectar\xE1 inesperadamente a los archivos, ya que se usa en la sintaxis de ignorar en segundo plano.**"}},"remove-trailing-punctuation-in-heading":{name:"Eliminar la puntuaci\xF3n final en el encabezado",description:'Elimina la puntuaci\xF3n especificada al final de los encabezados, asegur\xE1ndose de ignorar el punto y coma al final de referencias de entidades de HTML.',"punctuation-to-remove":{name:"Puntuaci\xF3n final",description:"La puntuaci\xF3n final que se eliminar\xE1 de los encabezados del archivo."}},"remove-yaml-keys":{name:"Eliminar claves de YAML",description:"Elimina las claves especificadas de YAML","yaml-keys-to-remove":{name:"Claves de YAML para eliminar",description:"Las claves de YAML para eliminar del frontmatter del YAML con o sin dos puntos"}},"space-after-list-markers":{name:"Espacio despu\xE9s de los marcadores de lista",description:"Debe haber un solo espacio despu\xE9s de los marcadores de lista y las casillas de verificaci\xF3n."},"space-between-chinese-japanese-or-korean-and-english-or-numbers":{name:"Espacio entre chino japon\xE9s o coreano e ingl\xE9s o n\xFAmeros",description:'Garantiza que el chino, el japon\xE9s o el coreano y el ingl\xE9s o los n\xFAmeros est\xE9n separados por un solo espacio. Sigue estas directrices'},"strong-style":{name:"Estilo fuerte",description:"Se asegura de que el estilo fuerte sea consistente.",style:{name:"Estilo",description:"El estilo utilizado para denotar contenido fuerte/en negrita"}},"trailing-spaces":{name:"Espacios finales",description:"Elimina espacios adicionales despu\xE9s de cada l\xEDnea.","twp-space-line-break":{name:"Salto de l\xEDnea de dos espacios",description:'Ignore dos espacios seguidos de un salto de l\xEDnea ("Regla de dos espacios").'}},"two-spaces-between-lines-with-content":{name:"Dos espacios entre l\xEDneas con contenido",description:"Se asegura de que el salto de l\xEDnea especificado se agregue al final de las l\xEDneas y el contenido contin\xFAe en la l\xEDnea siguiente para p\xE1rrafos, citas en bloque y elementos de lista.","line-break-indicator":{name:"Indicador de salto de l\xEDnea",description:"El indicador de salto de l\xEDnea a utilizar."}},"unordered-list-style":{name:"Estilo de lista desordenada",description:"Se asegura de que las listas desordenadas sigan el estilo especificado.","list-style":{name:"Estilo de elemento de lista",description:"El estilo de elemento de lista para usar en listas desordenadas"}},"yaml-key-sort":{name:"Clasificaci\xF3n de clave de YAML",description:"Ordena las claves de YAML seg\xFAn el orden y la prioridad especificados. Nota: tambi\xE9n puede eliminar las l\xEDneas en blanco.","yaml-key-priority-sort-order":{name:"Orden de clasificaci\xF3n de prioridad de clave de YAML",description:"El orden en el que se ordenan las claves con una en cada l\xEDnea donde se ordena en el orden que se encuentra en la lista"},"priority-keys-at-start-of-yaml":{name:"Claves de prioridad al inicio del YAML",description:"El orden de clasificaci\xF3n de prioridad clave de YAML se coloca al comienzo del frontmatter del YAML"},"yaml-sort-order-for-other-keys":{name:"Orden de clasificaci\xF3n de YAML para otras claves",description:"La forma en que ordenar las claves que no se encuentran en el \xE1rea de texto `Orden de clasificaci\xF3n de prioridad de clave de YAML`"}},"yaml-timestamp":{name:"Marca de tiempo de YAML",description:"Lleve un registro de la fecha en que se edit\xF3 el archivo por \xFAltima vez en el frente del YAML. Obtiene las fechas de los metadatos del archivo.","date-created":{name:"Fecha de creaci\xF3n",description:"Inserte la fecha de creaci\xF3n del archivo"},"date-created-key":{name:"Clave de fecha de creaci\xF3n",description:"La clave de YAML para usar para la fecha de creaci\xF3n"},"date-modified":{name:"Fecha modificada",description:"Inserte la fecha en que se modific\xF3 el archivo por \xFAltima vez"},"date-modified-key":{name:"Clave de fecha modificada",description:"La clave de YAML para usar para la fecha de modificaci\xF3n"},format:{name:"Formato",description:"Formato de fecha de Moment a usar (ver [Opciones de formato de Moment](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/))"}},"yaml-title-alias":{name:"Alias de t\xEDtulo de YAML",description:"Inserta o actualiza el t\xEDtulo del archivo en la secci\xF3n de alias de YAML frontmatter. Obtiene el t\xEDtulo del primer H1 o nombre de archivo.","preserve-existing-alias-section-style":{name:"Conservar el estilo de secci\xF3n de alias existente",description:"Si se establece, la configuraci\xF3n `Estilo de secci\xF3n de alias de YAML` se aplica solo a las secciones reci\xE9n creadas"},"keep-alias-that-matches-the-filename":{name:"Mantenga el alias que coincida con el nombre del archivo",description:"Estos alias suelen ser redundantes."},"use-yaml-key-to-keep-track-of-old-filename-or-heading":{name:"Use la clave de YAML especificado por `Clave auxiliar de alias` para ayudar con los cambios de nombre de archivo y encabezado",description:"Si se establece, cuando cambia el primer encabezado H1 o cambia el nombre de archivo si el primer H1 no est\xE1 presente, el alias anterior almacenado en esta clave se reemplazar\xE1 con el nuevo valor en lugar de simplemente insertar una nueva entrada en la matriz de alias."},"alias-helper-key":{name:"Clave auxiliar de alias",description:"La clave que se debe utilizar para ayudar a realizar un seguimiento de cu\xE1l fue el \xFAltimo nombre de archivo o encabezado que esta regla almacen\xF3 en el frontmatter."}},"yaml-title":{name:"T\xEDtulo de YAML",description:"Inserta el t\xEDtulo del archivo en el frontmatter de YAML. Obtiene el t\xEDtulo seg\xFAn el modo seleccionado.","title-key":{name:"Clave de t\xEDtulo",description:"La clave de YAML para usar para el t\xEDtulo"},mode:{name:"Modo",description:"El m\xE9todo a utilizar para obtener el t\xEDtulo"}}},enums:{"Title Case":"Titulo del Caso","ALL CAPS":"TODO MAY\xDASCULAS","First letter":"Primera letra",".":".",")":")",ERROR:"error",TRACE:"trazar",DEBUG:"depurar",INFO:"informaci\xF3n",WARN:"advertencia",SILENT:"silencio",ascending:"ascendente",lazy:"perezoso",Nothing:"nada","Remove hashtag":"Remove hashtag","Remove whole tag":"Remove whole tag",asterisk:"asterisco",underscore:"guion bajo",consistent:"congruente","-":"-","*":"*","+":"+",space:"espacio","no space":"sin espacio",None:"nada","Ascending Alphabetical":"Ascendente alfab\xE9tico","Descending Alphabetical":"Descendiente alfab\xE9tico","multi-line":"multil\xEDnea","single-line":"linea sola","single string to single-line":"una sola cadena a una sola l\xEDnea","single string to multi-line":"cadena \xFAnica a multil\xEDnea","single string comma delimited":"cadena \xFAnica delimitada por comas","single string space delimited":"espacio de una sola cadena delimitado","single-line space delimited":"espacio de una sola l\xEDnea delimitado","first-h1":"primer encabezado de nivel 1","first-h1-or-filename-if-h1-missing":"primer encabezado de nivel 1 o nombre de archivo si falta el encabezado de primer nivel 1",filename:"nombre del archivo","''":"''","\u2018\u2019":"\u2018\u2019",'""':'""',"\u201C\u201D":"\u201C\u201D","\\":"\\","
    ":"
    "," ":" ","
    ":"
    "}};var od={};var sd={};var ld={};var cd={};var ud={};var dd={};var pd={};var md={};var fd={};var gd={};var hd={};var yd={};var bd={commands:{"lint-file":{name:"\u041B\u0438\u043D\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0444\u0430\u0439\u043B\u0430","error-message":"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0444\u0430\u0439\u043B\u0430"},"lint-file-unless-ignored":{name:"\u041B\u0438\u043D\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 \u043E\u043D \u043D\u0435 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044F"},"lint-all-files":{name:"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435","error-message":"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432","success-message":"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u043F\u0440\u043E\u0448\u0435\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u043E","errors-message-singular":"\u041B\u0438\u043D\u0442\u0435\u0440 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043B \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0441 1 \u043E\u0448\u0438\u0431\u043A\u043E\u0439.","errors-message-plural":"\u041B\u0438\u043D\u0442\u0435\u0440 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043B \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0441 {NUM} \u043E\u0448\u0438\u0431\u043E\u043A.","start-message":"\u042D\u0442\u043E \u0438\u0437\u043C\u0435\u043D\u0438\u0442 \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0444\u0430\u0439\u043B\u044B \u0438 \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043E\u0448\u0438\u0431\u043A\u0438.","submit-button-text":"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0433\u043E","submit-button-notice-text":"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432..."},"lint-all-files-in-folder":{name:"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u043F\u0430\u043F\u043A\u0435","start-message":"\u042D\u0442\u043E \u0438\u0437\u043C\u0435\u043D\u0438\u0442 \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0432 {FOLDER_NAME}, \u0432\u043A\u043B\u044E\u0447\u0430\u044F \u0444\u0430\u0439\u043B\u044B \u0432 \u043F\u043E\u0434\u043F\u0430\u043F\u043A\u0430\u0445, \u0447\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043E\u0448\u0438\u0431\u043A\u0438.","submit-button-text":"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {FOLDER_NAME}","submit-button-notice-text":"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {FOLDER_NAME}...","error-message":"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 \u043F\u0430\u043F\u043A\u0435","success-message":"\u041B\u0438\u043D\u0442 \u0432\u0441\u0435\u0445 {NUM} \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {FOLDER_NAME} \u043F\u0440\u043E\u0448\u0435\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u043E.","message-singular":"\u041B\u0438\u043D\u0442\u0435\u0440 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043B \u0432\u0441\u0435 {NUM} \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {FOLDER_NAME} \u0441 1 \u043E\u0448\u0438\u0431\u043A\u043E\u0439.","message-plural":"\u041B\u0438\u043D\u0442\u0435\u0440 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043B \u0432\u0441\u0435 {FILE_COUNT} \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {FOLDER_NAME} \u0441 {ERROR_COUNT} \u043E\u0448\u0438\u0431\u043E\u043A."},"paste-as-plain-text":{name:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043A\u0430\u043A Plain Text, \u0431\u0435\u0437 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439"},"lint-file-pop-up-menu-text":{name:"\u041B\u0438\u043D\u0442 \u0444\u0430\u0439\u043B\u0430"},"lint-folder-pop-up-menu-text":{name:"\u041B\u0438\u043D\u0442 \u043F\u0430\u043F\u043A\u0438"}},logs:{"plugin-load":"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0438\u043D\u0430","plugin-unload":"\u0412\u044B\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u043B\u0430\u0433\u0438\u043D\u0430","folder-lint":"\u041B\u0438\u043D\u0442 \u043F\u0430\u043F\u043A\u0438 ","linter-run":"\u0417\u0430\u043F\u0443\u0441\u043A \u043B\u0438\u043D\u0442\u0435\u0440\u0430","file-change-yaml-lint-run":"\u0417\u0430\u043F\u0443\u0441\u043A \u043B\u0438\u043D\u0442\u0430 YAML \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430","file-change-yaml-lint-skipped":"\u041D\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0444\u0430\u0439\u043B\u0430, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043B\u0438\u043D\u0442 YAML \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D","file-change-yaml-lint-warning":"\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0444\u0430\u0439\u043B\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043D\u043E (debounce) \u0437\u0430\u043F\u0443\u0449\u0435\u043D. \u0413\u0434\u0435-\u0442\u043E \u0447\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A.","paste-link-warning":"\u0432\u0441\u0442\u0430\u0432\u043A\u0430 \u043F\u0440\u0435\u0440\u0432\u0430\u043D\u0430, \u0442\u0430\u043A \u043A\u0430\u043A \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0431\u0443\u0444\u0435\u0440\u0430 \u043E\u0431\u043C\u0435\u043D\u0430 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0441\u0441\u044B\u043B\u043A\u043E\u0439, \u0438 \u044D\u0442\u043E \u043F\u043E\u0437\u0432\u043E\u043B\u0438\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u043E\u0432 \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043F\u043B\u0430\u0433\u0438\u043D\u0430\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u044E\u0442 \u0432\u0441\u0442\u0430\u0432\u043A\u0443.","see-console":"\u0411\u043E\u043B\u0435\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0443\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u0441\u043C\u043E\u0442\u0440\u0438\u0442\u0435 \u0432 \u043A\u043E\u043D\u0441\u043E\u043B\u0438.","unknown-error":"\u0412\u043E \u0432\u0440\u0435\u043C\u044F \u043B\u0438\u043D\u0442\u0438\u043D\u0433\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430.","moment-locale-not-found":"\u041F\u043E\u043F\u044B\u0442\u043A\u0430 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C Moment.js \u043D\u0430 {MOMENT_LOCALE}, \u0441 {CURRENT_LOCALE}","file-change-lint-message-start":"\u041B\u0438\u043D\u0442 \u0443\u0441\u043F\u0435\u0448\u0435\u043D","custom-command-callback-warning":"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0439 (callback) \u0434\u043B\u044F \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0442\u0435\u0441\u0442\u043E\u0432.","pre-rules":"\u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u043F\u0435\u0440\u0435\u0434 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u043C\u0438 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043C\u0438","post-rules":"\u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u043F\u043E\u0441\u043B\u0435 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0439","rule-running":"\u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u044B","custom-regex":"\u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0439","running-custom-regex":"\u0417\u0430\u043F\u0443\u0441\u043A \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0445 \u043F\u0440\u0430\u0432\u0438\u043B \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0439","running-custom-lint-command":"\u0417\u0430\u043F\u0443\u0441\u043A \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434 \u043B\u0438\u043D\u0442\u0430","custom-lint-duplicate-warning":'\u0412\u044B \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043E\u0434\u043D\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 ("{COMMAND_NAME}") \u043A\u0430\u043A \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u043E\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u043E \u043B\u0438\u043D\u0442\u0430 \u0434\u0432\u0430\u0436\u0434\u044B.',"custom-lint-error-message":"\u041A\u0430\u0441\u0442\u043E\u043C\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u043B\u0438\u043D\u0442\u0430","disabled-text":"\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E","run-rule-text":"\u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F","timing-key-not-found":"\u043A\u043B\u044E\u0447 \u0442\u0430\u0439\u043C\u0438\u043D\u0433\u0430 '{TIMING_KEY}' \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u043E \u0442\u0430\u0439\u043C\u0438\u043D\u0433\u0430\u0445, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043D \u0431\u044B\u043B \u043F\u0440\u043E\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D","milliseconds-abbreviation":"\u043C\u0441","invalid-date-format-error":"\u0424\u043E\u0440\u043C\u0430\u0442 \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B '{DATE}' \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u043E\u0430\u043D\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D \u0438\u043B\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0434\u0430\u0442\u0430 \u0431\u044B\u043B\u0430 \u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0430 \u0431\u0435\u0437 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0432 '{FILE_NAME}'","invalid-delimiter-error-message":"\u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044F \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u0438\u043D \u0441\u0438\u043C\u0432\u043E\u043B","missing-footnote-error-message":"\u0421\u043D\u043E\u0441\u043A\u0430 '{FOOTNOTE}' \u043D\u0435 \u0438\u043C\u0435\u0435\u0442 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0441\u043D\u043E\u0441\u043A\u0443 \u043F\u0435\u0440\u0435\u0434 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u044B\u043C \u0441\u043D\u043E\u0441\u043A\u0438 \u0438 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u0430. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0432\u0441\u0435 \u0441\u043D\u043E\u0441\u043A\u0438 \u0438\u043C\u0435\u044E\u0442 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0443\u044E \u0441\u0441\u044B\u043B\u043A\u0443 \u043F\u0435\u0440\u0435\u0434 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u044B\u043C \u0441\u043D\u043E\u0441\u043A\u0438.","too-many-footnotes-error-message":"\u0421\u043D\u043E\u0441\u043A\u0430 \u0441 \u043A\u043B\u044E\u0447\u043E\u043C '{FOOTNOTE_KEY}' \u0438\u043C\u0435\u0435\u0442 \u0431\u043E\u043B\u0435\u0435 \u043E\u0434\u043D\u043E\u0439 \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0435\u0451. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u043D\u043E\u0441\u043A\u0438 \u0442\u0430\u043A, \u0447\u0442\u043E\u0431\u044B \u0431\u044B\u043B\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u043D\u0430 \u0441\u043D\u043E\u0441\u043A\u0430 \u043D\u0430 \u043A\u043B\u044E\u0447 \u0441\u043D\u043E\u0441\u043A\u0438.","wrapper-yaml-error":"\u043E\u0448\u0438\u0431\u043A\u0430 \u0432 YAML: {ERROR_MESSAGE}","wrapper-unknown-error":"\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430: {ERROR_MESSAGE}"},"notice-text":{"empty-clipboard":"\u041D\u0435\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0432 \u0431\u0443\u0444\u0435\u0440\u0435 \u043E\u0431\u043C\u0435\u043D\u0430.","characters-added":"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E","characters-removed":"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0443\u0434\u0430\u043B\u0435\u043D\u043E","copy-to-clipboard-failed":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0441\u0442 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430: "},"all-rules-option":"\u0412\u0441\u0435","linter-title":"\u041B\u0438\u043D\u0442\u0435\u0440","empty-search-results-text":"\u041D\u0435\u0442 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u043F\u043E\u0438\u0441\u043A\u0443","warning-text":"\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435","file-backup-text":"\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0432\u044B \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438 \u0441\u0432\u043E\u0438 \u0444\u0430\u0439\u043B\u044B.","custom-command-warning":"\u041B\u0438\u043D\u0442 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0441 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u043C\u0438 \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u043C\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u043C\u0438 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043C\u0435\u0434\u043B\u0435\u043D\u043D\u044B\u043C \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u043C, \u0442\u0440\u0435\u0431\u0443\u044E\u0449\u0438\u043C \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u0438 \u0432 \u0431\u043E\u043A\u043E\u0432\u043E\u0439 \u043F\u0430\u043D\u0435\u043B\u0438. \u041E\u043D \u0437\u0430\u043C\u0435\u0442\u043D\u043E \u043C\u0435\u0434\u043B\u0435\u043D\u043D\u0435\u0435, \u0447\u0435\u043C \u0437\u0430\u043F\u0443\u0441\u043A \u0431\u0435\u0437 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0445 \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0445 \u043A\u043E\u043C\u0430\u043D\u0434. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439\u0442\u0435 \u0441 \u043E\u0441\u0442\u043E\u0440\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u044E.","cancel-button-text":"\u041E\u0442\u043C\u0435\u043D\u0430","copy-aria-label":"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C","disabled-other-rule-notice":"\u0415\u0441\u043B\u0438 \u0432\u044B \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435 {NAME_1}, \u043E\u043D \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442 {NAME_2}. \u0425\u043E\u0442\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C?","disabled-conflicting-rule-notice":"{NAME_1}, \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 {NAME_2}, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043D \u0431\u044B\u043B \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D \u0432 \u0442\u0430\u0431\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.",ok:"\u0425\u043E\u0440\u043E\u0448\u043E","parse-results-heading-text":"\u041A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u043F\u0430\u0440\u0441\u0438\u043D\u0433\u0430","file-parse-description-text":"\u041D\u0438\u0436\u0435 \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u043D \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u043C\u0435\u043D, \u043D\u0430\u0439\u0434\u0435\u043D\u043D\u044B\u0445 \u0432 {FILE}.","no-parsed-values-found-text":"\u0412 {FILE} \u043D\u0435 \u0431\u044B\u043B\u043E \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0437\u0430\u043C\u0435\u043D. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0432\u0441\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0441 \u043A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u043C\u0438 \u0437\u0430\u043C\u0435\u043D\u0430\u043C\u0438 \u0432 {FILE} \u0438\u043C\u0435\u044E\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u0432\u0435 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0438 \u0432\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u0438 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0439 \u0447\u0435\u0440\u0442\u043E\u0439 (\u0442.\u0435. |).","find-header-text":"\u0421\u043B\u043E\u0432\u043E \u0434\u043B\u044F \u041F\u043E\u0438\u0441\u043A\u0430","replace-header-text":"\u0417\u0430\u043C\u0435\u043D\u044F\u0435\u043C\u043E\u0435 \u0441\u043B\u043E\u0432\u043E","close-button-text":"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",tabs:{names:{general:"\u041E\u0431\u0449\u0438\u0435",custom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435",yaml:"YAML",heading:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438",content:"\u041A\u043E\u043D\u0442\u0435\u043D\u0442",footnote:"\u0421\u043D\u043E\u0441\u043A\u0438",spacing:"\u041E\u0442\u0441\u0442\u0443\u043F\u044B",paste:"\u0412\u0441\u0442\u0430\u0432\u043A\u0430",debug:"\u041E\u0442\u043B\u0430\u0434\u043A\u0430"},"default-search-bar-text":"\u041F\u043E\u0438\u0441\u043A \u0432\u0441\u0435\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A",general:{"lint-on-save":{name:"\u041B\u0438\u043D\u0442 \u043F\u0440\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0438",description:"\u041B\u0438\u043D\u0442 \u0444\u0430\u0439\u043B\u0430 \u043F\u0440\u0438 \u0440\u0443\u0447\u043D\u043E\u043C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0438 (\u043A\u043E\u0433\u0434\u0430 \u043D\u0430\u0436\u0430\u0442\u0430 Ctrl + S \u0438\u043B\u0438 \u043A\u043E\u0433\u0434\u0430 :w \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0438 VIM-\u0440\u0435\u0436\u0438\u043C\u0430)"},"display-message":{name:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043F\u043E\u0441\u043B\u0435 \u043B\u0438\u043D\u0442\u0430",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u044B\u0445 \u043F\u043E\u0441\u043B\u0435 \u043B\u0438\u043D\u0442\u0430"},"lint-on-file-change":{name:"\u041B\u0438\u043D\u0442 \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0444\u043E\u043A\u0443\u0441\u0435",description:"\u041A\u043E\u0433\u0434\u0430 \u0444\u0430\u0439\u043B \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438\u043B\u0438 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u043D\u043E\u0432\u044B\u0439, \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u0444\u0430\u0439\u043B \u043B\u0438\u043D\u0442\u0438\u0442\u0441\u044F."},"display-lint-on-file-change-message":{name:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0444\u043E\u043A\u0443\u0441\u0435",description:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043F\u0440\u0438 \u041B\u0438\u043D\u0442 \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0444\u043E\u043A\u0443\u0441\u0435"},"folders-to-ignore":{name:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0430\u043F\u043A\u0438",description:"\u041F\u0430\u043F\u043A\u0438, \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0438\u043B\u0438 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u043F\u0440\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0438.","folder-search-placeholder-text":"\u0418\u043C\u044F \u043F\u0430\u043F\u043A\u0438","add-input-button-text":"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0434\u0440\u0443\u0433\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u043A \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C\u044B\u043C","delete-tooltip":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C"},"files-to-ignore":{name:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B",description:"\u0424\u0430\u0439\u043B\u044B, \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u0432\u0441\u0435\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0438\u043B\u0438 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u043F\u0440\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0438.","file-search-placeholder-text":"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0444\u0430\u0439\u043B\u044B \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0439 (regex)","add-input-button-text":"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u043A \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C\u044B\u043C (regex)","delete-tooltip":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","label-placeholder-text":"\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A","flags-placeholder-text":"\u0444\u043B\u0430\u0433\u0438",warning:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u044D\u0442\u043E \u0441 \u043E\u0441\u0442\u043E\u0440\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u044E, \u0435\u0441\u043B\u0438 \u0432\u044B \u043D\u0435 \u0437\u043D\u0430\u0435\u0442\u0435 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F. \u041A\u0440\u043E\u043C\u0435 \u0442\u043E\u0433\u043E, \u0435\u0441\u043B\u0438 \u0432\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 (lookbehinds) \u0432 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0445 \u043D\u0430 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u043C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435 iOS, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0432\u0430\u0448\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435."},"override-locale":{name:"\u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u044F\u0437\u044B\u043A",description:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u044D\u0442\u043E, \u0435\u0441\u043B\u0438 \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u044F\u0437\u044B\u043A, \u043E\u0442\u043B\u0438\u0447\u043D\u044B\u0439 \u043E\u0442 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E"},"same-as-system-locale":"\u0422\u043E \u0436\u0435, \u0447\u0442\u043E \u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0435 ({SYS_LOCALE})","yaml-aliases-section-style":{name:"\u0421\u0442\u0438\u043B\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0430 YAML (aliases)",description:"\u0421\u0442\u0438\u043B\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0430 YAML (aliases)"},"yaml-tags-section-style":{name:"\u0421\u0442\u0438\u043B\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0430 YAML (tags)",description:"\u0421\u0442\u0438\u043B\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0430 YAML (tags)"},"default-escape-character":{name:"\u0421\u0438\u043C\u0432\u043E\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F YAML (escape)",description:"\u0421\u0438\u043C\u0432\u043E\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 YAML \u043F\u0440\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u0445 \u0438 \u0434\u0432\u043E\u0439\u043D\u044B\u0445 \u043A\u0430\u0432\u044B\u0447\u0435\u043A."},"remove-unnecessary-escape-chars-in-multi-line-arrays":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u044B\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u043E\u0433\u043E \u043C\u0430\u0441\u0441\u0438\u0432\u0430",description:"\u0421\u0438\u043C\u0432\u043E\u043B\u044B \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0445 \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432 YAML \u043D\u0435 \u043D\u0443\u0436\u0434\u0430\u044E\u0442\u0441\u044F \u0432 \u0442\u0430\u043A\u043E\u043C \u0436\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438, \u043A\u0430\u043A \u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u044B, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0432 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u0435 \u043B\u0438\u0448\u043D\u0438\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B."},"number-of-dollar-signs-to-indicate-math-block":{name:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u043D\u0430\u043A\u043E\u0432 \u0434\u043E\u043B\u043B\u0430\u0440\u0430 \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430",description:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u043D\u0430\u043A\u043E\u0432 \u0434\u043E\u043B\u043B\u0430\u0440\u0430, \u043F\u0440\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u043C \u0431\u043B\u043E\u043A\u043E\u043C, \u0430 \u043D\u0435 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0439 \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u043A\u043E\u0439."}},debug:{"log-level":{name:"\u0423\u0440\u043E\u0432\u0435\u043D\u044C \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",description:"\u0422\u0438\u043F\u044B \u043B\u043E\u0433\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u044B \u0434\u043B\u044F \u0437\u0430\u043F\u0438\u0441\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u043C. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E ERROR."},"linter-config":{name:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043B\u0438\u043D\u0442\u0435\u0440\u0430",description:"\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 data.json \u0434\u043B\u044F \u043B\u0438\u043D\u0442\u0435\u0440\u0430 \u043D\u0430 \u043C\u043E\u043C\u0435\u043D\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A"},"log-collection":{name:"\u0421\u043E\u0431\u0438\u0440\u0430\u0442\u044C \u043B\u043E\u0433\u0438 \u043F\u0440\u0438 \u043B\u0438\u043D\u0442\u0435 \u043F\u0440\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0438 \u0438 \u043B\u0438\u043D\u0442\u0435 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0444\u0430\u0439\u043B\u0430",description:"\u0421\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u043B\u043E\u0433\u0438 \u043F\u0440\u0438 \u041B\u0438\u043D\u0442 \u043F\u0440\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0438 \u0438 \u043B\u0438\u043D\u0442\u0435 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0444\u0430\u0439\u043B\u0430. \u042D\u0442\u0438 \u043B\u043E\u0433\u0438 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u043F\u043E\u043B\u0435\u0437\u043D\u044B \u0434\u043B\u044F \u043E\u0442\u043B\u0430\u0434\u043A\u0438 \u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445."},"linter-logs":{name:"\u041B\u043E\u0433\u0438 \u043B\u0438\u043D\u0442\u0435\u0440\u0430",description:"\u041B\u043E\u0433\u0438 \u043E\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u041B\u0438\u043D\u0442 \u043F\u0440\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0438 \u0438\u043B\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u043B\u0438\u043D\u0442\u0438\u043D\u0433\u0430 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B."}}},options:{"custom-command":{name:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B",description:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u2014 \u044D\u0442\u043E \u043A\u043E\u043C\u0430\u043D\u0434\u044B Obsidian, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u044E\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A linter \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0438\u0445 \u043E\u0431\u044B\u0447\u043D\u044B\u0445 \u043F\u0440\u0430\u0432\u0438\u043B. \u042D\u0442\u043E \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043E \u043E\u043D\u0438 \u043D\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u044E\u0442\u0441\u044F \u0434\u043E \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043B\u043E\u0433\u0438\u043A\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043C\u0435\u0442\u043A\u0438 YAML, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043D\u0438 \u043C\u043E\u0433\u0443\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u0441\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u043D\u0438\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u043C\u0435\u0442\u043A\u0438 YAML \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u0437\u0430\u043F\u0443\u0441\u043A\u0435 linter. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 Obsidian \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u0438\u043D \u0440\u0430\u0437.",warning:"\u041F\u0440\u0438 \u0432\u044B\u0431\u043E\u0440\u0435 \u043E\u043F\u0446\u0438\u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0432\u044B \u0432\u044B\u0431\u0440\u0430\u043B\u0438 \u0435\u0435 \u043B\u0438\u0431\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043C\u044B\u0448\u0438, \u043B\u0438\u0431\u043E \u043D\u0430\u0436\u0430\u0432 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 Enter. \u0414\u0440\u0443\u0433\u0438\u0435 \u043C\u0435\u0442\u043E\u0434\u044B \u0432\u044B\u0431\u043E\u0440\u0430 \u043C\u043E\u0433\u0443\u0442 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C, \u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0431\u043E\u0440\u044B \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B Obsidian \u0438\u043B\u0438 \u043F\u0443\u0441\u0442\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438.","add-input-button-text":"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u043A\u043E\u043C\u0430\u043D\u0434\u0443","command-search-placeholder-text":"\u041A\u043E\u043C\u0430\u043D\u0434\u0430 Obsidian","move-up-tooltip":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u0432\u0435\u0440\u0445","move-down-tooltip":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043D\u0438\u0437","delete-tooltip":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C"},"custom-replace":{name:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u043D\u044B \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0439",description:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u043D\u044B \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0439 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u044B \u0434\u043B\u044F \u0437\u0430\u043C\u0435\u043D\u044B \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0433\u043E \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u043C\u0443 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044E \u043F\u043E\u0438\u0441\u043A\u0430, \u043D\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0437\u0430\u043C\u0435\u043D\u044B. \u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0437\u0430\u043C\u0435\u043D\u044B \u0438 \u043F\u043E\u0438\u0441\u043A\u0430 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u043C\u0438 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043C\u0438.",warning:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u044D\u0442\u043E \u0441 \u043E\u0441\u0442\u043E\u0440\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u044E, \u0435\u0441\u043B\u0438 \u0432\u044B \u043D\u0435 \u0437\u043D\u0430\u0435\u0442\u0435 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F. \u0422\u0430\u043A\u0436\u0435 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0435\u0441\u043B\u0438 \u0432\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 \u043E\u0431\u0440\u0430\u0442\u043D\u044B\u0435 \u0441\u0441\u044B\u043B\u043A\u0438 \u0432 \u0432\u0430\u0448\u0438\u0445 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0445 \u043D\u0430 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u043C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435 iOS, \u0432\u044B \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u0438, \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0449\u0435\u0439 \u0438\u0445 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435.","add-input-button-text":"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0437\u0430\u043C\u0435\u043D\u0443 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u0433\u043E \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u044F","regex-to-find-placeholder-text":"\u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430","flags-placeholder-text":"\u0444\u043B\u0430\u0433\u0438","regex-to-replace-placeholder-text":"\u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0437\u0430\u043C\u0435\u043D\u044B","label-placeholder-text":"\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A","move-up-tooltip":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u0432\u0435\u0440\u0445","move-down-tooltip":"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043D\u0438\u0437","delete-tooltip":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C"},"custom-auto-correct":{"delete-tooltip":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","show-parsed-contents-tooltip":"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u043D\u044B","custom-row-parse-warning":'"{ROW}" \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439 \u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u0437\u0430\u043C\u0435\u043D\u0430\u043C\u0438. \u041E\u043D \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u043C\u0435\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E 2 \u043A\u043E\u043B\u043E\u043D\u043A\u0438.',"file-search-placeholder-text":"\u0418\u043C\u044F \u0444\u0430\u0439\u043B\u0430","add-new-replacement-file-tooltip":"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0444\u0430\u0439\u043B","warning-text":"\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u044B.","refresh-tooltip-text":"\u041F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0437\u0430\u043C\u0435\u043D\u044B"}},rules:{"auto-correct-common-misspellings":{name:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u043F\u0435\u0447\u0430\u0442\u043E\u043A",description:'\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0441\u043B\u043E\u0432\u0430\u0440\u044C \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0445 \u043E\u043F\u0435\u0447\u0430\u0442\u043E\u043A \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u0445 \u043D\u0430 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0435 \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u0438\u0435. \u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435 auto-correct map \u0434\u043B\u044F \u043F\u043E\u043B\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445 \u0441\u043B\u043E\u0432. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u044D\u0442\u043E\u0442 \u0441\u043F\u0438\u0441\u043E\u043A \u043C\u043E\u0436\u0435\u0442 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 \u0442\u0435\u043A\u0441\u0442\u043E\u043C \u043D\u0430 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u044F\u0437\u044B\u043A\u0430\u0445, \u043D\u043E \u043E\u043D \u043E\u0441\u0442\u0430\u0435\u0442\u0441\u044F \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u044B\u043C \u043D\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E \u043E\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E \u0432 \u0434\u0430\u043D\u043D\u044B\u0439 \u043C\u043E\u043C\u0435\u043D\u0442 \u044F\u0437\u044B\u043A\u0430.',"ignore-words":{name:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u043E\u0432\u0430",description:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u043B\u043E\u0432, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u044F\u0442\u044B\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u0440\u0438 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u043C \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0438"},"extra-auto-correct-files":{name:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B \u0430\u0432\u0442\u043E\u043A\u043E\u0440\u0440\u0435\u043A\u0446\u0438\u0438",description:"\u042D\u0442\u0438 \u0444\u0430\u0439\u043B\u044B \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442 markdown-\u0442\u0430\u0431\u043B\u0438\u0446\u044B, \u0432 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0435\u0441\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435 \u0441\u043B\u043E\u0432\u043E \u0438 \u0441\u043B\u043E\u0432\u043E \u0434\u043B\u044F \u0435\u0433\u043E \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F (\u044D\u0442\u0438 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B \u043A \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443). \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0442\u0430\u0431\u043B\u0438\u0446\u044B, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435 \u0432 \u044D\u0442\u0438\u0445 \u0444\u0430\u0439\u043B\u0430\u0445, \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B | \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438."},"skip-words-with-multiple-capitals":{name:"\u041F\u0440\u043E\u043F\u0443\u0441\u043A\u0430\u0442\u044C \u0441\u043B\u043E\u0432\u0430 \u0441 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u043C\u0438 \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u043C\u0438 \u0431\u0443\u043A\u0432\u0430\u043C\u0438",description:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442 \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B, \u0432 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0435\u0441\u0442\u044C \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u0430\u044F \u0431\u0443\u043A\u0432\u0430, \u043A\u0440\u043E\u043C\u0435 \u043F\u0435\u0440\u0432\u043E\u0439 \u0431\u0443\u043A\u0432\u044B \u0441\u043B\u043E\u0432\u0430. \u0410\u043A\u0440\u043E\u043D\u0438\u043C\u044B \u0438 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043B\u043E\u0432\u0430 \u043C\u043E\u0433\u0443\u0442 \u0432\u044B\u0438\u0433\u0440\u0430\u0442\u044C \u043E\u0442 \u044D\u0442\u043E\u0433\u043E. \u042D\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u0441 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u043C \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043C \u0438\u043C\u0435\u043D \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445."},"default-install":"\u0412\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u044E \u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0445 \u043E\u0448\u0438\u0431\u043E\u043A. \u0414\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u044B \u043E\u0440\u0444\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u043E\u0448\u0438\u0431\u043A\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E. \u042D\u0442\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u043F\u0440\u043E\u0438\u0437\u043E\u0439\u0442\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u0438\u043D \u0440\u0430\u0437. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435...","default-install-failed":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C {URL}. \u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0430\u0432\u0442\u043E\u043A\u043E\u0440\u0440\u0435\u043A\u0446\u0438\u0438 \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0445 \u043E\u0440\u0444\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043E\u0448\u0438\u0431\u043E\u043A.","defaults-missing":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0439\u0442\u0438 \u0444\u0430\u0439\u043B \u0430\u0432\u0442\u043E\u043A\u043E\u0440\u0440\u0435\u043A\u0446\u0438\u0438 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: {FILE}."},"add-blank-line-after-yaml":{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0441\u043B\u0435 YAML",description:"\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0441\u043B\u0435 \u0431\u043B\u043E\u043A\u0430 YAML, \u0435\u0441\u043B\u0438 \u043E\u043D \u043D\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0437\u0430 \u043D\u0438\u043C \u0435\u0449\u0435 \u043D\u0435 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430 \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430."},"add-blockquote-indentation-on-paste":{name:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F \u0446\u0438\u0442\u0430\u0442\u044B \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0446\u0438\u0442\u0430\u0442\u044B \u043A\u043E \u0432\u0441\u0435\u043C \u0441\u0442\u0440\u043E\u043A\u0430\u043C, \u043A\u0440\u043E\u043C\u0435 \u043F\u0435\u0440\u0432\u043E\u0439, \u043A\u043E\u0433\u0434\u0430 \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0446\u0438\u0442\u0430\u0442\u044B/\u0432\u044B\u043D\u043E\u0441\u043A\u0438 \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438"},"blockquote-style":{name:"\u0421\u0442\u0438\u043B\u044C \u0446\u0438\u0442\u0430\u0442\u044B",description:"\u041E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0434\u0438\u043D\u043E\u043E\u0431\u0440\u0430\u0437\u0438\u0435 \u0441\u0442\u0438\u043B\u044F \u0446\u0438\u0442\u0430\u0442.",style:{name:"\u0421\u0442\u0438\u043B\u044C",description:"\u0421\u0442\u0438\u043B\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u043D\u0430 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430\u0445 \u0446\u0438\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"}},"capitalize-headings":{name:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 \u0441 \u0431\u043E\u043B\u044C\u0448\u043E\u0439 \u0431\u0443\u043A\u0432\u044B",description:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u043E\u0442\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u0445 \u0431\u0443\u043A\u0432",style:{name:"\u0421\u0442\u0438\u043B\u044C",description:"\u0421\u0442\u0438\u043B\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u0445 \u0431\u0443\u043A\u0432"},"ignore-case-words":{name:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u043E\u0432\u0430 \u0441 \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u043E\u0439 \u0431\u0443\u043A\u0432\u044B",description:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0438\u043B\u044C \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u0445 \u0431\u0443\u043A\u0432 \u0442\u043E\u043B\u044C\u043A\u043E \u043A \u0441\u043B\u043E\u0432\u0430\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u044B \u0441\u0442\u0440\u043E\u0447\u043D\u044B\u043C\u0438 \u0431\u0443\u043A\u0432\u0430\u043C\u0438"},"ignore-words":{name:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u043E\u0432\u0430",description:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u043B\u043E\u0432, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u044F\u0442\u044B\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u0440\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u0437\u0430\u0433\u043B\u0430\u0432\u043D\u044B\u0445 \u0431\u0443\u043A\u0432"},"lowercase-words":{name:"\u0421\u043B\u043E\u0432\u0430 \u0432 \u043D\u0438\u0436\u043D\u0435\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435",description:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u043B\u043E\u0432, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u044F\u0442\u044B\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0441\u0442\u0430\u0432\u0430\u0442\u044C\u0441\u044F \u0432 \u043D\u0438\u0436\u043D\u0435\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435"}},"compact-yaml":{name:"\u0421\u0436\u0430\u0442\u044B\u0439 YAML",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u043F\u0443\u0441\u0442\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0431\u043B\u043E\u043A\u0435 YAML.","inner-new-lines":{name:"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 \u043D\u043E\u0432\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043D\u043E\u0432\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 \u0438\u043B\u0438 \u0432 \u043A\u043E\u043D\u0446\u0435 YAML"}},"consecutive-blank-lines":{name:"\u041F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u0443\u0441\u0442\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",description:"\u0414\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 \u043E\u0434\u043D\u043E\u0439 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u043F\u0443\u0441\u0442\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438."},"convert-bullet-list-markers":{name:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u043C\u0430\u0440\u043A\u0435\u0440\u044B \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043E\u0431\u0449\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043C\u0430\u0440\u043A\u0435\u0440\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430 \u0432 \u043C\u0430\u0440\u043A\u0435\u0440\u044B markdown."},"convert-spaces-to-tabs":{name:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0432 \u0442\u0430\u0431\u044B",description:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0432 \u0442\u0430\u0431\u044B.",tabsize:{name:"\u0420\u0430\u0437\u043C\u0435\u0440 \u0442\u0430\u0431\u0430",description:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u044B \u0432 \u0442\u0430\u0431\u044B"}},"dedupe-yaml-array-values":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043C\u0430\u0441\u0441\u0438\u0432\u0430 YAML",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043C\u0430\u0441\u0441\u0438\u0432\u0430 YAML \u0432 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u043C \u043A \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443.","dedupe-alias-key":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u044B \u0441\u0435\u043A\u0446\u0438\u0438 YAML aliases",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u043E\u0432 \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u043E\u0432."},"dedupe-tag-key":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u044B \u0441\u0435\u043A\u0446\u0438\u0438 YAML tags",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u043E\u0432 \u0442\u0435\u0433\u043E\u0432."},"dedupe-array-keys":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u044B \u0441\u0435\u043A\u0446\u0438\u0438 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u043E\u0432 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432 YAML"},"ignore-keys":{name:"YAML \u043A\u043B\u044E\u0447\u0438 \u0434\u043B\u044F \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",description:"\u0421\u043F\u0438\u0441\u043E\u043A YAML \u043A\u043B\u044E\u0447\u0435\u0439 \u0431\u0435\u0437 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044E\u0449\u0435\u0433\u043E \u0434\u0432\u043E\u0435\u0442\u043E\u0447\u0438\u044F \u043D\u0430 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0445 \u0441\u0442\u0440\u043E\u043A\u0430\u0445, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0434\u0443\u0431\u043B\u0438\u043A\u0430\u0442\u043E\u0432 \u0438\u0437 \u043D\u0438\u0445."}},"default-language-for-code-fences":{name:"\u042F\u0437\u044B\u043A \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u0431\u043B\u043E\u043A\u043E\u0432 \u043A\u043E\u0434\u0430",description:"\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u044F\u0437\u044B\u043A \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0434\u043B\u044F \u0431\u043B\u043E\u043A\u043E\u0432 \u043A\u043E\u0434\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430.","default-language":{name:"\u042F\u0437\u044B\u043A \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",description:'\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0434\u0435\u043B\u0430\u0442\u044C. \u042F\u0437\u044B\u043A\u0438 \u0442\u0435\u0433\u043E\u0432 \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044C.'}},"emphasis-style":{name:"\u0421\u0442\u0438\u043B\u044C \u0430\u043A\u0446\u0435\u043D\u0442\u0430",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0441\u0442\u0438\u043B\u044C \u0430\u043A\u0446\u0435\u043D\u0442\u0430 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D.",style:{name:"\u0421\u0442\u0438\u043B\u044C",description:"\u0421\u0442\u0438\u043B\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0430\u043A\u0446\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E"}},"empty-line-around-blockquotes":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0446\u0438\u0442\u0430\u0442",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0435\u0441\u0442\u044C \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0446\u0438\u0442\u0430\u0442, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u0438\u043B\u0438 \u043D\u0435 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043C. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u2014 \u044D\u0442\u043E \u043B\u0438\u0431\u043E \u043E\u0434\u0438\u043D \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E\u0441\u0442\u0438 \u0434\u043B\u044F \u0446\u0438\u0442\u0430\u0442, \u043B\u0438\u0431\u043E \u0441\u0438\u043C\u0432\u043E\u043B \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438."},"empty-line-around-code-fences":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0431\u043B\u043E\u043A\u043E\u0432 \u043A\u043E\u0434\u0430",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0435\u0441\u0442\u044C \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0431\u043B\u043E\u043A\u043E\u0432 \u043A\u043E\u0434\u0430, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u0438\u043B\u0438 \u043D\u0435 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043C."},"empty-line-around-math-blocks":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0431\u043B\u043E\u043A\u043E\u0432",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0435\u0441\u0442\u044C \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0431\u043B\u043E\u043A\u043E\u0432, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u043D\u0430\u043A\u043E\u0432 \u0434\u043E\u043B\u043B\u0430\u0440\u0430 \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430 \u0434\u043B\u044F \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0437\u043D\u0430\u043A\u043E\u0432 \u0434\u043E\u043B\u043B\u0430\u0440\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0442 \u043D\u0430 \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0431\u043B\u043E\u043A \u0434\u043B\u044F \u043E\u0434\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438."},"empty-line-around-tables":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0442\u0430\u0431\u043B\u0438\u0446",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0435\u0441\u0442\u044C \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 (github flavored) \u0442\u0430\u0431\u043B\u0438\u0446, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u0438\u043B\u0438 \u043D\u0435 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043C."},"escape-yaml-special-characters":{name:"\u042D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B YAML",description:`\u042D\u043A\u0440\u0430\u043D\u0438\u0440\u0443\u0435\u0442 \u0434\u0432\u043E\u0435\u0442\u043E\u0447\u0438\u044F \u0441 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u043C \u043F\u043E\u0441\u043B\u0435 \u043D\u0438\u0445 (: ), \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 ('), \u0438 \u0434\u0432\u043E\u0439\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 (") \u0432 YAML.`,"try-to-escape-single-line-arrays":{name:"\u041F\u043E\u043F\u044B\u0442\u0430\u0442\u044C\u0441\u044F \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0434\u043D\u043E\u043C\u0435\u0440\u043D\u044B\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u044B",description:'\u041F\u044B\u0442\u0430\u0435\u0442\u0441\u044F \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432, \u043F\u0440\u0435\u0434\u043F\u043E\u043B\u0430\u0433\u0430\u044F, \u0447\u0442\u043E \u043C\u0430\u0441\u0441\u0438\u0432 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0441 "[", \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F "]", \u0438 \u0438\u043C\u0435\u0435\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 ",".'}},"file-name-heading":{name:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0444\u0430\u0439\u043B\u0430",description:"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430 \u043A\u0430\u043A \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A H1, \u0435\u0441\u043B\u0438 \u043D\u0435\u0442 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 H1."},"footnote-after-punctuation":{name:"\u0421\u043D\u043E\u0441\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u043D\u0430\u043A\u0430 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0441\u043D\u043E\u0441\u043A\u0438 \u0441\u0441\u044B\u043B\u043E\u043A \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u044B \u043F\u043E\u0441\u043B\u0435 \u0437\u043D\u0430\u043A\u0430 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F, \u0430 \u043D\u0435 \u043F\u0435\u0440\u0435\u0434 \u043D\u0438\u043C."},"force-yaml-escape":{name:"\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 YAML",description:"\u042D\u043A\u0440\u0430\u043D\u0438\u0440\u0443\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u043A\u043B\u044E\u0447\u0435\u0439 YAML.","force-yaml-escape-keys":{name:"\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 YAML \u043D\u0430 \u043A\u043B\u044E\u0447\u0430\u0445",description:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u0443\u044E\u0449\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B YAML \u043D\u0430 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u043A\u043B\u044E\u0447\u0430\u0445 YAML, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u043C \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438, \u0435\u0441\u043B\u0438 \u043E\u043D \u0435\u0449\u0435 \u043D\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D. \u041D\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043D\u0430 \u043C\u0430\u0441\u0441\u0438\u0432\u0430\u0445 YAML."}},"format-tags-in-yaml":{name:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u0433\u043E\u0432 \u0432 YAML",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0445\u044D\u0448-\u0442\u0435\u0433\u0438 \u0438\u0437 \u0442\u0435\u0433\u043E\u0432 \u0432 YAML frontmatter, \u0442\u0430\u043A \u043A\u0430\u043A \u043E\u043D\u0438 \u0434\u0435\u043B\u0430\u044E\u0442 \u0442\u0435\u0433\u0438 \u0442\u0430\u043C \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u043C\u0438."},"format-yaml-array":{name:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u0430 YAML",description:"\u041F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u044B YAML \u043A\u0430\u043A \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435, \u0442\u0430\u043A \u0438 \u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435, \u0438 \u0442\u0435\u0433\u0438 \u0438 \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u044B \u043C\u043E\u0433\u0443\u0442 \u0438\u043C\u0435\u0442\u044C \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0434\u043B\u044F Obsidian YAML \u0444\u043E\u0440\u043C\u0430\u0442\u044B. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u043E\u0434\u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0439 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0438\u0442, \u0435\u0441\u043B\u0438 \u043F\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043E\u043B\u0435\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430. \u0422\u043E \u0436\u0435 \u0441\u0430\u043C\u043E\u0435 \u0432\u0435\u0440\u043D\u043E \u0434\u043B\u044F \u043E\u0434\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0439 \u043C\u0430\u0441\u0441\u0438\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u043C.","alias-key":{name:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u043A\u0446\u0438\u044E YAML \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u043E\u0432",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0434\u043B\u044F \u0441\u0435\u043A\u0446\u0438\u0438 YAML \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u043E\u0432. \u041D\u0435 \u0432\u043A\u043B\u044E\u0447\u0430\u0439\u0442\u0435 \u044D\u0442\u0443 \u043E\u043F\u0446\u0438\u044E \u043E\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u0441 \u043F\u0440\u0430\u0432\u0438\u043B\u043E\u043C YAML Title Alias, \u0442\u0430\u043A \u043A\u0430\u043A \u043E\u043D\u0438 \u043C\u043E\u0433\u0443\u0442 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0445\u043E\u0440\u043E\u0448\u043E \u0432\u043C\u0435\u0441\u0442\u0435 \u0438\u043B\u0438 \u043C\u043E\u0433\u0443\u0442 \u0438\u043C\u0435\u0442\u044C \u0440\u0430\u0437\u043D\u044B\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0444\u043E\u0440\u043C\u0430\u0442\u044B, \u0447\u0442\u043E \u043F\u0440\u0438\u0432\u043E\u0434\u0438\u0442 \u043A \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u043C \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043C."},"tag-key":{name:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u043A\u0446\u0438\u044E YAML \u0442\u0435\u0433\u043E\u0432",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0434\u043B\u044F \u0441\u0435\u043A\u0446\u0438\u0438 YAML \u0442\u0435\u0433\u043E\u0432."},"default-array-style":{name:"\u0421\u0442\u0438\u043B\u044C \u0441\u0435\u043A\u0446\u0438\u0438 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",description:"\u0421\u0442\u0438\u043B\u044C \u0434\u0440\u0443\u0433\u0438\u0445 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u0435\u0433\u0430\u043C\u0438, \u043F\u0441\u0435\u0432\u0434\u043E\u043D\u0438\u043C\u0430\u043C\u0438 \u0438\u043B\u0438 \u0432 \u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043B\u044E\u0447\u0435\u0439 \u0432 \u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u044B \u0438 \u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043B\u044E\u0447\u0435\u0439 \u0432 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u044B"},"default-array-keys":{name:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u043A\u0446\u0438\u0438 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0434\u043B\u044F \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432"},"force-single-line-array-style":{name:"\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043B\u044E\u0447\u0435\u0439 \u0432 \u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u044B",description:"\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043B\u044F \u043A\u043B\u044E\u0447\u0435\u0439, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439, \u0432 \u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 (\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u044D\u0442\u0443 \u043E\u043F\u0446\u0438\u044E)"},"force-multi-line-array-style":{name:"\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043B\u044E\u0447\u0435\u0439 \u0432 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043C\u0430\u0441\u0441\u0438\u0432\u044B",description:"\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043B\u044F \u043A\u043B\u044E\u0447\u0435\u0439, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445 \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439, \u0432 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 (\u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u044B\u043C, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u044D\u0442\u0443 \u043E\u043F\u0446\u0438\u044E)"}},"header-increment":{name:"\u0418\u043D\u043A\u0440\u0435\u043C\u0435\u043D\u0442 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432",description:"\u0423\u0440\u043E\u0432\u043D\u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0434\u043E\u043B\u0436\u043D\u044B \u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043E\u0434\u0438\u043D \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0437\u0430 \u0440\u0430\u0437","start-at-h2":{name:"\u041D\u0430\u0447\u0430\u0442\u044C \u0438\u043D\u043A\u0440\u0435\u043C\u0435\u043D\u0442 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0441 \u0443\u0440\u043E\u0432\u043D\u044F 2",description:"\u0414\u0435\u043B\u0430\u0435\u0442 \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 2 \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u043C \u0443\u0440\u043E\u0432\u043D\u0435\u043C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430 \u0432 \u0444\u0430\u0439\u043B\u0435 \u0434\u043B\u044F \u0438\u043D\u043A\u0440\u0435\u043C\u0435\u043D\u0442\u0430 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0438 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0432\u0441\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E, \u0447\u0442\u043E\u0431\u044B \u043E\u043D\u0438 \u043D\u0430\u0447\u0438\u043D\u0430\u043B\u0438\u0441\u044C \u0441 \u0443\u0440\u043E\u0432\u043D\u044F 2 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430."}},"heading-blank-lines":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432",description:"\u0412\u0441\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 \u0438\u043C\u0435\u044E\u0442 \u043E\u0434\u043D\u0443 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043E \u0438 \u043F\u043E\u0441\u043B\u0435 (\u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0441\u043B\u0443\u0447\u0430\u0435\u0432, \u043A\u043E\u0433\u0434\u0430 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 \u0438\u043B\u0438 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430).",bottom:{name:"\u041D\u0438\u0436\u043D\u0438\u0439",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442 \u043E\u0434\u043D\u0443 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432"},"empty-line-after-yaml":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u043C\u0435\u0436\u0434\u0443 YAML \u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u043C",description:"\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u043C\u0435\u0436\u0434\u0443 YAML frontmatter \u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u043C"}},"headings-start-line":{name:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u0441 \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438",description:"\u0423 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442 \u0441\u0442\u0440\u043E\u043A\u0443, \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u043F\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0438\u043C \u043F\u0440\u043E\u0431\u0435\u043B\u044B, \u0447\u0442\u043E\u0431\u044B \u043E\u043D\u0438 \u0431\u044B\u043B\u0438 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u044B \u043A\u0430\u043A \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438."},"insert-yaml-attributes":{name:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C YAML \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044B",description:"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0435 YAML \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044B \u0432 YAML frontmatter. \u041F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u043A\u0430\u0436\u0434\u044B\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043D\u0430 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443.","text-to-insert":{name:"\u0422\u0435\u043A\u0441\u0442 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438",description:"\u0422\u0435\u043A\u0441\u0442 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0432 YAML frontmatter"}},"line-break-at-document-end":{name:"\u0420\u0430\u0437\u0440\u044B\u0432 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0432 \u043A\u043E\u043D\u0446\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0435\u0441\u0442\u044C \u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u0430 \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430."},"move-footnotes-to-the-bottom":{name:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0441\u043D\u043E\u0441\u043A\u0438 \u0432\u043D\u0438\u0437",description:"\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u043D\u043E\u0441\u043A\u0438 \u0432\u043D\u0438\u0437 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0438 \u0433\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u043E\u043D\u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043F\u043E\u0440\u044F\u0434\u043A\u043E\u043C, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043E\u043D\u0438 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u0432 \u0442\u0435\u043B\u0435 \u0444\u0430\u0439\u043B\u0430."},"move-math-block-indicators-to-their-own-line":{name:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0431\u043B\u043E\u043A\u043E\u0432 \u0432 \u0441\u0432\u043E\u044E \u0441\u0442\u0440\u043E\u043A\u0443",description:"\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0431\u043B\u043E\u043A\u043E\u0432 \u043D\u0430 \u0441\u0432\u043E\u0438 \u0441\u0442\u0440\u043E\u043A\u0438, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u043D\u0430\u043A\u043E\u0432 \u0434\u043E\u043B\u043B\u0430\u0440\u0430 \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0431\u043B\u043E\u043A\u0430 \u0434\u043B\u044F \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0437\u043D\u0430\u043A\u043E\u0432 \u0434\u043E\u043B\u043B\u0430\u0440\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0442 \u043D\u0430 \u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0431\u043B\u043E\u043A \u0434\u043B\u044F \u043E\u0434\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438."},"move-tags-to-yaml":{name:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0442\u0435\u0433\u0438 \u0432 YAML",description:"\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u0435\u0433\u0438 \u0432 YAML frontmatter \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430.","how-to-handle-existing-tags":{name:"\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0442\u0435\u0433\u0430 \u0432 \u0442\u0435\u043B\u0435 \u0444\u0430\u0439\u043B\u0430",description:"\u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0442\u044C \u0441 \u043D\u0435\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u043C\u044B\u043C\u0438 \u0442\u0435\u0433\u0430\u043C\u0438 \u0432 \u0442\u0435\u043B\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u043E\u0441\u043B\u0435 \u0438\u0445 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u0432 frontmatter"},"tags-to-ignore":{name:"\u0422\u0435\u0433\u0438 \u0434\u043B\u044F \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",description:"\u0422\u0435\u0433\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u044B \u0432 \u043C\u0430\u0441\u0441\u0438\u0432 \u0442\u0435\u0433\u043E\u0432 \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0438\u0437 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0442\u0435\u043B\u0430 \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0445\u044D\u0448-\u0442\u0435\u0433 \u0438\u0437 \u0442\u0435\u0433\u043E\u0432 \u0432 \u0442\u0435\u043B\u0435 \u0444\u0430\u0439\u043B\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D. \u041A\u0430\u0436\u0434\u044B\u0439 \u0442\u0435\u0433 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043D\u0430 \u043D\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435 \u0438 \u0431\u0435\u0437 #. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u043D\u0435 \u0432\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0445\u044D\u0448-\u0442\u0435\u0433 \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u0433\u0430."}},"no-bare-urls":{name:"\u041E\u0431\u0435\u0440\u043D\u0443\u0442\u044C URL",description:"\u041E\u0431\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0433\u043E\u043B\u044B\u0435 URL \u0443\u0433\u043B\u043E\u0432\u044B\u043C\u0438 \u0441\u043A\u043E\u0431\u043A\u0430\u043C\u0438, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0441\u043B\u0443\u0447\u0430\u0435\u0432, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D\u0438 \u0437\u0430\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u0432 \u043E\u0431\u0440\u0430\u0442\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438, \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u0435 \u0441\u043A\u043E\u0431\u043A\u0438 \u0438\u043B\u0438 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u0435 \u0438\u043B\u0438 \u0434\u0432\u043E\u0439\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438.","no-bare-uris":{name:"\u041E\u0431\u0435\u0440\u043D\u0443\u0442\u044C URI",description:"\u041E\u0431\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0433\u043E\u043B\u044B\u0435 URI \u0443\u0433\u043B\u043E\u0432\u044B\u043C\u0438 \u0441\u043A\u043E\u0431\u043A\u0430\u043C\u0438, \u0437\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0441\u043B\u0443\u0447\u0430\u0435\u0432, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D\u0438 \u0437\u0430\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u0432 \u043E\u0431\u0440\u0430\u0442\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438, \u043A\u0432\u0430\u0434\u0440\u0430\u0442\u043D\u044B\u0435 \u0441\u043A\u043E\u0431\u043A\u0438 \u0438\u043B\u0438 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u0435 \u0438\u043B\u0438 \u0434\u0432\u043E\u0439\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438."}},"ordered-list-style":{name:"\u0421\u0442\u0438\u043B\u044C \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u043F\u0438\u0441\u043A\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0441\u0442\u0438\u043B\u044E. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: 2 \u043F\u0440\u043E\u0431\u0435\u043B\u0430 \u0438\u043B\u0438 1 \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u044F \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0443\u0440\u043E\u0432\u043D\u0435\u043C \u043E\u0442\u0441\u0442\u0443\u043F\u0430.","number-style":{name:"\u0421\u0442\u0438\u043B\u044C \u0447\u0438\u0441\u043B\u0430",description:"\u0421\u0442\u0438\u043B\u044C \u0447\u0438\u0441\u043B\u0430, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0432 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430\u0445 \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0441\u043F\u0438\u0441\u043A\u043E\u0432"},"list-end-style":{name:"\u0421\u0442\u0438\u043B\u044C \u043A\u043E\u043D\u0446\u0430 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u041A\u043E\u043D\u0435\u0447\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430"},"preserve-start":{name:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E",description:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043B\u0438 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430. \u042D\u0442\u043E \u043C\u043E\u0436\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0438\u043C\u0435\u0435\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u043C\u0435\u0436\u0434\u0443 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438 \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430."}},"paragraph-blank-lines":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u043C\u0435\u0436\u0434\u0443 \u0430\u0431\u0437\u0430\u0446\u0430\u043C\u0438",description:"\u0412\u0441\u0435 \u0430\u0431\u0437\u0430\u0446\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u0443 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043E \u0438 \u043F\u043E\u0441\u043B\u0435."},"prevent-double-checklist-indicator-on-paste":{name:"\u041F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044C \u0434\u0432\u043E\u0439\u043D\u043E\u0439 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u0438\u0437 \u0442\u0435\u043A\u0441\u0442\u0430 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438, \u0435\u0441\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043A\u0443\u0440\u0441\u043E\u0440 \u0432 \u0444\u0430\u0439\u043B\u0435, \u0438\u043C\u0435\u0435\u0442 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430"},"prevent-double-list-item-indicator-on-paste":{name:"\u041F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044C \u0434\u0432\u043E\u0439\u043D\u043E\u0439 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u043F\u0438\u0441\u043A\u0430 \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438\u0437 \u0442\u0435\u043A\u0441\u0442\u0430 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438, \u0435\u0441\u043B\u0438 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u043A\u0443\u0440\u0441\u043E\u0440 \u0432 \u0444\u0430\u0439\u043B\u0435, \u0438\u043C\u0435\u0435\u0442 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0441\u043F\u0438\u0441\u043A\u0430"},"proper-ellipsis-on-paste":{name:"\u041F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430\u044F \u043C\u043D\u043E\u0433\u043E\u0442\u043E\u0447\u0438\u0435 \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0417\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0442\u0440\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0442\u043E\u0447\u043A\u0438 \u043D\u0430 \u043C\u043D\u043E\u0433\u043E\u0442\u043E\u0447\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u0438\u043C\u0435\u044E\u0442 \u043F\u0440\u043E\u0431\u0435\u043B \u043C\u0435\u0436\u0434\u0443 \u043D\u0438\u043C\u0438 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438"},"proper-ellipsis":{name:"\u041F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430\u044F \u043C\u043D\u043E\u0433\u043E\u0442\u043E\u0447\u0438\u0435",description:"\u0417\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0442\u0440\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0442\u043E\u0447\u043A\u0438 \u043D\u0430 \u043C\u043D\u043E\u0433\u043E\u0442\u043E\u0447\u0438\u0435."},"quote-style":{name:"\u0421\u0442\u0438\u043B\u044C \u043A\u0430\u0432\u044B\u0447\u0435\u043A",description:"\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u0442 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0432 \u0442\u0435\u043B\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0434\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u0441\u0442\u0438\u043B\u044F \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u044B\u0445 \u0438 \u0434\u0432\u043E\u0439\u043D\u044B\u0445 \u043A\u0430\u0432\u044B\u0447\u0435\u043A.","single-quote-enabled":{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0421\u0442\u0438\u043B\u044C \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438",description:"\u0423\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442, \u0447\u0442\u043E \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0441\u0442\u0438\u043B\u044C \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438."},"single-quote-style":{name:"\u0421\u0442\u0438\u043B\u044C \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438",description:"\u0421\u0442\u0438\u043B\u044C \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F."},"double-quote-enabled":{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0421\u0442\u0438\u043B\u044C \u0434\u0432\u043E\u0439\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438",description:"\u0423\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442, \u0447\u0442\u043E \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0441\u0442\u0438\u043B\u044C \u0434\u0432\u043E\u0439\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438."},"double-quote-style":{name:"\u0421\u0442\u0438\u043B\u044C \u0434\u0432\u043E\u0439\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438",description:"\u0421\u0442\u0438\u043B\u044C \u0434\u0432\u043E\u0439\u043D\u043E\u0439 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F."}},"re-index-footnotes":{name:"\u041F\u0435\u0440\u0435\u0438\u043D\u0434\u0435\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043D\u043E\u0441\u043A\u0438",description:"\u041F\u0435\u0440\u0435\u0438\u043D\u0434\u0435\u043A\u0441\u0438\u0440\u0443\u0435\u0442 \u043A\u043B\u044E\u0447\u0438 \u0438 \u0441\u043D\u043E\u0441\u043A\u0438 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u043F\u043E\u0440\u044F\u0434\u043A\u0430 \u0438\u0445 \u043F\u043E\u044F\u0432\u043B\u0435\u043D\u0438\u044F. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u042D\u0442\u043E \u043F\u0440\u0430\u0432\u0438\u043B\u043E \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442, \u0435\u0441\u043B\u0438 \u0434\u043B\u044F \u043E\u0434\u043D\u043E\u0433\u043E \u0438 \u0442\u043E\u0433\u043E \u0436\u0435 \u043A\u043B\u044E\u0447\u0430 \u0435\u0441\u0442\u044C \u0431\u043E\u043B\u0435\u0435 \u043E\u0434\u043D\u043E\u0439 \u0441\u043D\u043E\u0441\u043A\u0438."},"remove-consecutive-list-markers":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B \u0441\u043F\u0438\u0441\u043A\u0430. \u0423\u0434\u043E\u0431\u043D\u043E \u043F\u0440\u0438 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430."},"remove-empty-lines-between-list-markers-and-checklists":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u043C\u0435\u0436\u0434\u0443 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430\u043C\u0438 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430\u043C\u0438",description:"\u041C\u0435\u0436\u0434\u0443 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430\u043C\u0438 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430\u043C\u0438 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u0445 \u0441\u0442\u0440\u043E\u043A."},"remove-empty-list-markers":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u0435 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043F\u0443\u0441\u0442\u044B\u0435 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u044B \u0441\u043F\u0438\u0441\u043A\u0430, \u0442\u043E \u0435\u0441\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0441\u043F\u0438\u0441\u043A\u0430 \u0431\u0435\u0437 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E."},"empty-line-around-horizontal-rules":{name:"\u041F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0445 \u043F\u0440\u0430\u0432\u0438\u043B",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0435\u0441\u0442\u044C \u043F\u0443\u0441\u0442\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0432\u043E\u043A\u0440\u0443\u0433 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0445 \u043F\u0440\u0430\u0432\u0438\u043B, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u0438\u043B\u0438 \u043D\u0435 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043C."},"remove-hyphenated-line-breaks":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0438\u043F\u0435\u0440\u0431\u043E\u043B\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0440\u0430\u0437\u0440\u044B\u0432\u044B \u0441\u0442\u0440\u043E\u043A",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0433\u0438\u043F\u0435\u0440\u0431\u043E\u043B\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u0440\u0430\u0437\u0440\u044B\u0432\u044B \u0441\u0442\u0440\u043E\u043A. \u0423\u0434\u043E\u0431\u043D\u043E \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435 \u0442\u0435\u043A\u0441\u0442\u0430 \u0438\u0437 \u0443\u0447\u0435\u0431\u043D\u0438\u043A\u043E\u0432."},"remove-hyphens-on-paste":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0435\u0444\u0438\u0441\u044B \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0434\u0435\u0444\u0438\u0441\u044B \u0438\u0437 \u0442\u0435\u043A\u0441\u0442\u0430 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438"},"remove-leading-or-trailing-whitespace-on-paste":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0438\u043B\u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043B\u044E\u0431\u044B\u0435 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u043D\u0435\u0442\u0430\u0431\u043E\u0432\u044B\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0438 \u0432\u0441\u0435 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438"},"remove-leftover-footnotes-from-quote-on-paste":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u044B\u0435 \u0441\u043D\u043E\u0441\u043A\u0438 \u0438\u0437 \u0446\u0438\u0442\u0430\u0442\u044B \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043B\u044E\u0431\u044B\u0435 \u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u044B\u0435 \u0441\u043D\u043E\u0441\u043A\u0438 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438"},"remove-link-spacing":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0432\u043E\u043A\u0440\u0443\u0433 \u0442\u0435\u043A\u0441\u0442\u0430 \u0441\u0441\u044B\u043B\u043A\u0438",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0432\u043E\u043A\u0440\u0443\u0433 \u0442\u0435\u043A\u0441\u0442\u0430 \u0441\u0441\u044B\u043B\u043A\u0438."},"remove-multiple-blank-lines-on-paste":{name:"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043F\u0443\u0441\u0442\u044B\u0445 \u0441\u0442\u0440\u043E\u043A \u043F\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043A\u0435",description:"\u0421\u0436\u0438\u043C\u0430\u0435\u0442 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u0443\u0441\u0442\u044B\u0445 \u0441\u0442\u0440\u043E\u043A \u0432 \u043E\u0434\u043D\u0443 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u0430"},"remove-multiple-spaces":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0434\u0432\u0430 \u0438\u043B\u0438 \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043F\u0440\u043E\u0431\u0435\u043B\u0430. \u0418\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 \u0438 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0442\u0440\u043E\u043A\u0438."},"remove-space-around-characters":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0432\u043E\u043A\u0440\u0443\u0433 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043D\u0435 \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u044B \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438 (\u043B\u0438\u0431\u043E \u043E\u0434\u0438\u043D\u043E\u0447\u043D\u044B\u043C\u0438 \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438, \u043B\u0438\u0431\u043E \u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0435\u0439). \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u044D\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u0441 \u0444\u043E\u0440\u043C\u0430\u0442\u043E\u043C markdown \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445.","include-fullwidth-forms":{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u043B\u043D\u044B\u0435 \u0444\u043E\u0440\u043C\u044B",description:'\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0411\u043B\u043E\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Halfwidth and Fullwidth Forms Unicode'},"include-cjk-symbols-and-punctuation":{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0438 \u043F\u0443\u043D\u043A\u0442\u0443\u0430\u0446\u0438\u044E CJK",description:'\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0411\u043B\u043E\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 CJK Symbols and Punctuation Unicode'},"include-dashes":{name:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0434\u0435\u0444\u0438\u0441\u044B",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0434\u0435\u0444\u0438\u0441 (\u2013) \u0438 \u044D\u043C-\u0434\u0435\u0444\u0438\u0441 (\u2014)"},"other-symbols":{name:"\u0414\u0440\u0443\u0433\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B",description:"\u0414\u0440\u0443\u0433\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B"}},"remove-space-before-or-after-characters":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0434\u043E \u0438 \u043F\u043E\u0441\u043B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0434\u043E \u0438 \u043F\u043E\u0441\u043B\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u044D\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u0441 \u0444\u043E\u0440\u043C\u0430\u0442\u043E\u043C markdown \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445.","characters-to-remove-space-before":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0434\u043E \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u0434\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435 { \u0438\u043B\u0438 } \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u043E \u043F\u043E\u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B, \u0442\u0430\u043A \u043A\u0430\u043A \u043E\u043D\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u0432 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0435 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430 \u043A\u0443\u043B\u0438\u0441\u0430\u043C\u0438."},"characters-to-remove-space-after":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u043F\u043E\u0441\u043B\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u043F\u043E\u0441\u043B\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435 { \u0438\u043B\u0438 } \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u043E \u043F\u043E\u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B, \u0442\u0430\u043A \u043A\u0430\u043A \u043E\u043D\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u0432 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u0435 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430 \u043A\u0443\u043B\u0438\u0441\u0430\u043C\u0438."}},"remove-trailing-punctuation-in-heading":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0437\u043D\u0430\u043A\u0438 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F \u0432 \u043A\u043E\u043D\u0446\u0435 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430",description:'\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u043D\u0430\u043A\u0438 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F \u0438\u0437 \u043A\u043E\u043D\u0446\u0430 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432, \u043F\u0440\u0438 \u044D\u0442\u043E\u043C \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043E\u0447\u043A\u0443 \u0441 \u0437\u0430\u043F\u044F\u0442\u043E\u0439 \u0432 \u043A\u043E\u043D\u0446\u0435 HTML entity references.',"punctuation-to-remove":{name:"\u0417\u043D\u0430\u043A\u0438 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F",description:"\u0417\u043D\u0430\u043A\u0438 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0438\u0437 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432."}},"remove-yaml-keys":{name:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C YAML \u043A\u043B\u044E\u0447\u0438",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0435 YAML \u043A\u043B\u044E\u0447\u0438","yaml-keys-to-remove":{name:"YAML \u043A\u043B\u044E\u0447\u0438 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F",description:"YAML \u043A\u043B\u044E\u0447\u0438 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0438\u0437 YAML frontmatter \u0441 \u0438\u043B\u0438 \u0431\u0435\u0437 \u0434\u0432\u043E\u0435\u0442\u043E\u0447\u0438\u044F"}},"sort-yaml-array-values":{name:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432",description:"\u0421\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0430 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438.","sort-alias-key":{name:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C YAML aliases section",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443 \u0430\u043B\u0438\u0430\u0441\u043E\u0432."},"sort-tag-key":{name:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C YAML tags section",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443 \u0442\u0435\u0433\u043E\u0432."},"sort-array-keys":{name:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C YAML \u043C\u0430\u0441\u0441\u0438\u0432\u044B",description:"\u0412\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u044B\u0445 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432"},"ignore-keys":{name:"YAML \u043A\u043B\u044E\u0447\u0438 \u0434\u043B\u044F \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",description:"\u0421\u043F\u0438\u0441\u043E\u043A YAML \u043A\u043B\u044E\u0447\u0435\u0439 \u0431\u0435\u0437 \u0434\u0432\u043E\u0435\u0442\u043E\u0447\u0438\u044F \u043D\u0430 \u0441\u0432\u043E\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0435, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0434\u043B\u044F \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439."},"sort-order":{name:"\u041F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438",description:"\u0421\u043F\u043E\u0441\u043E\u0431 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 YAML \u043C\u0430\u0441\u0441\u0438\u0432\u043E\u0432."}},"space-after-list-markers":{name:"\u041F\u0440\u043E\u0431\u0435\u043B \u043F\u043E\u0441\u043B\u0435 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u041C\u0435\u0436\u0434\u0443 \u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430\u043C\u0438 \u0441\u043F\u0438\u0441\u043A\u0430 \u0438 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430\u043C\u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043E\u0434\u0438\u043D \u043F\u0440\u043E\u0431\u0435\u043B."},"space-between-chinese-japanese-or-korean-and-english-or-numbers":{name:"\u041F\u0440\u043E\u0431\u0435\u043B \u043C\u0435\u0436\u0434\u0443 \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u0438\u043C, \u044F\u043F\u043E\u043D\u0441\u043A\u0438\u043C \u0438\u043B\u0438 \u043A\u043E\u0440\u0435\u0439\u0441\u043A\u0438\u043C \u0438 \u0430\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u043C \u0438\u043B\u0438 \u0447\u0438\u0441\u043B\u0430\u043C\u0438",description:'\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u0438\u0435, \u044F\u043F\u043E\u043D\u0441\u043A\u0438\u0435 \u0438\u043B\u0438 \u043A\u043E\u0440\u0435\u0439\u0441\u043A\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0438 \u0430\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u0435 \u0438\u043B\u0438 \u0447\u0438\u0441\u043B\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u044B \u043E\u0434\u043D\u0438\u043C \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u043C. \u0421\u043B\u0435\u0434\u0443\u0435\u0442 \u044D\u0442\u0438\u043C \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0430\u0446\u0438\u044F\u043C',"english-symbols-punctuation-before":{name:"\u0410\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0430\u044F \u043F\u0443\u043D\u043A\u0442\u0443\u0430\u0446\u0438\u044F \u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043F\u0435\u0440\u0435\u0434 CJK",description:'\u0421\u043F\u0438\u0441\u043E\u043A \u0437\u043D\u0430\u043A\u043E\u0432 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u043D\u0435 \u043E\u0442\u043D\u043E\u0441\u044F\u0449\u0438\u0445\u0441\u044F \u043A \u0431\u0443\u043A\u0432\u0430\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044C \u0430\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u043C\u0438, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u0438\u043C\u0438, \u044F\u043F\u043E\u043D\u0441\u043A\u0438\u043C\u0438 \u0438\u043B\u0438 \u043A\u043E\u0440\u0435\u0439\u0441\u043A\u0438\u043C\u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u0430\u043C\u0438. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: "*" \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u0430\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u043C \u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0434\u043B\u044F \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0439 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u043E\u0432 markdown.'},"english-symbols-punctuation-after":{name:"\u0410\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0430\u044F \u043F\u0443\u043D\u043A\u0442\u0443\u0430\u0446\u0438\u044F \u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u043F\u043E\u0441\u043B\u0435 CJK",description:'\u0421\u043F\u0438\u0441\u043E\u043A \u0437\u043D\u0430\u043A\u043E\u0432 \u043F\u0440\u0435\u043F\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u043D\u0435 \u043E\u0442\u043D\u043E\u0441\u044F\u0449\u0438\u0445\u0441\u044F \u043A \u0431\u0443\u043A\u0432\u0430\u043C, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044C \u0430\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u043C\u0438, \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u0438\u0445, \u044F\u043F\u043E\u043D\u0441\u043A\u0438\u0445 \u0438\u043B\u0438 \u043A\u043E\u0440\u0435\u0439\u0441\u043A\u0438\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: "*" \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u0430\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u043C \u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0434\u043B\u044F \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E\u0439 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441\u043E\u0432 markdown.'}},"strong-style":{name:'\u0421\u0442\u0438\u043B\u044C "\u0436\u0438\u0440\u043D\u044B\u0439"',description:'\u041E\u0431\u0435\u0441\u043F\u0435\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0441\u0442\u0438\u043B\u044F "\u0436\u0438\u0440\u043D\u044B\u0439".',style:{name:"\u0421\u0442\u0438\u043B\u044C",description:"\u0421\u0442\u0438\u043B\u044C \u0434\u043B\u044F \u043E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0436\u0438\u0440\u043D\u043E\u0433\u043E \u0442\u0435\u043A\u0441\u0442\u0430"}},"trailing-spaces":{name:"\u041F\u0440\u043E\u0431\u0435\u043B\u044B \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",description:"\u0423\u0434\u0430\u043B\u044F\u0435\u0442 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u044B \u043F\u043E\u0441\u043B\u0435 \u043A\u0430\u0436\u0434\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438.","twp-space-line-break":{name:"\u0414\u0432\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",description:'\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u0435\u0442 \u0434\u0432\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u0430, \u0437\u0430 \u043A\u043E\u0442\u043E\u0440\u044B\u043C\u0438 \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u0440\u044B\u0432 \u0441\u0442\u0440\u043E\u043A\u0438 ("\u0414\u0432\u0435 \u043F\u0440\u043E\u0431\u0435\u043B\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0442\u0440\u043E\u043A\u0438").'}},"two-spaces-between-lines-with-content":{name:"\u0420\u0430\u0437\u0440\u044B\u0432 \u0441\u0442\u0440\u043E\u043A\u0438 \u043C\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0441 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u044B\u043C",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0439 \u0440\u0430\u0437\u0440\u044B\u0432 \u0441\u0442\u0440\u043E\u043A\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A \u043A\u043E\u043D\u0446\u0430\u043C \u0441\u0442\u0440\u043E\u043A \u0441 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u044B\u043C, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u044E\u0449\u0438\u043C\u0441\u044F \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u0441\u0442\u0440\u043E\u043A\u0435 \u0434\u043B\u044F \u043F\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u043E\u0432, \u0446\u0438\u0442\u0430\u0442 \u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0441\u043F\u0438\u0441\u043A\u0430","line-break-indicator":{name:"\u0420\u0430\u0437\u0440\u044B\u0432 \u0441\u0442\u0440\u043E\u043A\u0438",description:"\u0420\u0430\u0437\u0440\u044B\u0432 \u0441\u0442\u0440\u043E\u043A\u0438 \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F."}},"unordered-list-style":{name:"\u0421\u0442\u0438\u043B\u044C \u043D\u0435\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0435\u043D\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u0413\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043E \u043D\u0435\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0435\u043D\u043D\u044B\u0435 \u0441\u043F\u0438\u0441\u043A\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0442 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0441\u0442\u0438\u043B\u044E.","list-style":{name:"\u0421\u0442\u0438\u043B\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u043F\u0438\u0441\u043A\u0430",description:"\u0421\u0442\u0438\u043B\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u043F\u0438\u0441\u043A\u0430 \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0432 \u043D\u0435\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0435\u043D\u043D\u044B\u0445 \u0441\u043F\u0438\u0441\u043A\u0430\u0445"}},"yaml-key-sort":{name:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430 YAML \u043A\u043B\u044E\u0447\u0435\u0439",description:"\u0421\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 YAML \u043A\u043B\u044E\u0447\u0438 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0430 \u0438 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0430. \u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u043C\u043E\u0436\u0435\u0442 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438. \u0420\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u043D\u0435\u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u043C\u0438 \u043A\u043B\u044E\u0447\u0430\u043C\u0438.","yaml-key-priority-sort-order":{name:"\u041F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 YAML \u043A\u043B\u044E\u0447\u0435\u0439",description:"\u041F\u043E\u0440\u044F\u0434\u043E\u043A, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u043A\u043B\u044E\u0447\u0438 \u0441 \u043E\u0434\u043D\u0438\u043C \u043D\u0430 \u043A\u0430\u0436\u0434\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435, \u0433\u0434\u0435 \u043E\u043D\u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435, \u043D\u0430\u0439\u0434\u0435\u043D\u043D\u043E\u043C \u0432 \u0441\u043F\u0438\u0441\u043A\u0435"},"priority-keys-at-start-of-yaml":{name:"\u041F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u043D\u044B\u0435 \u043A\u043B\u044E\u0447\u0438 \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 YAML",description:"\u041F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 YAML \u043A\u043B\u044E\u0447\u0435\u0439 \u0440\u0430\u0441\u043F\u043E\u043B\u0430\u0433\u0430\u0435\u0442\u0441\u044F \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 YAML frontmatter"},"yaml-sort-order-for-other-keys":{name:"\u041F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 YAML \u0434\u043B\u044F \u0434\u0440\u0443\u0433\u0438\u0445 \u043A\u043B\u044E\u0447\u0435\u0439",description:"\u0421\u043F\u043E\u0441\u043E\u0431 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u043A\u043B\u044E\u0447\u0435\u0439, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B \u0432 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u043C \u043F\u043E\u043B\u0435 \u041F\u043E\u0440\u044F\u0434\u043A\u0430 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 YAML \u043A\u043B\u044E\u0447\u0435\u0439"}},"yaml-timestamp":{name:"YAML Timestamp",description:"\u041E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u0442\u0443 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430 \u0432 YAML frontmatter. \u041F\u043E\u043B\u0443\u0447\u0430\u0435\u0442 \u0434\u0430\u0442\u044B \u0438\u0437 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0444\u0430\u0439\u043B\u0430.","date-created":{name:"\u0414\u0430\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",description:"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0434\u0430\u0442\u0443 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430"},"date-created-key":{name:"\u041A\u043B\u044E\u0447 \u0434\u0430\u0442\u044B \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",description:"\u041A\u0430\u043A\u043E\u0439 YAML \u043A\u043B\u044E\u0447 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u0434\u0430\u0442\u044B \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F"},"date-created-source-of-truth":{name:"\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0438\u0441\u0442\u0438\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F",description:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043E\u0442\u043A\u0443\u0434\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u0430\u0442\u044B \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F, \u0435\u0441\u043B\u0438 \u043E\u043D\u043E \u0443\u0436\u0435 \u043F\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 frontmatter."},"date-modified-source-of-truth":{name:"\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0438\u0441\u0442\u0438\u043D\u043D\u043E\u0439 \u0434\u0430\u0442\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",description:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442, \u043A\u0430\u043A\u0438\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C \u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0434\u0430\u0442\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F, \u0435\u0441\u043B\u0438 \u043E\u043D\u0430 \u0443\u0436\u0435 \u043F\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 frontmatter."},"date-modified":{name:"\u0414\u0430\u0442\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",description:"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0434\u0430\u0442\u0443 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430"},"date-modified-key":{name:"\u041A\u043B\u044E\u0447 \u0434\u0430\u0442\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",description:"\u041A\u0430\u043A\u043E\u0439 YAML \u043A\u043B\u044E\u0447 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u0434\u0430\u0442\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F"},format:{name:"\u0424\u043E\u0440\u043C\u0430\u0442",description:'\u0424\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 Moment (\u0441\u043C. Moment format options)'},"convert-to-utc":{name:"\u041F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0432 UTC",description:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u044D\u043A\u0432\u0438\u0432\u0430\u043B\u0435\u043D\u0442 UTC \u0434\u043B\u044F \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043D\u044B\u0445 \u0434\u0430\u0442 \u0432\u043C\u0435\u0441\u0442\u043E \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438"},"update-on-file-contents-updated":{name:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C YAML Timestamp \u043F\u0440\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430",description:"\u041A\u043E\u0433\u0434\u0430 \u0438\u0437\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0442\u0435\u043A\u0443\u0449\u0430\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u0430\u044F \u0437\u0430\u043C\u0435\u0442\u043A\u0430, YAML Timestamp \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043D\u0430 \u0437\u0430\u043C\u0435\u0442\u043A\u0435. \u042D\u0442\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u0443\u044E \u043C\u0435\u0442\u043A\u0443 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043D\u043E\u0439 \u0437\u0430\u043C\u0435\u0442\u043A\u0438, \u0435\u0441\u043B\u0438 \u043E\u043D\u0430 \u043E\u0442\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0431\u043E\u043B\u0435\u0435 \u0447\u0435\u043C \u043D\u0430 5 \u0441\u0435\u043A\u0443\u043D\u0434."}},"yaml-title-alias":{name:"YAML \u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0410\u043B\u0438\u0430\u0441",description:"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0438\u043B\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u0442 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430 \u0432 YAML frontmatter's aliases section. \u041F\u043E\u043B\u0443\u0447\u0430\u0435\u0442 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0438\u0437 \u043F\u0435\u0440\u0432\u043E\u0433\u043E H1 \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430.","preserve-existing-alias-section-style":{name:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0442\u0438\u043B\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0433\u043E \u0440\u0430\u0437\u0434\u0435\u043B\u0430 \u0430\u043B\u0438\u0430\u0441\u043E\u0432",description:"\u0415\u0441\u043B\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E, \u0442\u043E \u0421\u0442\u0438\u043B\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0430 \u0430\u043B\u0438\u0430\u0441\u043E\u0432 YAML \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043A \u043D\u043E\u0432\u044B\u043C \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u043C \u0440\u0430\u0437\u0434\u0435\u043B\u0430\u043C"},"keep-alias-that-matches-the-filename":{name:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0430\u043B\u0438\u0430\u0441, \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0449\u0438\u0439 \u0441 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043C \u0444\u0430\u0439\u043B\u0430",description:"\u0422\u0430\u043A\u0438\u0435 \u0430\u043B\u0438\u0430\u0441\u044B \u043E\u0431\u044B\u0447\u043D\u043E \u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u0438\u0437\u0431\u044B\u0442\u043E\u0447\u043D\u044B\u043C\u0438"},"use-yaml-key-to-keep-track-of-old-filename-or-heading":{name:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C YAML \u043A\u043B\u044E\u0447, \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0439 \u0432 \u041A\u043B\u044E\u0447 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0430 \u0430\u043B\u0438\u0430\u0441\u0430, \u0434\u043B\u044F \u043F\u043E\u043C\u043E\u0449\u0438 \u0441 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u043C\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430 \u0438\u043B\u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430",description:"\u0415\u0441\u043B\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E, \u043A\u043E\u0433\u0434\u0430 \u043F\u0435\u0440\u0432\u044B\u0439 H1 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0438\u0437\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 \u043F\u0435\u0440\u0432\u044B\u0439 H1 \u043D\u0435 \u043F\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u043E \u0441\u0442\u0430\u0440\u044B\u0439 \u0430\u043B\u0438\u0430\u0441, \u0445\u0440\u0430\u043D\u044F\u0449\u0438\u0439\u0441\u044F \u0432 \u044D\u0442\u043E\u043C \u043A\u043B\u044E\u0447\u0435, \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043C\u0435\u043D\u0435\u043D \u043D\u0430 \u043D\u043E\u0432\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u043C\u0435\u0441\u0442\u043E \u0442\u043E\u0433\u043E, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0441\u0442\u043E \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0437\u0430\u043F\u0438\u0441\u044C \u0432 \u043C\u0430\u0441\u0441\u0438\u0432 \u0430\u043B\u0438\u0430\u0441\u043E\u0432"},"alias-helper-key":{name:"\u041A\u043B\u044E\u0447 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0430 \u0430\u043B\u0438\u0430\u0441\u0430",description:"\u041A\u043B\u044E\u0447 \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u043B\u044F \u043F\u043E\u043C\u043E\u0449\u0438 \u0432 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0438 \u0442\u043E\u0433\u043E, \u043A\u0430\u043A\u043E\u0439 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0431\u044B\u043B \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D \u0432 frontmatter \u044D\u0442\u0438\u043C \u043F\u0440\u0430\u0432\u0438\u043B\u043E\u043C."}},"yaml-title":{name:"YAML \u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",description:"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430 \u0432 YAML frontmatter. \u041F\u043E\u043B\u0443\u0447\u0430\u0435\u0442 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430.","title-key":{name:"\u041A\u043B\u044E\u0447 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F",description:"\u041A\u0430\u043A\u043E\u0439 YAML \u043A\u043B\u044E\u0447 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F"},mode:{name:"\u0420\u0435\u0436\u0438\u043C",description:"\u041C\u0435\u0442\u043E\u0434 \u0434\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F"}}},enums:{"Title Case":"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A","ALL CAPS":"\u0412\u0421\u0415 \u041A\u0410\u041F\u0421\u041E\u041C","First letter":"\u041F\u0435\u0440\u0432\u0430\u044F \u0431\u0443\u043A\u0432\u0430",".":".",")":")",ERROR:"\u041E\u0428\u0418\u0411\u041A\u0410",TRACE:"\u0422\u0420\u0410\u0421\u0421\u0418\u0420\u041E\u0412\u041A\u0410",DEBUG:"\u041E\u0422\u041B\u0410\u0414\u041A\u0410",INFO:"\u0418\u041D\u0424\u041E\u0420\u041C\u0410\u0426\u0418\u042F",WARN:"\u041F\u0420\u0415\u0414\u0423\u041F\u0420\u0415\u0416\u0414\u0415\u041D\u0418\u0415",SILENT:"\u0411\u0415\u0417 \u0417\u0412\u0423\u041A\u0410",ascending:"\u041F\u043E \u0432\u043E\u0437\u0440\u0430\u0441\u0442\u0430\u043D\u0438\u044E",lazy:"\u043B\u0435\u043D\u0438\u0432\u044B\u0439",preserve:"\u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",Nothing:"\u041D\u0438\u0447\u0435\u0433\u043E","Remove hashtag":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0445\u044D\u0448\u0442\u0435\u0433","Remove whole tag":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0435\u0441\u044C \u0442\u0435\u0433",asterisk:"\u0437\u0432\u0435\u0437\u0434\u043E\u0447\u043A\u0430",underscore:"\u043D\u0438\u0436\u043D\u0435\u0435 \u043F\u043E\u0434\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u0435",consistent:"\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439","-":"-","*":"*","+":"+",space:"\u043F\u0440\u043E\u0431\u0435\u043B","no space":"\u0431\u0435\u0437 \u043F\u0440\u043E\u0431\u0435\u043B\u0430",None:"\u041D\u0438\u0447\u0435\u0433\u043E","Ascending Alphabetical":"\u0412 \u0430\u043B\u0444\u0430\u0432\u0438\u0442\u043D\u043E\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435","Descending Alphabetical":"\u0412 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u043C \u0430\u043B\u0444\u0430\u0432\u0438\u0442\u043D\u043E\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435","multi-line":"\u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0439","single-line":"\u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0439","single string to single-line":"\u043E\u0434\u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0439","single string to multi-line":"\u043E\u0434\u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0439","single string comma delimited":"\u043E\u0434\u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0430, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u0430\u044F \u0437\u0430\u043F\u044F\u0442\u044B\u043C\u0438","single string space delimited":"\u043E\u0434\u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0430, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u0430\u044F \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438","single-line space delimited":"\u043E\u0434\u043D\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430, \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043D\u0430\u044F \u043F\u0440\u043E\u0431\u0435\u043B\u0430\u043C\u0438","first-h1":"\u041F\u0435\u0440\u0432\u044B\u0439 H1","first-h1-or-filename-if-h1-missing":"\u041F\u0435\u0440\u0432\u044B\u0439 H1 \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430, \u0435\u0441\u043B\u0438 H1 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D",filename:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430",never:"\u041D\u0438\u043A\u043E\u0433\u0434\u0430","after 5 seconds":"\u0427\u0435\u0440\u0435\u0437 5 \u0441\u0435\u043A\u0443\u043D\u0434","after 10 seconds":"\u0427\u0435\u0440\u0435\u0437 10 \u0441\u0435\u043A\u0443\u043D\u0434","after 15 seconds":"\u0427\u0435\u0440\u0435\u0437 15 \u0441\u0435\u043A\u0443\u043D\u0434","after 30 seconds":"\u0427\u0435\u0440\u0435\u0437 30 \u0441\u0435\u043A\u0443\u043D\u0434","after 1 minute":"\u0427\u0435\u0440\u0435\u0437 1 \u043C\u0438\u043D\u0443\u0442\u0443","file system":"\u0421\u0438\u0441\u0442\u0435\u043C\u0430 \u0444\u0430\u0439\u043B\u043E\u0432",frontmatter:"YAML frontmatter","user or Linter edits":"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 Obsidian","''":"''","\u2018\u2019":"\u2018\u2019",'""':'""',"\u201C\u201D":"\u201C\u201D","\\":"\\","
    ":"
    "," ":" ","
    ":"
    "}};var vd={};var kd={commands:{"lint-file":{name:"Ge\xE7erli dosyay\u0131 lintle","error-message":"Dosyada Lintleme Hatas\u0131"},"lint-file-unless-ignored":{name:"Yoksay\u0131lmad\u0131k\xE7a ge\xE7erli dosyay\u0131 lintle"},"lint-all-files":{name:"Kasadaki t\xFCm dosyalar\u0131 lintle","error-message":"Dosyada T\xFCm Dosyalar\u0131 Lintleme Hatas\u0131","success-message":"T\xFCm dosyalar lintlendi","errors-message-singular":"T\xFCm dosyalar lintlendi ve 1 hata vard\u0131.","errors-message-plural":"T\xFCm dosyalar lintlendi ve {NUM} hata vard\u0131.","start-message":"Bu, t\xFCm dosyalar\u0131n\u0131z\u0131 d\xFCzenler ve hatalara yol a\xE7abilir.","submit-button-text":"T\xFCm\xFCn\xFC Lintle","submit-button-notice-text":"T\xFCm dosyalar lintleniyor..."},"lint-all-files-in-folder":{name:"Ge\xE7erli klas\xF6rdeki t\xFCm dosyalar\u0131 lintle","start-message":"Bu, {FOLDER_NAME} dahilindeki t\xFCm dosyalar\u0131n\u0131z\u0131 ve alt klas\xF6rlerini d\xFCzenler ve hatalara yol a\xE7abilir.","submit-button-text":"{FOLDER_NAME} i\xE7indeki T\xFCm Dosyalar\u0131 Lintle","submit-button-notice-text":"{FOLDER_NAME} i\xE7indeki t\xFCm dosyalar lintleniyor...","error-message":"Klas\xF6rdeki T\xFCm Dosyalar\u0131 Lintleme Hatas\u0131 Dosyada","success-message":"{FOLDER_NAME} i\xE7indeki t\xFCm {NUM} dosya lintlendi.","message-singular":"{FOLDER_NAME} i\xE7indeki t\xFCm {NUM} dosya lintlendi ve 1 hata vard\u0131.","message-plural":"{FOLDER_NAME} i\xE7indeki t\xFCm {FILE_COUNT} dosya lintlendi ve {ERROR_COUNT} hata vard\u0131."},"paste-as-plain-text":{name:"D\xFCz Metin Olarak & Modifikasyonsuz Yap\u0131\u015Ft\u0131r"},"lint-file-pop-up-menu-text":{name:"Dosyay\u0131 lintle"},"lint-folder-pop-up-menu-text":{name:"Klas\xF6r\xFC lintle"}},logs:{"plugin-load":"Eklenti y\xFCkleniyor","plugin-unload":"Eklenti kald\u0131r\u0131l\u0131yor","folder-lint":"Klas\xF6r lintleniyor ","linter-run":"Lintleme \xE7al\u0131\u015Ft\u0131r\u0131l\u0131yor","paste-link-warning":"pano i\xE7eri\u011Fi bir link oldu\u011Fu ve yap\u0131\u015Ft\u0131rmay\u0131 de\u011Fi\u015Ftiren di\u011Fer eklentilerle \xE7ak\u0131\u015Fmay\u0131 \xF6nlemek i\xE7in lintleme yap\u0131\u015Ft\u0131rmas\u0131 iptal edildi.","see-console":"Daha fazla detay i\xE7in konsolu kontrol edin.","unknown-error":"Lintleme s\u0131ras\u0131nda bilinmeyen bir hata olu\u015Ftu.","moment-locale-not-found":"Moment.js yerelini {MOMENT_LOCALE} olarak de\u011Fi\u015Ftirmeye \xE7al\u0131\u015F\u0131yor, elde edilen {CURRENT_LOCALE}","file-change-lint-message-start":"Lintlendi","pre-rules":"normal kurallardan \xF6nceki kurallar","post-rules":"normal kurallardan sonraki kurallar","rule-running":"kurallar \xE7al\u0131\u015Ft\u0131r\u0131l\u0131yor","custom-regex":"\xF6zel regex kurallar\u0131","running-custom-regex":"\xD6zel Regex \xC7al\u0131\u015Ft\u0131r\u0131l\u0131yor","running-custom-lint-command":"\xD6zel Lint Komutlar\u0131 \xC7al\u0131\u015Ft\u0131r\u0131l\u0131yor","custom-lint-duplicate-warning":'Ayn\u0131 komutu ("{COMMAND_NAME}") \xF6zel bir lint kural\u0131 olarak iki kez \xE7al\u0131\u015Ft\u0131ramazs\u0131n\u0131z.',"custom-lint-error-message":"\xD6zel Lint Komutu Hatas\u0131","disabled-text":"devre d\u0131\u015F\u0131","run-rule-text":"\xC7al\u0131\u015Ft\u0131r\u0131l\u0131yor","timing-key-not-found":"'{TIMING_KEY}' zamanlama anahtar\u0131 zamanlama bilgisi listesinde bulunamad\u0131, bu y\xFCzden yoksay\u0131ld\u0131","milliseconds-abbreviation":"ms","invalid-date-format-error":"Olu\u015Fturulan tarih format\u0131 '{DATE}' ayr\u0131\u015Ft\u0131r\u0131lamad\u0131 veya belirlenemedi, bu y\xFCzden '{FILE_NAME}' dosyas\u0131ndaki olu\u015Fturulan tarih ayn\u0131 b\u0131rak\u0131ld\u0131","invalid-delimiter-error-message":"ayra\xE7 sadece tek bir karakter olabilir","missing-footnote-error-message":"'{FOOTNOTE}' dipnotunun i\xE7eri\u011Finden \xF6nce kar\u015F\u0131l\u0131k gelen bir dipnot referans\u0131 yok ve i\u015Flenemez. L\xFCtfen t\xFCm dipnotlar\u0131n, dipnot i\xE7eri\u011Finden \xF6nce kar\u015F\u0131l\u0131k gelen bir referans\u0131 oldu\u011Fundan emin olun.","too-many-footnotes-error-message":"'{FOOTNOTE_KEY}' dipnot anahtar\u0131 birden fazla dipnota at\u0131fta bulunuyor. L\xFCtfen dipnotlar\u0131 g\xFCncelleyin, b\xF6ylece her dipnot anahtar\u0131 i\xE7in yaln\u0131zca bir dipnot olur.","wrapper-yaml-error":"YAML'da hata: {ERROR_MESSAGE}","wrapper-unknown-error":"bilinmeyen hata: {ERROR_MESSAGE}"},"notice-text":{"empty-clipboard":"Panoda i\xE7erik yok.","characters-added":"karakterler eklendi","characters-removed":"karakterler kald\u0131r\u0131ld\u0131"},"all-rules-option":"T\xFCm\xFC","linter-title":"Linter","empty-search-results-text":"Arama ile e\u015Fle\u015Fen ayar bulunamad\u0131","warning-text":"Uyar\u0131","file-backup-text":"Dosyalar\u0131n\u0131z\u0131n yede\u011Fini ald\u0131\u011F\u0131n\u0131zdan emin olun.",tabs:{names:{general:"Genel",custom:"\xD6zel",yaml:"YAML",heading:"Ba\u015Fl\u0131k",content:"\u0130\xE7erik",footnote:"Dipnot",spacing:"Bo\u015Fluk",paste:"Yap\u0131\u015Ft\u0131r",debug:"Hata ay\u0131kla"},"default-search-bar-text":"T\xFCm ayarlar\u0131 ara",general:{"lint-on-save":{name:"Kaydederken d\xFCzelt",description:"Manuel kaydetme (Ctrl + S tu\u015Funa bas\u0131ld\u0131\u011F\u0131nda veya vim tu\u015F ba\u011Flamalar\u0131n\u0131 kullan\u0131rken :w komutu \xE7al\u0131\u015Ft\u0131r\u0131ld\u0131\u011F\u0131nda) dosyay\u0131 d\xFCzeltir"},"display-message":{name:"D\xFCzeltme sonras\u0131 mesaj\u0131 g\xF6ster",description:"D\xFCzeltme sonras\u0131 de\u011Fi\u015Fen karakter say\u0131s\u0131n\u0131 g\xF6sterir"},"lint-on-file-change":{name:"Dosya De\u011Fi\u015Fikli\u011Finde D\xFCzeltme",description:"Bir dosya kapat\u0131ld\u0131\u011F\u0131nda veya yeni bir dosya a\xE7\u0131ld\u0131\u011F\u0131nda, \xF6nceki dosya d\xFCzeltilir."},"display-lint-on-file-change-message":{name:"Dosya De\u011Fi\u015Fikli\u011Finde D\xFCzeltme Mesaj\u0131n\u0131 G\xF6ster",description:"Dosya De\u011Fi\u015Fikli\u011Finde D\xFCzeltme oldu\u011Funda bir mesaj g\xF6sterir"},"folders-to-ignore":{name:"Yoksay\u0131lacak klas\xF6rler",description:"T\xFCm dosyalar\u0131 d\xFCzeltirken veya kaydederken d\xFCzeltme i\u015Fleminin yoksay\u0131laca\u011F\u0131 klas\xF6rler. Klas\xF6r yollar\u0131n\u0131 yeni sat\u0131rlarla ay\u0131rarak girin"},"override-locale":{name:"Yerel ayarlar\u0131n \xFCzerine yaz",description:"Varsay\u0131lan\u0131n d\u0131\u015F\u0131nda bir yerel ayar kullanmak istiyorsan\u0131z bunu ayarlay\u0131n"},"same-as-system-locale":"Sistemle ayn\u0131 ({SYS_LOCALE})","yaml-aliases-section-style":{name:"YAML takma adlar\u0131 b\xF6l\xFCm\xFC stili",description:"YAML takma adlar\u0131 b\xF6l\xFCm\xFCn\xFCn stili"},"yaml-tags-section-style":{name:"YAML etiketleri b\xF6l\xFCm\xFC stili",description:"YAML etiketleri b\xF6l\xFCm\xFCn\xFCn stili"},"default-escape-character":{name:"Varsay\u0131lan Ka\xE7\u0131\u015F Karakteri",description:"Tek t\u0131rnak ve \xE7ift t\u0131rnak bulunmayan YAML de\u011Ferlerinden ka\xE7mak i\xE7in kullan\u0131lacak varsay\u0131lan karakter."},"remove-unnecessary-escape-chars-in-multi-line-arrays":{name:"\xC7ok Sat\u0131rl\u0131 Dizi Format\u0131ndayken Gereksiz Ka\xE7\u0131\u015F Karakterlerini Kald\u0131r",description:"\xC7ok sat\u0131rl\u0131 YAML dizileri i\xE7in ka\xE7\u0131\u015F karakterleri tek sat\u0131rl\u0131 dizilere g\xF6re ayn\u0131 ka\xE7\u0131\u015Fa ihtiya\xE7 duymaz, bu y\xFCzden \xE7ok sat\u0131rl\u0131 format i\xE7erisinde gerekli olmayan ekstra ka\xE7\u0131\u015Flar\u0131 kald\u0131r\u0131r"},"number-of-dollar-signs-to-indicate-math-block":{name:"Matematiksel Blo\u011Fu Belirtmek \u0130\xE7in Dolar \u0130\u015Fareti Say\u0131s\u0131",description:"Matematik i\xE7eri\u011Finin bir matematiksel blok yerine inline matematik olup olmad\u0131\u011F\u0131n\u0131 belirlemek i\xE7in kullan\u0131lacak dolar i\u015Fareti say\u0131s\u0131"}},debug:{"log-level":{name:"Log D\xFCzeyi",description:"Hizmetin loglamaya izin verdi\u011Fi log t\xFCrleri. Varsay\u0131lan ERROR'dur."},"linter-config":{name:"Linter Yap\u0131land\u0131rmas\u0131",description:"Ayar sayfas\u0131n\u0131n y\xFCklenmesi s\u0131ras\u0131nda Linter i\xE7in data.json i\xE7eri\u011Fi"},"log-collection":{name:"Kaydetme d\xFCzeltmesi ve mevcut dosyan\u0131n d\xFCzeltilmesi s\u0131ras\u0131nda loglar\u0131 topla",description:"Kaydetme d\xFCzeltmesi yapt\u0131\u011F\u0131n\u0131zda ve mevcut dosyay\u0131 d\xFCzeltirken loglar\u0131 toplar. Bu loglar hata ay\u0131klama ve hata raporlar\u0131 olu\u015Fturma i\xE7in yard\u0131mc\u0131 olabilir."},"linter-logs":{name:"Linter Loglar\u0131",description:"Son Kaydetme d\xFCzeltmesi veya son mevcut dosya \xE7al\u0131\u015Ft\u0131rmas\u0131ndan elde edilen loglar (e\u011Fer etkinle\u015Ftirilmi\u015Fse)."}}},options:{"custom-command":{name:"\xD6zel Komutlar",description:"\xD6zel komutlar, linter normal kurallar\u0131n\u0131 \xE7al\u0131\u015Ft\u0131rmay\u0131 bitirdikten sonra \xE7al\u0131\u015Ft\u0131r\u0131lan Obsidyen komutlard\u0131r. Bu, YAML zaman damgas\u0131 mant\u0131\u011F\u0131 \xE7al\u0131\u015Fmadan \xF6nce \xE7al\u0131\u015Fmad\u0131klar\u0131 anlam\u0131na gelir, dolay\u0131s\u0131yla linterin bir sonraki \xE7al\u0131\u015Fmas\u0131nda YAML zaman damgas\u0131n\u0131n tetiklenmesine neden olabilirler. Bir Obsidyen komutunu yaln\u0131zca bir kez se\xE7ebilirsiniz.",warning:"Bir se\xE7ene\u011Fi se\xE7erken, se\xE7ene\u011Fi fareyi kullanarak veya enter tu\u015Funa basarak se\xE7ti\u011Finizden emin olun. Di\u011Fer se\xE7im y\xF6ntemleri \xE7al\u0131\u015Fmayabilir ve yaln\u0131zca ger\xE7ek bir Obsidian komutunun veya bo\u015F bir dizinin se\xE7imleri kaydedilir.","add-input-button-text":"Yeni komut ekle","command-search-placeholder-text":"Obsidian komutu","move-up-tooltip":"Yukar\u0131","move-down-tooltip":"A\u015Fa\u011F\u0131","delete-tooltip":"Sil"},"custom-replace":{name:"\xD6zel Regex De\u011Fi\u015Ftirme",description:"\xD6zel regex de\u011Fi\u015Ftirme, bulunan regex ile e\u015Fle\u015Fen her \u015Feyi de\u011Fi\u015Ftirme de\u011Feri ile de\u011Fi\u015Ftirmek i\xE7in kullan\u0131labilir. De\u011Fi\u015Ftirme ve bulma de\u011Ferleri ge\xE7erli regex de\u011Ferleri olmal\u0131d\u0131r.",warning:"Regex hakk\u0131nda bilginiz yoksa dikkatli kullan\u0131n. Ayr\u0131ca, l\xFCtle iOS mobil platformunda regexinizde geriye d\xF6n\xFCk aramalar\u0131 kullanmay\u0131n \xE7\xFCnk\xFC bu, o platformda desteklenmedi\u011Fi i\xE7in lint i\u015Fleminin ba\u015Far\u0131s\u0131z olmas\u0131na neden olur.","add-input-button-text":"Yeni regex de\u011Fi\u015Ftirme ekle","regex-to-find-placeholder-text":"bulunacak regex","flags-placeholder-text":"bayraklar","regex-to-replace-placeholder-text":"de\u011Fi\u015Ftirilecek regex","label-placeholder-text":"etiket","move-up-tooltip":"Yukar\u0131 ta\u015F\u0131","move-down-tooltip":"A\u015Fa\u011F\u0131 ta\u015F\u0131","delete-tooltip":"Sil"}},rules:{"auto-correct-common-misspellings":{name:"Yayg\u0131n Yanl\u0131\u015F Yaz\u0131mlar\u0131 Otomatik D\xFCzelt",description:'Yayg\u0131n yanl\u0131\u015F yaz\u0131mlar\u0131n s\xF6zl\xFC\u011F\xFCn\xFC kullanarak bunlar\u0131 do\u011Fru yaz\u0131mlar\u0131na otomatik olarak d\xF6n\xFC\u015Ft\xFCr\xFCr. Otomatik d\xFCzeltilen kelimelerin tam listesi i\xE7in otomatik-d\xFCzeltme haritas\u0131na bak\u0131n.',"ignore-words":{name:"Kelimeleri Yoksay",description:"Otomatik d\xFCzeltme s\u0131ras\u0131nda yoksay\u0131lacak k\xFC\xE7\xFCk harfli kelimelerin virg\xFClle ayr\u0131lm\u0131\u015F listesi"}},"add-blockquote-indentation-on-paste":{name:"Yap\u0131\u015Ft\u0131rma S\u0131ras\u0131nda Blok Al\u0131nt\u0131 Girintisini Ekle",description:"\u0130mle\xE7 bir blok al\u0131nt\u0131/callout sat\u0131r\u0131nda oldu\u011Funda, t\xFCm sat\u0131rlara, ilk sat\u0131r hari\xE7, blok al\u0131nt\u0131lar ekler"},"blockquote-style":{name:"Blok Al\u0131nt\u0131 Stili",description:"Blok al\u0131nt\u0131 stili tutarl\u0131 olmal\u0131d\u0131r.",style:{name:"Stil",description:"Blok al\u0131nt\u0131 g\xF6stergelerinde kullan\u0131lan stil"}},"capitalize-headings":{name:"B\xFCy\xFCk Harfli Ba\u015Fl\u0131klar",description:"Ba\u015Fl\u0131klar b\xFCy\xFCk harfle bi\xE7imlendirilmelidir",style:{name:"Stil",description:"Kullan\u0131lacak b\xFCy\xFCk harfle ba\u015Flatma stili"},"ignore-case-words":{name:"Durum S\xF6zc\xFCklerini Yoksay",description:"Ba\u015Fl\u0131k durum stilini sadece t\xFCm k\xFC\xE7\xFCk harfli s\xF6zc\xFCklere uygula"},"ignore-words":{name:"S\xF6zc\xFCkleri Yoksay",description:"B\xFCy\xFCk harfle ba\u015Flat\u0131rken yoksay\u0131lacak s\xF6zc\xFCklerin virg\xFClle ayr\u0131lm\u0131\u015F listesi"},"lowercase-words":{name:"K\xFC\xE7\xFCk Harfli S\xF6zc\xFCkler",description:"K\xFC\xE7\xFCk harfli tutulacak s\xF6zc\xFCklerin virg\xFClle ayr\u0131lm\u0131\u015F listesi"}},"compact-yaml":{name:"S\u0131k\u0131\u015Ft\u0131r\u0131lm\u0131\u015F YAML",description:"YAML \xF6n bilgisindeki ba\u015Ftaki ve sondaki bo\u015F sat\u0131rlar\u0131 kald\u0131r\u0131r.","inner-new-lines":{name:"\u0130\xE7 Yeni Sat\u0131rlar",description:"YAML'\u0131n ba\u015F\u0131nda veya sonunda olmayan yeni sat\u0131rlar\u0131 kald\u0131r\u0131r."}},"consecutive-blank-lines":{name:"Ard\u0131\u015F\u0131k bo\u015F sat\u0131rlar",description:"En fazla bir ard\u0131\u015F\u0131k bo\u015F sat\u0131r olmal\u0131d\u0131r."},"convert-bullet-list-markers":{name:"Bullet List Markerlar\u0131n\u0131 D\xF6n\xFC\u015Ft\xFCr",description:"Bullet list marker sembollerini markdown list markerlar\u0131na d\xF6n\xFC\u015Ft\xFCr\xFCr."},"convert-spaces-to-tabs":{name:"Bo\u015Fluklar\u0131 Sekmeye D\xF6n\xFC\u015Ft\xFCr",description:"Ba\u015Ftaki bo\u015Fluklar\u0131 sekmeye d\xF6n\xFC\u015Ft\xFCr\xFCr.",tabsize:{name:"Sekme Boyutu",description:"Bir sekme haline d\xF6n\xFC\u015Ft\xFCr\xFClecek bo\u015Fluk say\u0131s\u0131"}},"emphasis-style":{name:"Vurgu Stili",description:"Vurgu stilinin tutarl\u0131 olmas\u0131n\u0131 sa\u011Flar.",style:{name:"Stil",description:"Vurgulanan i\xE7eri\u011Fi belirtmek i\xE7in kullan\u0131lan stil"}},"empty-line-around-blockquotes":{name:"Al\u0131nt\u0131 Bloklar\u0131n\u0131n Etraf\u0131nda Bo\u015F Sat\u0131r",description:"Bir belgenin ba\u015F\u0131n\u0131 veya sonunu ba\u015Flatmayan al\u0131nt\u0131 bloklar\u0131n etraf\u0131nda bo\u015F bir sat\u0131r olmal\u0131d\u0131r.Not: bo\u015F bir sat\u0131r ya al\u0131nt\u0131 bloklar i\xE7in bir seviye daha az girinti veya yeni bir sat\u0131r karakteri demektir."},"empty-line-around-code-fences":{name:"Kod \xC7itlerinin Etraf\u0131nda Bo\u015F Sat\u0131r",description:"Bir belgenin ba\u015F\u0131n\u0131 veya sonunu ba\u015Flatmayan kod \xE7itlerinin etraf\u0131nda bo\u015F bir sat\u0131r olmal\u0131d\u0131r."},"empty-line-around-math-blocks":{name:"Matematik Bloklar\u0131n\u0131n Etraf\u0131nda Bo\u015F Sat\u0131r",description:"Tek sat\u0131rl\u0131k matematik i\xE7in bir matematik blo\u011Funu belirtmek i\xE7in ka\xE7 dolar i\u015Fareti oldu\u011Funu belirleyen Dolar \u0130\u015Faretlerinin Say\u0131s\u0131yla Matematik Blo\u011Funu Belirt kullan\u0131larak matematik bloklar\u0131n\u0131n etraf\u0131nda bo\u015F bir sat\u0131r olmal\u0131d\u0131r."},"empty-line-around-tables":{name:"Tablolar\u0131n Etraf\u0131nda Bo\u015F Sat\u0131r",description:"Bir belgenin ba\u015F\u0131n\u0131 veya sonunu ba\u015Flatmayan github flavored tablolar\u0131n etraf\u0131nda bo\u015F bir sat\u0131r olmal\u0131d\u0131r."},"escape-yaml-special-characters":{name:"YAML \xD6zel Karakterlerine Ka\xE7\u0131\u015F \u0130\u015Flemi Yap",description:`YAML i\xE7indeki bo\u015Flukla beraber gelen iki nokta \xFCst \xFCste (:), tek t\u0131rnak (') ve \xE7ift t\u0131rnak (") karakterlerini ka\xE7\u0131\u015F i\u015Flemine tabi tutar.`,"try-to-escape-single-line-arrays":{name:"Tek Sat\u0131rl\u0131k Listeleri Ka\xE7\u0131\u015F Denemesi",description:'Bir dizinin "[" ile ba\u015Flad\u0131\u011F\u0131n\u0131, "]" ile bitti\u011Fini ve \xF6\u011Felerin "," ile ayr\u0131ld\u0131\u011F\u0131n\u0131 varsayarak dizi de\u011Ferlerini ka\xE7\u0131\u015F i\u015Flemine tabi tutmaya \xE7al\u0131\u015F\u0131r.'}},"file-name-heading":{name:"Dosya Ad\u0131 Ba\u015Fl\u0131\u011F\u0131",description:"E\u011Fer hi\xE7 H1 ba\u015Fl\u0131\u011F\u0131 yoksa dosya ad\u0131n\u0131 H1 ba\u015Fl\u0131\u011F\u0131 olarak ekler."},"footnote-after-punctuation":{name:"Noktalama \u0130\u015Faretinden Sonra Dipnot",description:"Dipnot referanslar\u0131n\u0131n noktalama i\u015Faretinden \xF6nce de\u011Fil, sonra yerle\u015Ftirildi\u011Finden emin olur."},"force-yaml-escape":{name:"YAML Ka\xE7\u0131\u015F\u0131n\u0131 Zorla",description:"Belirtilen YAML anahtarlar\u0131 i\xE7in ka\xE7\u0131\u015F de\u011Ferleri.","force-yaml-escape-keys":{name:"Anahtarlarda YAML Ka\xE7\u0131\u015F\u0131n\u0131 Zorla",description:"Yeni bir sat\u0131r karakteri ile ayr\u0131lm\u0131\u015F belirtilen YAML anahtarlar\u0131nda YAML ka\xE7\u0131\u015F karakterini kullan\u0131r, e\u011Fer zaten ka\xE7\u0131\u015F yap\u0131lmam\u0131\u015Fsa. YAML dizilerinde kullanmay\u0131n"}},"format-tags-in-yaml":{name:"YAML Etiketlerini Bi\xE7imlendir",description:"YAML \xF6n madde i\xE7indeki etiketlerden hashtagleri kald\u0131r\u0131r, \xE7\xFCnk\xFC bunlar etiketleri ge\xE7ersiz k\u0131lar."},"format-yaml-array":{name:"YAML Dizisini Bi\xE7imlendir",description:"Normal YAML dizilerinin \xE7ok sat\u0131rl\u0131 veya tek sat\u0131rl\u0131 olarak bi\xE7imlendirilmesine izin verir ve tags ve aliases baz\u0131 Obsidian \xF6zg\xFC \xF6zelliklerine sahip YAML formatlar\u0131nda bulunabilir.Not: Tek giri\u015Fli bir diziden birden fazla giri\u015Fi olan tek sat\u0131rl\u0131 bir diziye ge\xE7mek ayn\u0131d\u0131r, tek fark \xE7ok sat\u0131rl\u0131 bir dizi olmas\u0131d\u0131r.","alias-key":{name:"YAML takma adlar\u0131 b\xF6l\xFCm\xFCn\xFC bi\xE7imlendir",description:"YAML takma adlar\u0131 b\xF6l\xFCm\xFC i\xE7in bi\xE7imlendirmeyi a\xE7ar. Bu se\xE7ene\u011Fi YAML Title Alias kural\u0131yla birlikte kullanmaman\u0131z \xF6nerilir \xE7\xFCnk\xFC birlikte d\xFCzg\xFCn \xE7al\u0131\u015Fmayabilir veya farkl\u0131 bi\xE7imlendirme stilleri se\xE7ilmi\u015F olabilir, bu beklenmeyen sonu\xE7lara yol a\xE7abilir."},"tag-key":{name:"YAML etiketleri b\xF6l\xFCm\xFCn\xFC bi\xE7imlendir",description:"YAML etiketleri b\xF6l\xFCm\xFC i\xE7in bi\xE7imlendirmeyi a\xE7ar."},"default-array-style":{name:"Varsay\u0131lan YAML dizi b\xF6l\xFCm\xFC stili",description:"tags, aliases veya Force key values to be single-line arrays ve Force key values to be multi-line arrays olmayan di\u011Fer YAML dizilerinin stili"},"default-array-keys":{name:"YAML dizi b\xF6l\xFCmlerini bi\xE7imlendir",description:"Normal YAML dizileri i\xE7in bi\xE7imlendirmeyi a\xE7ar"},"force-single-line-array-style":{name:"Anahtar de\u011Ferlerini tek sat\u0131rl\u0131 dizilere zorla",description:"Yeni sat\u0131r ile ayr\u0131lan anahtarlar i\xE7in YAML dizisini tek sat\u0131rl\u0131 formatta olmaya zorlar (bu se\xE7ene\u011Fi devre d\u0131\u015F\u0131 b\u0131rakmak i\xE7in bo\u015F b\u0131rak\u0131n)"},"force-multi-line-array-style":{name:"Anahtar de\u011Ferlerini \xE7ok sat\u0131rl\u0131 dizilere zorla",description:"Yeni sat\u0131r ile ayr\u0131lan anahtarlar i\xE7in YAML dizisini \xE7ok sat\u0131rl\u0131 formatta olmaya zorlar (bu se\xE7ene\u011Fi devre d\u0131\u015F\u0131 b\u0131rakmak i\xE7in bo\u015F b\u0131rak\u0131n)"}},"header-increment":{name:"Ba\u015Fl\u0131k Art\u0131r\u0131m\u0131",description:"Ba\u015Fl\u0131k seviyeleri bir seferde sadece bir seviye artmal\u0131d\u0131r","start-at-h2":{name:"Ba\u015Fl\u0131k Art\u0131r\u0131m\u0131n\u0131 Ba\u015Fl\u0131k Seviyesi 2\u2019de Ba\u015Flat",description:"Bir dosyadaki minimum ba\u015Fl\u0131k seviyesini ba\u015Fl\u0131k seviyesi 2 yapar ve buna g\xF6re t\xFCm ba\u015Fl\u0131klar\u0131 kayd\u0131r\u0131r, b\xF6ylece ba\u015Fl\u0131k art\u0131\u015F\u0131 seviye 2 ba\u015Fl\u0131\u011F\u0131 ile ba\u015Flar."}},"heading-blank-lines":{name:"Ba\u015Fl\u0131k Bo\u015F Sat\u0131rlar\u0131",description:"T\xFCm ba\u015Fl\u0131klar\u0131n hem \xF6ncesinde hem de sonras\u0131nda birer bo\u015F sat\u0131r olmal\u0131d\u0131r (ba\u015Fl\u0131k belgenin ba\u015F\u0131nda veya sonunda oldu\u011Funda bu durum ge\xE7erli de\u011Fildir).",bottom:{name:"Alt",description:"Ba\u015Fl\u0131klar\u0131n sonras\u0131na bo\u015F sat\u0131r ekler"},"empty-line-after-yaml":{name:"YAML ve Ba\u015Fl\u0131k Aras\u0131nda Bo\u015F Sat\u0131r",description:"YAML \xF6n madde ve ba\u015Fl\u0131k aras\u0131ndaki bo\u015F sat\u0131r\u0131 korur"}},"headings-start-line":{name:"Ba\u015Fl\u0131klar Sat\u0131r\u0131 Ba\u015Flat\u0131r",description:"Bir sat\u0131r\u0131 ba\u015Flatmayan ba\u015Fl\u0131klar\u0131n \xF6ncesi bo\u015Fluklar\u0131 kald\u0131r\u0131l\u0131r ki ba\u015Fl\u0131klar ba\u015Fl\u0131k olarak tan\u0131nabilsin."},"insert-yaml-attributes":{name:"YAML \xD6zniteliklerini Ekle",description:"Verilen YAML \xF6zniteliklerini YAML \xF6n maddesine ekler. Her \xF6zniteli\u011Fi tek bir sat\u0131ra koyun.","text-to-insert":{name:"Eklenecek metin",description:"YAML \xF6n maddesine eklenen metin"}},"line-break-at-document-end":{name:"Belge Sonunda Sat\u0131r Sonu",description:"Bir belgenin sonunda tam olarak bir sat\u0131r sonu oldu\u011Funu garanti eder."},"move-footnotes-to-the-bottom":{name:"Dipnotlar\u0131 Altbilgiye Ta\u015F\u0131",description:"T\xFCm dipnotlar\u0131 belgenin alt\u0131na ta\u015F\u0131r."},"move-math-block-indicators-to-their-own-line":{name:"Matematik Blok G\xF6stergelerini Kendi Sat\u0131rlar\u0131na Ta\u015F\u0131",description:'Tek sat\u0131rl\u0131 matematik i\xE7in ka\xE7 dolar i\u015Faretinin bir matematik blo\u011Funu g\xF6sterdi\u011Fini belirlemek i\xE7in "Bir Matematik Blo\u011Fu G\xF6stermek \u0130\xE7in Dolar \u0130\u015Fareti Say\u0131s\u0131"n\u0131 kullanarak t\xFCm ba\u015Flang\u0131\xE7 ve biti\u015F matematik blo\u011Fu g\xF6stergelerini kendi sat\u0131rlar\u0131na ta\u015F\u0131y\u0131n.'},"move-tags-to-yaml":{name:"Etiketleri YAML'a Ta\u015F\u0131",description:"T\xFCm etiketleri belgenin YAML \xF6n maddesine ta\u015F\u0131r.","how-to-handle-existing-tags":{name:"Metin i\xE7indeki etiket i\u015Flemi",description:"\xD6n maddeye ta\u015F\u0131nd\u0131ktan sonra dosyan\u0131n i\xE7eri\u011Finde bulunan ve yoksay\u0131lmayan etiketlerle ne yap\u0131laca\u011F\u0131"},"tags-to-ignore":{name:"Yoksay\u0131lacak etiketler",description:"\u0130\xE7erik g\xF6vdesindeki hashtag'lerden kald\u0131rma etkinle\u015Ftirilmi\u015Fse, etiketler dizisine ta\u015F\u0131nmayacak veya i\xE7erik g\xF6vdesinden kald\u0131r\u0131lmayacak etiketler. Her etiket yeni bir sat\u0131rda ve # olmadan olmal\u0131d\u0131r.Etiket ad\u0131nda hashtag i\xE7ermedi\u011Finizden emin olun."}},"no-bare-urls":{name:"Yal\u0131n URL'ler Olmas\u0131n",description:"Yal\u0131n URL'leri a\xE7\u0131l\u0131 ayra\xE7lar ile ku\u015Fat\u0131r, tek veya \xE7ift t\u0131rnak, k\xF6\u015Feli parantez veya e\u011Fik kesme i\u015Fareti i\xE7inde de\u011Filse."},"ordered-list-style":{name:"S\u0131ral\u0131 Liste Stili",description:"S\u0131ral\u0131 listelerin belirtilen stili izlemesini sa\u011Flar.Not: 2 bo\u015Fluk veya 1 sekme bir girinti seviyesi olarak kabul edilir.","number-style":{name:"Numara Stili",description:"S\u0131ral\u0131 liste g\xF6stergelerinde kullan\u0131lan numara stili"},"list-end-style":{name:"S\u0131ral\u0131 Liste G\xF6sterge Sonu Stili",description:"Bir s\u0131ral\u0131 liste g\xF6stergesinin biti\u015F karakteri"}},"paragraph-blank-lines":{name:"Paragraf Bo\u015F Sat\u0131rlar\u0131",description:"T\xFCm paragraflar\u0131n hem \xF6nce hem sonra tam olarak bir bo\u015F sat\u0131r\u0131 olmal\u0131d\u0131r."},"prevent-double-checklist-indicator-on-paste":{name:"Yap\u0131\u015Ft\u0131rmada \xC7ift Kontrol Listesi G\xF6stergesini \xD6nle",description:"Kurs\xF6r\xFCn dosyadaki sat\u0131rda bir kontrol listesi g\xF6stergesi varsa, yap\u0131\u015Ft\u0131r\u0131lacak metinden ba\u015Flang\u0131\xE7 kontrol listesi g\xF6stergesini kald\u0131r\u0131r"},"prevent-double-list-item-indicator-on-paste":{name:"Yap\u0131\u015Ft\u0131rmada \xC7ift Liste \xD6\u011Fesi G\xF6stergesini \xD6nle",description:"Kurs\xF6r\xFCn dosyadaki sat\u0131rda bir liste g\xF6stergesi varsa, yap\u0131\u015Ft\u0131r\u0131lacak metinden ba\u015Flang\u0131\xE7 listesi g\xF6stergesini kald\u0131r\u0131r"},"proper-ellipsis-on-paste":{name:"Yap\u0131\u015Ft\u0131rmada Uygun \xDC\xE7 Nokta",description:"Yap\u0131\u015Ft\u0131r\u0131lacak metinde aralar\u0131nda bo\u015Fluk olsa bile ard\u0131\u015F\u0131k \xFC\xE7 noktay\u0131, \xFC\xE7 nokta karakteriyle ile de\u011Fi\u015Ftirir"},"proper-ellipsis":{name:"Uygun \xDC\xE7 Nokta",description:"Ard\u0131\u015F\u0131k \xFC\xE7 tane noktay\u0131, \xFC\xE7 nokta karakteriyle de\u011Fi\u015Ftirir."},"quote-style":{name:"\xFC\xE7 nokta karakteriyle",description:"G\xF6vde i\xE7eri\u011Findeki al\u0131nt\u0131lar\u0131 belirtilen tek ve \xE7ift al\u0131nt\u0131 stillerine g\xFCnceller.","single-quote-enabled":{name:"Tek Al\u0131nt\u0131 Stili Kullan\u0131m\u0131",description:"Se\xE7ilen tek al\u0131nt\u0131 stilinin kullan\u0131laca\u011F\u0131n\u0131 belirtir."},"single-quote-style":{name:"Tek Al\u0131nt\u0131 Stili",description:"Kullan\u0131lacak tek al\u0131nt\u0131 stilidir."},"double-quote-enabled":{name:"\xC7ift Al\u0131nt\u0131 Stili Kullan\u0131m\u0131",description:"Se\xE7ilen \xE7ift al\u0131nt\u0131 stilinin kullan\u0131laca\u011F\u0131n\u0131 belirtir."},"double-quote-style":{name:"\xC7ift Al\u0131nt\u0131 Stili",description:"Kullan\u0131lacak \xE7ift al\u0131nt\u0131 stilidir."}},"re-index-footnotes":{name:"Dipnotlar\u0131 Yeniden \u0130ndeksle",description:"Dipnot anahtarlar\u0131n\u0131 ve dipnotlar\u0131, olu\u015Fum s\u0131ras\u0131na g\xF6re yeniden indeksler.Not: Bir anahtar i\xE7in birden fazla dipnot varsa, bu kural \xE7al\u0131\u015Fmaz."},"remove-consecutive-list-markers":{name:"Ard\u0131\u015F\u0131k Liste \u0130\u015Faretlerini Kald\u0131r",description:"Ard\u0131\u015F\u0131k liste i\u015Faretlerini kald\u0131r\u0131r. Liste \xF6\u011Felerini kopyala-yap\u0131\u015Ft\u0131r yaparken kullan\u0131\u015Fl\u0131d\u0131r."},"remove-empty-lines-between-list-markers-and-checklists":{name:"Liste \u0130\u015Faretleri ve Kontrol Listeleri Aras\u0131ndaki Bo\u015F Sat\u0131rlar\u0131 Kald\u0131r",description:"Liste i\u015Faretleri ve kontrol listeleri aras\u0131nda bo\u015F sat\u0131r olmamal\u0131d\u0131r."},"remove-empty-list-markers":{name:"Bo\u015F Liste \u0130\u015Faret\xE7ilerini Kald\u0131r",description:"Bo\u015F liste i\u015Faret\xE7ilerini, yani i\xE7eriksiz liste \xF6\u011Felerini kald\u0131r\u0131r."},"remove-hyphenated-line-breaks":{name:"Tireli Sat\u0131r Sonlar\u0131n\u0131 Kald\u0131r",description:"Removes hyphenated line breaks. Useful when pasting text from textbooks."},"remove-hyphens-on-paste":{name:"Yap\u0131\u015Ft\u0131r\u0131rken Tireleri Kald\u0131r",description:"Yap\u0131\u015Ft\u0131r\u0131lacak metindeki tireleri kald\u0131r\u0131r"},"remove-leading-or-trailing-whitespace-on-paste":{name:"Yap\u0131\u015Ft\u0131rda \xD6ndeki veya Sondaki Bo\u015Fluklar\u0131 Kald\u0131r",description:"Yap\u0131\u015Ft\u0131r\u0131lacak metnin ba\u015F\u0131ndaki sekme olmayan bo\u015Fluklar\u0131 ve sonundaki t\xFCm bo\u015Fluklar\u0131 kald\u0131r\u0131r"},"remove-leftover-footnotes-from-quote-on-paste":{name:"Yap\u0131\u015Ft\u0131rmada Al\u0131nt\u0131dan Kalan Dipnotlar\u0131 Kald\u0131r",description:"Yap\u0131\u015Ft\u0131r\u0131lacak metinden herhangi bir kal\u0131nt\u0131 dipnot referanslar\u0131n\u0131 kald\u0131r\u0131r"},"remove-link-spacing":{name:"Link Aral\u0131\u011F\u0131n\u0131 Kald\u0131r",description:"Link metninin etraf\u0131ndaki bo\u015Fluklar\u0131 kald\u0131r\u0131r."},"remove-multiple-blank-lines-on-paste":{name:"Yap\u0131\u015Ft\u0131r\u0131rken Birden Fazla Bo\u015F Sat\u0131r\u0131 Kald\u0131r",description:"Metnin yap\u0131\u015Ft\u0131r\u0131lmas\u0131 i\xE7in birden \xE7ok bo\u015F sat\u0131r\u0131 tek bir bo\u015F sat\u0131ra s\u0131k\u0131\u015Ft\u0131r\u0131r"},"remove-multiple-spaces":{name:"Birden Fazla Bo\u015Flu\u011Fu Kald\u0131r",description:"\u0130ki veya daha fazla ard\u0131\u015F\u0131k bo\u015Flu\u011Fu kald\u0131r\u0131r. Sat\u0131r\u0131n ba\u015F\u0131ndaki ve sonundaki bo\u015Fluklar\u0131 g\xF6rmezden gelir. "},"remove-space-around-characters":{name:"Karakterler Etraf\u0131ndaki Bo\u015Flu\u011Fu Kald\u0131r",description:"Belirli karakterlerin bo\u015Fluklarla (tek bo\u015Fluk veya sekme) \xE7evrelenmemesini sa\u011Flar.Not: Bu, baz\u0131 durumlarda indirim bi\xE7imiyle ilgili sorunlara neden olabilir.","include-fullwidth-forms":{name:"Tam Geni\u015Flikte Formlar\u0131 Dahil Et",description:'Tam Geni\u015Flikte Formlar Unicode blo\u011Funu dahil eder'},"include-cjk-symbols-and-punctuation":{name:"CJK Sembol ve Noktalama \u0130\u015Faretlerini Dahil Et",description:'CJK Sembol ve Noktalama Unicode blo\u011Funu dahil eder'},"include-dashes":{name:"Tireleri Dahil Et",description:"En tire (\u2013) ve em tireyi (\u2014) dahil eder"},"other-symbols":{name:"Di\u011Fer Semboller",description:"Dahil edilecek di\u011Fer semboller"}},"remove-space-before-or-after-characters":{name:"Karakterlerden \xD6nce veya Sonra Bo\u015Flu\u011Fu Kald\u0131r",description:"Belirtilen karakterlerden \xF6nceki ve sonraki bo\u015Flu\u011Fu kald\u0131r\u0131r.Not: bu durum baz\u0131 durumlarda markdown format\u0131nda sorunlara neden olabilir.","characters-to-remove-space-before":{name:"\xD6nceki Bo\u015Flu\u011Fu Kald\u0131r\u0131lacak Karakterler",description:"Belirtilen karakterlerden \xF6nceki bo\u015Flu\u011Fu kald\u0131r\u0131r.Not: karakter listesinde { veya } kullanmak, sahne arkas\u0131nda yoksayma s\xF6zdizimi kullan\u0131ld\u0131\u011F\u0131 i\xE7in dosyalar\u0131 beklenmedik \u015Fekilde etkiler."},"characters-to-remove-space-after":{name:"Sonraki Bo\u015Flu\u011Fu Kald\u0131r\u0131lacak Karakterler",description:"Belirtilen karakterlerden sonraki bo\u015Flu\u011Fu kald\u0131r\u0131r.Not: karakter listesinde { veya } kullanmak, sahne arkas\u0131nda yoksayma s\xF6zdizimi kullan\u0131ld\u0131\u011F\u0131 i\xE7in dosyalar\u0131 beklenmedik \u015Fekilde etkiler."}},"remove-trailing-punctuation-in-heading":{name:"Ba\u015Fl\u0131klardaki Son Noktalama \u0130\u015Faretlerini Kald\u0131r",description:'Belirtilen noktalama i\u015Faretlerini ba\u015Fl\u0131klar\u0131n sonundan kald\u0131r\u0131r ve HTML varl\u0131k referanslar\u0131n\u0131n sonundaki noktal\u0131 virg\xFCl\xFC yoksayar.',"punctuation-to-remove":{name:"Sondaki Noktalama",description:"Dosyadaki ba\u015Fl\u0131klardan kald\u0131r\u0131lacak noktalama i\u015Faretleri."}},"remove-yaml-keys":{name:"YAML Anahtarlar\u0131n\u0131 Kald\u0131r",description:"Belirtilen YAML anahtarlar\u0131n\u0131 kald\u0131r\u0131r","yaml-keys-to-remove":{name:"Kald\u0131r\u0131lacak YAML Anahtarlar\u0131",description:"YAML \xF6n maddesinden iki nokta \xFCst \xFCste ile veya olmadan kald\u0131r\u0131lacak YAML anahtarlar\u0131"}},"space-after-list-markers":{name:"Liste \u0130\u015Faretlerinden Sonra Bo\u015Fluk",description:"Liste i\u015Faretleri ve onay kutular\u0131ndan sonra tek bir bo\u015Fluk olmal\u0131d\u0131r"},"space-between-chinese-japanese-or-korean-and-english-or-numbers":{name:"\xC7ince, Japonca veya Korece ve \u0130ngilizce veya Say\u0131lar Aras\u0131nda Bo\u015Fluk",description:'\xC7ince, Japonca veya Korece ve \u0130ngilizce veya say\u0131lar aras\u0131nda tek bir bo\u015Fluk olmas\u0131 gerekti\u011Fini sa\u011Flar. Bu kurallar\u0131 takip eder'},"strong-style":{name:"Kal\u0131n Stil",description:"Kal\u0131n stilin tutarl\u0131 oldu\u011Funu garanti eder.",style:{name:"Stil",description:"Kal\u0131n/yo\u011Fun i\xE7eri\u011Fi belirtmek i\xE7in kullan\u0131lan stil"}},"trailing-spaces":{name:"Sondaki bo\u015Fluklar",description:"Her sat\u0131r\u0131n sonundaki fazladan bo\u015Fluklar\u0131 kald\u0131r\u0131r.","twp-space-line-break":{name:"\u0130ki Bo\u015Fluklu Sat\u0131r Sonu",description:'Bir sat\u0131r sonunu takiben iki bo\u015Flu\u011Fu g\xF6z ard\u0131 et ("\u0130ki Bo\u015Fluk Kural\u0131").'}},"two-spaces-between-lines-with-content":{name:"\u0130\xE7eri\u011Fi Olan Sat\u0131rlar Aras\u0131nda \u0130ki Bo\u015Fluk",description:"\u0130\xE7eri\u011Fi devam eden sat\u0131rlar\u0131n sonuna paragraflar, blok al\u0131nt\u0131lar\u0131 ve liste \xF6\u011Feleri i\xE7in iki bo\u015Fluk eklenmesini sa\u011Flar"},"unordered-list-style":{name:"S\u0131ras\u0131z Liste Stili",description:"S\u0131ras\u0131z listelerin belirtilen stili takip etti\u011Finden emin olur.","list-style":{name:"Liste \xF6\u011Fesi stili",description:"S\u0131ras\u0131z listelerde kullan\u0131lacak liste \xF6\u011Fesi stili"}},"yaml-key-sort":{name:"YAML Anahtar S\u0131ralamas\u0131",description:"YAML anahtarlar\u0131n\u0131 belirtilen s\u0131ra ve \xF6nceli\u011Fe g\xF6re s\u0131ralar.Not: bo\u015F sat\u0131rlar\u0131 da kald\u0131rabilir.","yaml-key-priority-sort-order":{name:"YAML Anahtar \xD6ncelik S\u0131ralama D\xFCzeni",description:"Her sat\u0131rda bir tane olacak \u015Fekilde anahtarlar\u0131n hangi s\u0131rayla s\u0131ralanaca\u011F\u0131"},"priority-keys-at-start-of-yaml":{name:"\xD6ncelikli Anahtarlar YAML'\u0131n Ba\u015F\u0131nda",description:"YAML Anahtar \xD6ncelik S\u0131ralama D\xFCzeni, YAML \xF6n maddesinin ba\u015F\u0131nda yer al\u0131r"},"yaml-sort-order-for-other-keys":{name:"Di\u011Fer Anahtarlar \u0130\xE7in YAML S\u0131ralama D\xFCzeni",description:"YAML Anahtar \xD6ncelik S\u0131ralama D\xFCzeni metin alan\u0131nda bulunmayan anahtarlar\u0131 nas\u0131l s\u0131ralayaca\u011F\u0131"}},"yaml-timestamp":{name:"YAML Zaman Damgas\u0131",description:"Dosyan\u0131n son d\xFCzenlendi\u011Fi tarihi YAML \xF6n maddesinde takip eder. Tarihler dosya metadatas\u0131ndan al\u0131n\u0131r.","date-created":{name:"Olu\u015Fturma Tarihi",description:"Dosyan\u0131n olu\u015Fturma tarihini ekler"},"date-created-key":{name:"Olu\u015Fturma Tarihi Anahtar\u0131",description:"Olu\u015Fturma tarihi i\xE7in hangi YAML anahtar\u0131n\u0131 kullanaca\u011F\u0131"},"date-modified":{name:"De\u011Fi\u015Ftirme Tarihi",description:"Dosyan\u0131n son de\u011Fi\u015Ftirildi\u011Fi tarihi ekler"},"date-modified-key":{name:"De\u011Fi\u015Ftirme Tarihi Anahtar\u0131",description:"De\u011Fi\u015Ftirme tarihi i\xE7in hangi YAML anahtar\u0131n\u0131 kullanaca\u011F\u0131"},format:{name:"Format",description:'Kullan\u0131lacak Zaman format\u0131 (bak\u0131n\u0131z Moment format options)'}},"yaml-title-alias":{name:"YAML Ba\u015Fl\u0131k Takma Ad\u0131",description:"Dosyan\u0131n ba\u015Fl\u0131\u011F\u0131n\u0131 YAML \xF6n maddesinin takma adlar\u0131 b\xF6l\xFCm\xFCne ekler. Ba\u015Fl\u0131\u011F\u0131 ilk H1 veya dosya ad\u0131ndan al\u0131r.","preserve-existing-alias-section-style":{name:"Mevcut takma adlar b\xF6l\xFCm stilini koru",description:"Ayarlan\u0131rsa, YAML takma adlar b\xF6l\xFCm\xFC stili ayar\u0131 yaln\u0131zca yeni olu\u015Fturulan b\xF6l\xFCmlere uygulan\u0131r"},"keep-alias-that-matches-the-filename":{name:"Dosya ad\u0131na uyan takma ad\u0131 koru",description:"Bu t\xFCr takma adlar genellikle gereksizdir"},"use-yaml-key-to-keep-track-of-old-filename-or-heading":{name:"linter-yaml-title-alias YAML anahtar\u0131n\u0131 kullanarak eski dosya ad\u0131 ve ba\u015Fl\u0131k de\u011Fi\u015Fikliklerini takip et",description:"Ayarlan\u0131rsa, ilk H1 ba\u015Fl\u0131\u011F\u0131 de\u011Fi\u015Fti\u011Finde veya ilk H1 yoksa dosya ad\u0131 de\u011Fi\u015Fti\u011Finde, bu anahtarda saklanan eski takma ad, takma adlar dizisine yeni bir giri\u015F eklemek yerine yeni de\u011Ferle de\u011Fi\u015Ftirilir"}},"yaml-title":{name:"YAML Ba\u015Fl\u0131k",description:"Dosyan\u0131n ba\u015Fl\u0131\u011F\u0131n\u0131 YAML \xF6n maddesine ekler. Ba\u015Fl\u0131k se\xE7ilen moda g\xF6re al\u0131n\u0131r.","title-key":{name:"Ba\u015Fl\u0131k Anahtar\u0131",description:"Ba\u015Fl\u0131k i\xE7in hangi YAML anahtar\u0131n\u0131 kullanaca\u011F\u0131"},mode:{name:"Mod",description:"Ba\u015Fl\u0131\u011F\u0131 almak i\xE7in kullan\u0131lacak y\xF6ntem"}}},enums:{"Title Case":"Ba\u015F Harfleri B\xFCy\xFCk","ALL CAPS":"T\xDCM\xDC B\xDCY\xDCK HARF","First letter":"\u0130lk Harf",".":".",")":")",ERROR:"hata",TRACE:"i\u015Faret",DEBUG:"hata ay\u0131klama",INFO:"bilgi",WARN:"uyar\u0131",SILENT:"sessiz",ascending:"artan",lazy:"tembel",Nothing:"Hi\xE7biri","Remove hashtag":"Hashtagi Kald\u0131r","Remove whole tag":"T\xFCm Etiketi Kald\u0131r",asterisk:"y\u0131ld\u0131z",underscore:"alt \xE7izgi",consistent:"tutarl\u0131","-":"-","*":"*","+":"+",space:"bo\u015Fluk","no space":"bo\u015Fluk yok",None:"Yok","Ascending Alphabetical":"Artan Alfabetik","Descending Alphabetical":"Azalan Alfabetik","multi-line":"\xE7oklu-sat\u0131r","single-line":"tek-sat\u0131r","single string to single-line":"tek dizeden tek sat\u0131ra","single string to multi-line":"tek dizeden \xE7ok sat\u0131ra","single string comma delimited":"virg\xFClle ayr\u0131lm\u0131\u015F tek dize","single string space delimited":"bo\u015Flukla ayr\u0131lm\u0131\u015F tek dize","single-line space delimited":"bo\u015Flukla ayr\u0131lm\u0131\u015F tek sat\u0131r","first-h1":"\u0130lk H1","first-h1-or-filename-if-h1-missing":"\u0130lk H1 veya H1 Eksikse Dosya Ad\u0131",filename:"Dosya Ad\u0131","''":"''","\u2018\u2019":"\u2018\u2019",'""':'""',"\u201C\u201D":"\u201C\u201D","\\":"\\","
    ":"
    "," ":" ","
    ":"
    "}};var wd={};var Ad={commands:{"lint-file":{name:"\u683C\u5F0F\u5316\u5F53\u524D\u6587\u4EF6","error-message":"\u683C\u5F0F\u5316\u5F53\u524D\u6587\u4EF6\u65F6\u51FA\u9519"},"lint-file-unless-ignored":{name:"\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6\uFF08\u9664\u4E86\u88AB\u5FFD\u7565\u7684\u6587\u4EF6\uFF09"},"lint-all-files":{name:"\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6","error-message":"\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6\u65F6\u51FA\u9519","success-message":"\u5DF2\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6","errors-message-singular":"\u5DF2\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6\uFF0C\u5176\u4E2D\u6709 1 \u4E2A\u9519\u8BEF","errors-message-plural":"\u5DF2\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6\uFF0C\u5176\u4E2D\u6709 {NUM} \u4E2A\u9519\u8BEF","start-message":"\u8FD9\u5C06\u6539\u52A8\u6240\u6709\u6587\u4EF6\uFF0C\u5305\u62EC\u5B50\u6587\u4EF6\u5939\u4E2D\u7684\u6587\u4EF6\uFF0C\u53EF\u80FD\u4F1A\u5F15\u5165\u9519\u8BEF","submit-button-text":"\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6","submit-button-notice-text":"\u6B63\u5728\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6..."},"lint-all-files-in-folder":{name:"\u683C\u5F0F\u5316\u6587\u4EF6\u5939\u4E2D\u7684\u6240\u6709\u6587\u4EF6","start-message":"\u8FD9\u5C06\u6539\u52A8\u6587\u4EF6\u5939 {FOLDER_NAME} \u4E2D\u7684\u6240\u6709\u6587\u4EF6\uFF0C\u5305\u62EC\u5B50\u6587\u4EF6\u5939\u4E2D\u7684\u6587\u4EF6\uFF0C\u53EF\u80FD\u4F1A\u5F15\u5165\u9519\u8BEF","submit-button-text":"\u683C\u5F0F\u5316\u6587\u4EF6\u5939 {FOLDER_NAME} \u4E2D\u7684\u6240\u6709\u6587\u4EF6","submit-button-notice-text":"\u6B63\u5728\u683C\u5F0F\u5316\u6587\u4EF6\u5939 {FOLDER_NAME} \u4E2D\u7684\u6240\u6709\u6587\u4EF6...","error-message":"\u683C\u5F0F\u5316\u6587\u4EF6\u5939\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u65F6\u51FA\u9519","success-message":"\u5DF2\u683C\u5F0F\u5316\u6587\u4EF6\u5939 {FOLDER_NAME} \u4E2D\u7684\u6240\u6709 {NUM} \u4E2A\u6587\u4EF6","message-singular":"\u5DF2\u683C\u5F0F\u5316\u6587\u4EF6\u5939 {FOLDER_NAME} \u4E2D\u7684\u6240\u6709 {NUM} \u4E2A\u6587\u4EF6\uFF0C\u5176\u4E2D\u6709 1 \u4E2A\u9519\u8BEF","message-plural":"\u5DF2\u683C\u5F0F\u5316\u6587\u4EF6\u5939 {FOLDER_NAME} \u4E2D\u7684 {FILE_COUNT} \u4E2A\u6587\u4EF6\uFF0C\u5176\u4E2D\u6709 {ERROR_COUNT} \u4E2A\u9519\u8BEF."},"paste-as-plain-text":{name:"\u7C98\u8D34\u4E3A\u7EAF\u6587\u672C\u4E14\u4E0D\u63D0\u9192"},"lint-file-pop-up-menu-text":{name:"\u683C\u5F0F\u5316\u6587\u4EF6"},"lint-folder-pop-up-menu-text":{name:"\u683C\u5F0F\u5316\u6587\u4EF6\u5939"}},logs:{"plugin-load":"\u6B63\u5728\u52A0\u8F7D\u63D2\u4EF6","plugin-unload":"\u6B63\u5728\u5378\u8F7D\u63D2\u4EF6","folder-lint":"\u6B63\u5728\u683C\u5F0F\u5316\u6587\u4EF6\u5939","linter-run":"\u6B63\u5728\u8FD0\u884C Linter","file-change-yaml-lint-run":"\u6587\u4EF6\u5185\u5BB9\u53D8\u66F4\uFF0C \u6B63\u5728\u683C\u5F0F\u5316 YAML","file-change-yaml-lint-skipped":"\u6CA1\u6709\u68C0\u6D4B\u5230\u6587\u4EF6\u5185\u5BB9\u53D8\u66F4, \u8DF3\u8FC7 YAML \u683C\u5F0F\u5316","file-change-yaml-lint-warning":"\u6CA1\u6709\u68C0\u6D4B\u5230\u6587\u4EF6\u5185\u5BB9\u53D8\u66F4, \u4F46\u662F YAML \u683C\u5F0F\u5316\u88AB\u89E6\u53D1\uFF0C\u8BF7\u68C0\u67E5\u9519\u8BEF","paste-link-warning":"\u4E2D\u6B62\u7C98\u8D34\u683C\u5F0F\u5316 \uFF0C\u56E0\u4E3A\u526A\u8D34\u677F\u5185\u5BB9\u662F\u4E00\u4E2A\u94FE\u63A5\uFF0C\u8FD9\u6837\u505A\u5C06\u907F\u514D\u4E0E\u5176\u4ED6\u4FEE\u6539\u7C98\u8D34\u884C\u4E3A\u7684\u63D2\u4EF6\u53D1\u751F\u51B2\u7A81","see-console":"\u8BF7\u67E5\u770B\u63A7\u5236\u53F0\u4EE5\u83B7\u53D6\u66F4\u591A\u4FE1\u606F","unknown-error":"\u683C\u5F0F\u5316\u8FC7\u7A0B\u53D1\u751F\u672A\u77E5\u9519\u8BEF","moment-locale-not-found":"\u5C1D\u8BD5\u5C06 Moment.js \u7684\u9ED8\u8BA4\u5730\u533A\u8BED\u8A00\u5207\u6362\u5230 {MOMENT_LOCALE}, \u5B9E\u9645\u5207\u6362\u5230 {CURRENT_LOCALE}","file-change-lint-message-start":"\u683C\u5F0F\u5316\u5DF2\u5B8C\u6210","custom-command-callback-warning":"Please only set the custom command callback for integration tests.","pre-rules":"\u6BD4\u6B63\u5E38\u89C4\u5219\u4F18\u5148\u7EA7\u66F4\u9AD8\u7684\u89C4\u5219","post-rules":"\u6BD4\u6B63\u5E38\u89C4\u5219\u4F18\u5148\u7EA7\u66F4\u4F4E\u7684\u89C4\u5219","rule-running":"\u6B63\u5728\u8FD0\u884C\u89C4\u5219","custom-regex":"\u81EA\u5B9A\u4E49\u6B63\u5219\u8868\u8FBE\u5F0F\u89C4\u5219","running-custom-regex":"\u6B63\u5728\u8FD0\u884C\u81EA\u5B9A\u4E49\u6B63\u5219\u8868\u8FBE\u5F0F\u89C4\u5219","running-custom-lint-command":"\u6B63\u5728\u8FD0\u884C\u81EA\u5B9A\u4E49\u683C\u5F0F\u5316\u547D\u4EE4","custom-lint-duplicate-warning":'\u4F60\u4E0D\u80FD\u8FD0\u884C\u540C\u4E00\u4E2A\u81EA\u5B9A\u4E49\u89C4\u5219 ("{COMMAND_NAME}") \u4E24\u6B21',"custom-lint-error-message":"\u81EA\u5B9A\u4E49\u683C\u5F0F\u5316\u547D\u4EE4","disabled-text":"\u5DF2\u7981\u7528","run-rule-text":"\u8FD0\u884C\u4E2D","timing-key-not-found":"\u8BA1\u65F6\u952E '{TIMING_KEY}' \u5728\u8BA1\u65F6\u4FE1\u606F\u5217\u8868\u4E2D\u4E0D\u5B58\u5728\uFF0C\u5DF2\u5FFD\u7565","milliseconds-abbreviation":"\u6BEB\u79D2","invalid-date-format-error":"\u65E0\u6CD5\u89E3\u6790\u6216\u786E\u5B9A'{FILE_NAME}'\u4E2D\u7684\u521B\u5EFA\u65E5\u671F'{DATE}'\u7684\u683C\u5F0F\uFF0C\u521B\u5EFA\u65E5\u671F\u672A\u8FDB\u884C\u4FEE\u6539","invalid-delimiter-error-message":"\u5206\u9694\u7B26\u53EA\u80FD\u4E3A\u5355\u4E2A\u5B57\u7B26","missing-footnote-error-message":"\u811A\u6CE8 '{FOOTNOTE}' \u6CA1\u6709\u5BF9\u5E94\u7684\u5F15\u7528\uFF0C\u65E0\u6CD5\u5904\u7406\u3002\u8BF7\u786E\u4FDD\u6240\u6709\u811A\u6CE8\u90FD\u6709\u76F8\u5E94\u7684\u5F15\u7528\u3002","too-many-footnotes-error-message":"\u811A\u6CE8\u7F16\u53F7 '{FOOTNOTE_KEY}' \u6709\u8D85\u8FC71\u4E2A\u811A\u6CE8\u5728\u4F7F\u7528\uFF0C\u8BF7\u4FEE\u6539\u811A\u6CE8\u4F7F\u5F97\u4E00\u4E2A\u811A\u6CE8\u7F16\u53F7\u5BF9\u5E94\u4E00\u4E2A\u811A\u6CE8","wrapper-yaml-error":"YAML \u51FA\u73B0\u9519\u8BEF: {ERROR_MESSAGE}","wrapper-unknown-error":"\u672A\u77E5\u9519\u8BEF: {ERROR_MESSAGE}"},"notice-text":{"empty-clipboard":"\u526A\u8D34\u677F\u4E3A\u7A7A","characters-added":"\u4E2A\u5B57\u7B26\u88AB\u6DFB\u52A0","characters-removed":"\u4E2A\u5B57\u7B26\u88AB\u79FB\u9664","copy-to-clipboard-failed":"\u5C06\u5185\u5BB9\u590D\u5236\u5230\u526A\u8D34\u677F\u65F6\u5931\u8D25: "},"all-rules-option":"\u5168\u90E8","linter-title":"Linter","empty-search-results-text":"\u6CA1\u6709\u5339\u914D\u7684\u8BBE\u7F6E\u9879","warning-text":"\u8B66\u544A","file-backup-text":"\u8BF7\u786E\u4FDD\u4F60\u5DF2\u5907\u4EFD\u6587\u4EF6","custom-command-warning":"\u542F\u7528\u81EA\u5B9A\u4E49\u547D\u4EE4\u65F6\u683C\u5F0F\u5316\u591A\u4E2A\u6587\u4EF6\u9700\u8981\u542F\u7528\u4FA7\u8FB9\u680F\uFF0C\u540C\u65F6\u4F1A\u663E\u8457\u7684\u66F4\u52A0\u8017\u65F6\uFF0C\u8BF7\u4FDD\u6301\u8010\u5FC3","cancel-button-text":"\u53D6\u6D88","copy-aria-label":"\u590D\u5236","disabled-other-rule-notice":"\u5982\u679C\u542F\u7528\u89C4\u5219 {NAME_1}\uFF0C\u5219\u5C06\u7981\u7528\u89C4\u5219 {NAME_2}\u3002","disabled-conflicting-rule-notice":"{NAME_1} \u56E0\u4E0E {NAME_2} \u51B2\u7A81\u800C\u7981\u7528\u3002",ok:"\u786E\u5B9A","parse-results-heading-text":"Custom Parse Values","file-parse-description-text":"The following is the list of custom replacements found in {FILE}.","no-parsed-values-found-text":"There were no custom replacements found in {FILE}. Please make sure that all tables with custom replacements in {FILE} only have two columns and all rows start and end with a pipe (i.e. |).","find-header-text":"Word to Find","replace-header-text":"Replacement Word","close-button-text":"Close",tabs:{names:{general:"\u57FA\u7840",custom:"\u81EA\u5B9A\u4E49",yaml:"YAML",heading:"\u6807\u9898",content:"\u5185\u5BB9",footnote:"\u811A\u6CE8",spacing:"\u7A7A\u884C",paste:"\u7C98\u8D34",debug:"Debug"},"default-search-bar-text":"\u641C\u7D22\u8BBE\u7F6E\u9879",general:{"lint-on-save":{name:"\u4FDD\u5B58\u65F6\u683C\u5F0F\u5316\u6587\u4EF6",description:"\u624B\u52A8\u4FDD\u5B58\u65F6\u683C\u5F0F\u5316\u6587\u4EF6\uFF08\u5F53\u6309 Ctrl + S \u65F6\u6216\u5728 vim \u6A21\u5F0F\u4E2D\u4F7F\u7528 :w \u65F6\uFF09"},"display-message":{name:"\u683C\u5F0F\u5316\u540E\u663E\u793A\u6D88\u606F",description:"\u683C\u5F0F\u5316\u540E\u663E\u793A\u4FEE\u6539\u4E86\u591A\u5C11\u5B57\u7B26"},"lint-on-file-change":{name:"\u6587\u4EF6\u4FEE\u6539\u65F6\u683C\u5F0F\u5316",description:"\u5F53\u6587\u4EF6\u5173\u95ED\u6216\u662F\u5207\u6362\u5230\u65B0\u6587\u4EF6\u65F6\uFF0C\u683C\u5F0F\u5316\u4E4B\u524D\u7684\u6587\u4EF6"},"display-lint-on-file-change-message":{name:"\u63D0\u9192\u6587\u4EF6\u4FEE\u6539\u65F6\u683C\u5F0F\u5316",description:"\u5F53\u6587\u4EF6\u4FEE\u6539\u65F6\u683C\u5F0F\u5316\u89E6\u53D1\u65F6\uFF0C\u5F39\u51FA\u4E00\u6761\u63D0\u793A\u4FE1\u606F"},"folders-to-ignore":{name:"\u5FFD\u7565\u6587\u4EF6\u5939",description:"\u9700\u8981\u5FFD\u7565\u7684\u6587\u4EF6\u5939\uFF08\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6\u6216\u4FDD\u5B58\u65F6\u683C\u5F0F\u5316\u65F6\u751F\u6548\uFF09\uFF0C\u6BCF\u884C\u8F93\u5165\u4E00\u4E2A\u6587\u4EF6\u5939\u8DEF\u5F84","folder-search-placeholder-text":"\u6587\u4EF6\u5939","add-input-button-text":"\u6DFB\u52A0\u8981\u5FFD\u7565\u7684\u6587\u4EF6\u5939","delete-tooltip":"\u5220\u9664"},"files-to-ignore":{name:"\u5FFD\u7565\u6587\u4EF6",description:"\u9700\u8981\u5FFD\u7565\u7684\u6587\u4EF6\uFF08\u683C\u5F0F\u5316\u6240\u6709\u6587\u4EF6\u6216\u4FDD\u5B58\u65F6\u683C\u5F0F\u5316\u65F6\u751F\u6548\uFF09","file-search-placeholder-text":"\u6B63\u5219\u8868\u8FBE\u5F0F","add-input-button-text":"\u6DFB\u52A0\u6B63\u5219\u8868\u8FBE\u5F0F","delete-tooltip":"\u5220\u9664","label-placeholder-text":"\u540D\u79F0","flags-placeholder-text":"\u4FEE\u9970\u7B26",warning:"\u5982\u679C\u60A8\u4E0D\u77E5\u9053\u6B63\u5219\u8868\u8FBE\u5F0F\u662F\u4EC0\u4E48\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528\u3002\u6B64\u5916\uFF0C\u5982\u679C\u5728 iOS \u79FB\u52A8\u8BBE\u5907\u4E0A\u4F7F\u7528\u540E\u884C\u65AD\u8A00\uFF0C\u8BF7\u786E\u4FDD\u7CFB\u7EDF\u7248\u672C\u652F\u6301"},"override-locale":{name:"\u8986\u76D6\u9ED8\u8BA4\u5730\u533A\u8BED\u8A00",description:"\u4F7F\u7528\u4E0D\u540C\u4E8E\u9ED8\u8BA4\u5730\u533A\u8BED\u8A00\u65F6\u9700\u8981\u8BBE\u7F6E\u6B64\u9879"},"same-as-system-locale":"\u9ED8\u8BA4 ({SYS_LOCALE}) ","yaml-aliases-section-style":{name:"YAML aliases \u6837\u5F0F",description:"YAML aliases \u6837\u5F0F"},"yaml-tags-section-style":{name:"YAML tags \u6837\u5F0F",description:"YAML tags \u6837\u5F0F"},"default-escape-character":{name:"\u9ED8\u8BA4\u8F6C\u4E49\u5B57\u7B26",description:"\u5F53\u5355\u5F15\u53F7\u6216\u53CC\u5F15\u53F7\u4E0D\u5B58\u5728\u65F6\u7528\u4E8E\u8F6C\u4E49 YAML \u503C\u7684\u9ED8\u8BA4\u5B57\u7B26"},"remove-unnecessary-escape-chars-in-multi-line-arrays":{name:"\u5F53\u4F7F\u7528 YAML \u591A\u884C\u6570\u7EC4\u65F6\u5220\u9664\u4E0D\u5FC5\u8981\u7684\u8F6C\u4E49\u5B57\u7B26",description:"YAML \u591A\u884C\u6570\u7EC4\u7684\u8F6C\u4E49\u5B57\u7B26\u548C YAML \u5355\u884C\u6570\u7EC4\u4E0D\u540C\uFF0C\u56E0\u6B64\u5728\u4F7F\u7528\u591A\u884C\u6570\u7EC4\u65F6\uFF0C\u5220\u9664\u4E0D\u5FC5\u8981\u7684\u8F6C\u4E49\u5B57\u7B26"},"number-of-dollar-signs-to-indicate-math-block":{name:"Latex \u5757\u6807\u8BB0\u7B26 $ \u6570\u91CF",description:"\u5C06 Latex \u5185\u5BB9\u89C6\u4E3A Latex \u5757\u800C\u4E0D\u662F\u884C\u5185 Latex \u7684 $ \u7B26\u53F7\u7684\u6570\u91CF"}},debug:{"log-level":{name:"\u65E5\u5FD7\u7EA7\u522B",description:"\u5141\u8BB8\u8F93\u51FA\u7684\u65E5\u5FD7\u7EA7\u522B\uFF0C\u9ED8\u8BA4\u662F ERROR"},"linter-config":{name:"Linter \u914D\u7F6E",description:"\u6253\u5F00\u8BBE\u7F6E\u9875\u9762\u540E\uFF0CLinter \u52A0\u8F7D\u7684 data.json \u4E2D\u7684\u5185\u5BB9"},"log-collection":{name:"\u683C\u5F0F\u5316\u5F53\u524D\u6587\u4EF6\u65F6\u6536\u96C6\u65E5\u5FD7",description:"\u5728\u683C\u5F0F\u5316\u5F53\u524D\u6587\u4EF6\u65F6\u6536\u96C6\u65E5\u5FD7\u3002\u8FD9\u4E9B\u65E5\u5FD7\u6709\u52A9\u4E8E\u8C03\u8BD5\u548C\u521B\u5EFA\u9519\u8BEF\u62A5\u544A"},"linter-logs":{name:"Linter \u65E5\u5FD7",description:"\u5982\u679C\u5F00\u542F\uFF0C\u5219\u663E\u793A\u6700\u540E\u4E00\u6B21\u683C\u5F0F\u5316\u5F53\u524D\u6587\u4EF6\u65F6\u751F\u6210\u7684\u65E5\u5FD7"}}},options:{"custom-command":{name:"\u81EA\u5B9A\u4E49\u547D\u4EE4",description:"\u81EA\u5B9A\u4E49\u547D\u4EE4\u662F\u5728 Linter \u5B8C\u6210\u683C\u5F0F\u5316\u540E\u8FD0\u884C\u7684 Obsidian \u547D\u4EE4\u3002\u8FD9\u610F\u5473\u7740 Obsidian \u547D\u4EE4\u4F1A\u5728 YAML \u65F6\u95F4\u6233\u4FEE\u6539\u4E4B\u540E\u8FD0\u884C\uFF0C\u56E0\u6B64\u5B83\u4EEC\u53EF\u80FD\u4F1A\u5BFC\u81F4\u5728\u4E0B\u6B21\u8FD0\u884C Linter \u65F6\u89E6\u53D1 YAML \u65F6\u95F4\u6233\u4FEE\u6539\u3002\u4E00\u4E2A Obsidian \u547D\u4EE4\u53EA\u80FD\u9009\u62E9\u4E00\u6B21\u3002",warning:"\u9009\u62E9\u547D\u4EE4\u65F6\uFF0C\u8BF7\u786E\u4FDD\u4F7F\u7528\u9F20\u6807\u6216\u6309\u56DE\u8F66\u952E\u9009\u62E9\u8BE5\u9009\u9879\uFF0C\u5176\u4ED6\u9009\u62E9\u65B9\u6CD5\u53EF\u80FD\u4E0D\u8D77\u4F5C\u7528\u3002\u53EA\u6709 Obsidian \u547D\u4EE4\u6216\u7A7A\u5B57\u7B26\u4E32\u4F1A\u88AB\u4FDD\u5B58","add-input-button-text":"\u6DFB\u52A0\u65B0\u547D\u4EE4","command-search-placeholder-text":"Obsidian \u547D\u4EE4","move-up-tooltip":"\u4E0A\u79FB","move-down-tooltip":"\u4E0B\u79FB","delete-tooltip":"\u5220\u9664"},"custom-replace":{name:"\u81EA\u5B9A\u4E49\u6B63\u5219\u8868\u8FBE\u5F0F\u66FF\u6362",description:"\u81EA\u5B9A\u4E49\u6B63\u5219\u8868\u8FBE\u5F0F\u66FF\u6362\u53EF\u5C06\u4EFB\u610F\u7684\u6B63\u5219\u5339\u914D\u5185\u5BB9\u66FF\u6362\u4E3A\u6307\u5B9A\u503C\u3002\u67E5\u627E\u503C\u548C\u66FF\u6362\u503C\u5FC5\u987B\u662F\u6709\u6548\u7684\u6B63\u5219\u8868\u8FBE\u5F0F",warning:"\u5982\u679C\u60A8\u4E0D\u77E5\u9053\u6B63\u5219\u8868\u8FBE\u5F0F\u662F\u4EC0\u4E48\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528\u3002\u6B64\u5916\uFF0C\u5982\u679C\u5728 iOS \u79FB\u52A8\u8BBE\u5907\u4E0A\u4F7F\u7528\u540E\u884C\u65AD\u8A00\uFF0C\u8BF7\u786E\u4FDD\u7CFB\u7EDF\u7248\u672C\u652F\u6301","add-input-button-text":"\u6DFB\u52A0\u65B0\u7684\u6B63\u5219\u66FF\u6362\u89C4\u5219","regex-to-find-placeholder-text":"\u67E5\u627E\u7528\u6B63\u5219\u8868\u8FBE\u5F0F","flags-placeholder-text":"\u4FEE\u9970\u7B26","regex-to-replace-placeholder-text":"\u66FF\u6362\u7528\u6B63\u5219\u8868\u8FBE\u5F0F","label-placeholder-text":"\u540D\u79F0","move-up-tooltip":"\u4E0A\u79FB","move-down-tooltip":"\u4E0B\u79FB","delete-tooltip":"\u5220\u9664"},"custom-auto-correct":{"delete-tooltip":"\u5220\u9664","show-parsed-contents-tooltip":"\u67E5\u770B\u52A0\u8F7D\u7684\u66FF\u6362\u6587\u4EF6","custom-row-parse-warning":'"{ROW}" \u683C\u5F0F\u9519\u8BEF\uFF0C\u9700\u8981\u81F3\u5C11\u4E24\u5217',"file-search-placeholder-text":"\u6587\u4EF6\u540D\u79F0","add-new-replacement-file-tooltip":"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u6587\u4EF6","warning-text":"\u88AB\u9009\u4E2D\u7684\u6587\u4EF6\u5C06\u81EA\u52A8\u5173\u95ED\u89C4\u5219 {NAME}","refresh-tooltip-text":"\u91CD\u65B0\u52A0\u8F7D\u81EA\u5B9A\u4E49\u66FF\u6362\u6587\u4EF6"}},rules:{"auto-correct-common-misspellings":{name:"\u81EA\u52A8\u66F4\u6B63\u5E38\u89C1\u7684\u62FC\u5199\u9519\u8BEF",description:'\u901A\u8FC7\u5E38\u89C1\u62FC\u5199\u9519\u8BEF\u5B57\u5178\u81EA\u52A8\u5C06\u9519\u8BEF\u62FC\u5199\u66F4\u6B63\u4E3A\u6B63\u786E\u62FC\u5199\u3002\u6709\u5173\u81EA\u52A8\u66F4\u6B63\u5355\u8BCD\u7684\u5B8C\u6574\u5217\u8868\uFF0C\u8BF7\u53C2\u9605 auto-correct map',"ignore-words":{name:"\u5FFD\u7565\u5355\u8BCD",description:"\u4EE5\u9017\u53F7\u5206\u9694\u7684\u5C0F\u5199\u5355\u8BCD\u5217\u8868\uFF0C\u5728\u81EA\u52A8\u66F4\u6B63\u65F6\u4F1A\u5FFD\u7565"},"extra-auto-correct-files":{name:"\u989D\u5916\u81EA\u52A8\u66F4\u6B63\u539F\u59CB\u6587\u4EF6",description:"\u6587\u4EF6\u4E2D\u6709\u4E00\u4E2A markdown \u8868\u683C\uFF0C\u5176\u4E2D\u5305\u542B\u521D\u59CB\u5355\u8BCD\u548C\u8981\u66F4\u6B63\u7684\u5355\u8BCD\uFF08\u4E0D\u533A\u5206\u5927\u5C0F\u5199\uFF09\u3002 \u6CE8\u610F\uFF1A\u4F7F\u7528\u7684\u8868\u683C\u5E94\u8BE5\u5BF9\u6BCF\u884C\u90FD\u6709\u8D77\u59CB\u548C\u7ED3\u675F\u7684 | \u6807\u5FD7"},"skip-words-with-multiple-capitals":{name:"\u8DF3\u8FC7\u6709\u591A\u4E2A\u5927\u5199\u5B57\u6BCD\u7684\u5355\u8BCD",description:"\u8DF3\u8FC7\u6709\u591A\u4E2A\u5927\u5199\u5B57\u6BCD\u7684\u5355\u8BCD\uFF0C\u9996\u5B57\u6BCD\u7F29\u5199\u8BCD\u548C\u5176\u4ED6\u4E00\u4E9B\u5355\u8BCD\u53EF\u80FD\u4F1A\u53D7\u76CA\u4E8E\u6B64\u3002\u8FD9\u53EF\u80FD\u4F1A\u5BFC\u81F4\u4E13\u6709\u540D\u8BCD\u65E0\u6CD5\u6B63\u786E\u4FEE\u590D"},"default-install":"\u6B63\u5728\u4E0B\u8F7D\u9ED8\u8BA4\u7684\u62FC\u5199\u9519\u8BEF\u4FEE\u6B63\u6570\u636E\uFF0C\u4EC5\u5728\u7B2C\u4E00\u6B21\u542F\u7528\u65F6\u4E0B\u8F7D\uFF0C\u8BF7\u7B49\u5F85...","default-install-failed":"\u4E0B\u8F7D {URL} \u5931\u8D25\u3002\u7981\u7528\u81EA\u52A8\u66F4\u6B63\u5E38\u89C1\u7684\u62FC\u5199\u9519\u8BEF","defaults-missing":"\u672A\u627E\u5230\u9ED8\u8BA4\u7684\u5E38\u89C1\u81EA\u52A8\u66F4\u6B63\u6587\u4EF6: {FILE}"},"add-blank-line-after-yaml":{name:"YAML \u5757\u540E\u7A7A\u884C",description:"\u786E\u4FDD YAML \u5757\u540E\u6709\u7A7A\u884C\uFF0C\u9664\u975E\u5B83\u5728\u6587\u6863\u7684\u7ED3\u5C3E"},"add-blockquote-indentation-on-paste":{name:"\u6DFB\u52A0\u5F15\u7528\u5757\u7F29\u8FDB",description:"\u7C98\u8D34\u65F6\uFF0C\u5982\u679C\u5149\u6807\u4F4D\u4E8E\u5F15\u7528\u884C\u6216\u6807\u6CE8\u884C\uFF0C\u5219\u5C06\u5F15\u7528\u6DFB\u52A0\u5230\u9664\u7B2C\u4E00\u884C\u4EE5\u5916\u7684\u6240\u6709\u884C"},"blockquote-style":{name:"\u5F15\u7528\u5757\u6837\u5F0F",description:"\u786E\u4FDD\u5F15\u7528\u5757\u6837\u5F0F\u4E00\u81F4",style:{name:"\u6837\u5F0F",description:"\u5F15\u7528\u5757\u6807\u5FD7\u5B57\u7B26\u7684\u6837\u5F0F"}},"capitalize-headings":{name:"\u5927\u5199\u6807\u9898",description:"\u6807\u9898\u4F1A\u5728\u683C\u5F0F\u5316\u540E\u5927\u5199",style:{name:"\u6837\u5F0F",description:"\u5927\u5199\u7684\u65B9\u5F0F"},"ignore-case-words":{name:"\u5FFD\u7565\u5927\u5199\u5355\u8BCD",description:"\u5728\u6837\u5F0F\u8BBE\u4E3A\u6BCF\u8BCD\u9996\u5B57\u6BCD\u5927\u5199\u65F6\uFF0C\u4EC5\u683C\u5F0F\u5316\u5168\u5C0F\u5199\u7684\u5355\u8BCD"},"ignore-words":{name:"\u5FFD\u7565\u5355\u8BCD",description:"\u4E0D\u683C\u5F0F\u5316\u7684\u5355\u8BCD\uFF0C\u4EE5\u9017\u53F7\u5206\u9694"},"lowercase-words":{name:"\u5C0F\u5199\u5355\u8BCD",description:"\u4FDD\u6301\u5C0F\u5199\u7684\u5355\u8BCD\uFF0C\u4EE5\u9017\u53F7\u5206\u9694"}},"compact-yaml":{name:"\u7CBE\u7B80 YAML",description:"\u79FB\u9664 YAML Front-matter \u5F00\u5934\u7ED3\u5C3E\u7684\u7A7A\u884C","inner-new-lines":{name:"\u5185\u90E8\u7A7A\u884C",description:"\u79FB\u9664 YAML Front-matter \u5185\u90E8\u7684\u7A7A\u884C"}},"consecutive-blank-lines":{name:"\u8FDE\u7EED\u7A7A\u884C",description:"\u6700\u591A\u5141\u8BB8\u4E00\u4E2A\u8FDE\u7EED\u7A7A\u884C"},"convert-bullet-list-markers":{name:"\u8F6C\u6362\u65E0\u5E8F\u5217\u8868\u6807\u5FD7",description:"\u5C06\u5176\u4ED6\u683C\u5F0F\u65E0\u5E8F\u5217\u8868\u6807\u5FD7\u8F6C\u6362\u4E3A Markdown \u683C\u5F0F\u65E0\u5E8F\u5217\u8868\u6807\u5FD7"},"convert-spaces-to-tabs":{name:"\u7A7A\u683C\u8F6C\u4E3A\u5236\u8868\u7B26",description:"\u5C06\u524D\u5BFC\u7A7A\u683C\u8F6C\u6362\u4E3A\u5236\u8868\u7B26",tabsize:{name:"\u5236\u8868\u7B26\u5BBD\u5EA6",description:"\u5236\u8868\u7B26\u5BF9\u5E94\u7684\u7A7A\u683C\u6570\u91CF"}},"dedupe-yaml-array-values":{name:"YAML \u503C\u53BB\u91CD",description:"\u53BB\u91CD\u65F6\u533A\u5206\u5927\u5C0F\u5199","dedupe-alias-key":{name:"YAML aliases \u53BB\u91CD",description:"\u6253\u5F00\u4EE5\u5BF9 YAML aliases \u53BB\u91CD"},"dedupe-tag-key":{name:"YAML tags \u53BB\u91CD",description:"\u6253\u5F00\u4EE5\u5BF9 YAML tags \u53BB\u91CD"},"dedupe-array-keys":{name:"YAML array \u53BB\u91CD",description:"\u6253\u5F00\u4EE5\u5BF9\u666E\u901A YAML \u6570\u7EC4\u4E2D\u7684\u503C\u53BB\u91CD"},"ignore-keys":{name:"\u8981\u5FFD\u7565\u7684 YAML \u952E",description:"\u8981\u5FFD\u7565\u7684 YAML \u952E\u5217\u8868\uFF0C\u6BCF\u884C\u4E00\u4E2A\u952E"}},"default-language-for-code-fences":{name:"\u4EE3\u7801\u5757\u9ED8\u8BA4\u8BED\u8A00",description:"\u4E3A\u6CA1\u6709\u6307\u5B9A\u8BED\u8A00\u7684\u4EE3\u7801\u5757\u6DFB\u52A0\u9ED8\u8BA4\u8BED\u8A00\u3002","default-language":{name:"\u7F16\u7A0B\u8BED\u8A00",description:'\u7559\u7A7A\u4E0D\u8FDB\u884C\u4EFB\u4F55\u64CD\u4F5C\u3002\u53EF\u4EE5\u5728\u8FD9\u91CC\u627E\u5230\u8BED\u8A00\u6807\u7B7E\u3002'}},"emphasis-style":{name:"\u7A81\u51FA\u6837\u5F0F",description:"\u4FDD\u6301\u7A81\u51FA\u6837\u5F0F\u4E00\u81F4\u6027",style:{name:"\u6837\u5F0F",description:"\u7528\u4E8E\u8868\u793A\u7A81\u51FA\u5185\u5BB9\u7684\u6837\u5F0F"}},"empty-line-around-blockquotes":{name:"\u5F15\u7528\u5757\u524D\u540E\u7A7A\u884C",description:"\u786E\u4FDD\u5F15\u7528\u5757\u524D\u540E\u6709\u7A7A\u884C\uFF0C\u9664\u975E\u5B83\u5728\u6587\u6863\u7684\u5F00\u5934\u6216\u7ED3\u5C3E\u3002\u6CE8\u610F\uFF0C\u8FD9\u91CC\u5D4C\u5957\u5F15\u7528\u5757\u4E5F\u4F1A\u6709\u5BF9\u5E94\u7684\u7A7A\u884C"},"empty-line-around-code-fences":{name:"\u4EE3\u7801\u5757\u524D\u540E\u7A7A\u884C",description:"\u786E\u4FDD\u4EE3\u7801\u5757\u524D\u540E\u6709\u7A7A\u884C\uFF0C\u9664\u975E\u5B83\u5728\u6587\u6863\u7684\u5F00\u5934\u6216\u7ED3\u5C3E"},"empty-line-around-math-blocks":{name:"Latex \u5757\u524D\u540E\u7A7A\u884C",description:"\u786E\u4FDD Latex \u524D\u540E\u6709\u7A7A\u884C\uFF0C\u6839\u636E Latex \u5757\u6807\u8BB0\u7B26 $ \u6570\u91CF\u6765\u786E\u5B9A\u5355\u884C Latex \u662F\u5426\u88AB\u8BA4\u5B9A\u4E3A Latex \u5757"},"empty-line-around-tables":{name:"\u8868\u683C\u524D\u540E\u7A7A\u884C",description:"\u786E\u4FDD\u8868\u683C\u524D\u540E\u6709\u7A7A\u884C\uFF0C\u9664\u975E\u5B83\u5728\u6587\u6863\u7684\u5F00\u5934\u6216\u7ED3\u5C3E"},"escape-yaml-special-characters":{name:"\u8F6C\u4E49 YAML \u7279\u6B8A\u5B57\u7B26",description:`\u8F6C\u4E49 YAML \u4E2D\u7684\u5192\u53F7(:)\uFF0C\u5355\u5F15\u53F7 (') \u548C\u53CC\u5F15\u53F7 (")`,"try-to-escape-single-line-arrays":{name:"\u5C1D\u8BD5\u8F6C\u4E49\u5355\u884C\u6570\u7EC4",description:'\u5C1D\u8BD5\u8F6C\u4E49\u6570\u7EC4\u503C\uFF0C\u5047\u8BBE\u6570\u7EC4\u4EE5 "[" \u5F00\u5934\uFF0C "]" \u7ED3\u5C3E\uFF0C\u5E76\u4E14\u7531 "," \u5206\u9694'}},"file-name-heading":{name:"\u6587\u4EF6\u540D\u4F5C\u4E3A\u6807\u9898",description:"\u5982\u679C\u6CA1\u6709 H1 \u6807\u9898\uFF0C\u5219\u63D2\u5165\u6587\u4EF6\u540D\u4F5C\u4E3A H1 \u6807\u9898"},"footnote-after-punctuation":{name:"\u811A\u6CE8\u5F15\u7528\u79FB\u81F3\u6807\u70B9\u7B26\u53F7\u540E",description:"\u5C06\u811A\u6CE8\u5F15\u7528\u79FB\u81F3\u6807\u70B9\u7B26\u53F7\u540E"},"force-yaml-escape":{name:"\u5F3A\u5236 YAML \u8F6C\u4E49",description:"\u8F6C\u4E49\u6307\u5B9A YAML \u952E\u7684\u503C","force-yaml-escape-keys":{name:"\u8981\u5F3A\u5236\u8F6C\u79FB\u7684 YAML \u952E",description:"\u5982\u679C\u672A\u8F6C\u4E49\uFF0C\u5219\u4F7F\u7528 YAML \u8F6C\u4E49\u5B57\u7B26\u5BF9\u6307\u5B9A YAML \u952E\u8FDB\u884C\u8F6C\u4E49\uFF0C\u6BCF\u4E2A\u952E\u4E00\u884C\u3002 \u4E0D\u8981\u5BF9 YAML \u6570\u7EC4\u4F7F\u7528"}},"format-tags-in-yaml":{name:"\u683C\u5F0F\u5316 YAML \u4E2D\u7684 tags",description:"\u628A YAML Front-matter \u4E2D tag \u7684\u4E95\u53F7\u5220\u9664\uFF0C\u56E0\u4E3A\u4E95\u53F7\u4F1A\u4F7F tag \u65E0\u6548"},"format-yaml-array":{name:"\u683C\u5F0F\u5316 YAML \u6570\u7EC4",description:"\u5141\u8BB8\u5C06\u5E38\u89C4 YAML \u6570\u7EC4\u683C\u5F0F\u5316\u4E3A\u591A\u884C\u6216\u5355\u884C\uFF0C\u5E76\u5141\u8BB8\u90E8\u5206\u6570\u7EC4(tags, aliases) \u4FDD\u7559 Obsidian \u539F\u6709\u7684 YAML \u683C\u5F0F\u3002\u8BF7\u6CE8\u610F\uFF0C\u5355\u5B57\u7B26\u4E32\u8F6C\u6362\u4E3A\u5355\u884C\uFF0C\u5982\u679C\u5B58\u5728\u591A\u4E2A\u6761\u76EE\uFF0C\u5219\u4F1A\u53D8\u4E3A\u5355\u884C\u6570\u7EC4\u3002\u5BF9\u4E8E\u5355\u5B57\u7B26\u4E32\u8F6C\u6362\u4E3A\u591A\u884C\uFF0C\u60C5\u51B5\u4E5F\u662F\u5982\u6B64\uFF0C\u53EA\u662F\u5B83\u53D8\u6210\u4E86\u591A\u884C\u6570\u7EC4","alias-key":{name:"\u683C\u5F0F\u5316 YAML aliases",description:"\u6253\u5F00 YAML aliases \u90E8\u5206\u7684\u683C\u5F0F\u8BBE\u7F6E\u3002\u4E0D\u5E94\u4E0E\u89C4\u5219YAML \u6807\u9898\u522B\u540D\u540C\u65F6\u542F\u7528\uFF0C\u56E0\u4E3A\u5B83\u4EEC\u53EF\u80FD\u4E0D\u4F1A\u5F88\u597D\u5730\u534F\u540C\u5DE5\u4F5C\uFF0C\u6216\u8005\u5B83\u4EEC\u53EF\u80FD\u6709\u4E0D\u540C\u7684\u683C\u5F0F\u6837\u5F0F\u9009\u62E9\uFF0C\u4ECE\u800C\u5BFC\u81F4\u610F\u5916\u7ED3\u679C"},"tag-key":{name:"\u683C\u5F0F\u5316 YAML tags",description:"\u6253\u5F00 YAML tags \u90E8\u5206\u7684\u683C\u5F0F\u8BBE\u7F6E"},"default-array-style":{name:"\u9ED8\u8BA4\u7684 YAML \u6570\u7EC4\u683C\u5F0F",description:"\u9664\u4E86 tags, aliases \u6216\u5C06\u952E\u503C\u5F3A\u5236\u4E3A\u5355\u884C\u6570\u7EC4\u548C\u5C06\u952E\u503C\u5F3A\u5236\u4E3A\u591A\u884C\u6570\u7EC4\u4E4B\u5916\uFF0C\u5176\u4ED6\u4E3A\u5E38\u89C4 YAML \u6570\u7EC4\u7684\u6837\u5F0F"},"default-array-keys":{name:"\u683C\u5F0F\u5316 YAML \u6570\u7EC4",description:"\u5BF9 YAML \u6570\u7EC4\u8FDB\u884C\u683C\u5F0F\u5316"},"force-single-line-array-style":{name:"\u5F3A\u5236\u8F6C\u4E3A\u5355\u884C\u6570\u7EC4",description:"\u5F3A\u5236\u5C06\u6307\u5B9A\u952E\u7684 YAML \u6570\u7EC4\u8F6C\u4E3A\u5355\u884C\u6570\u7EC4\uFF0C\u6309\u884C\u5206\u9694\uFF08\u7559\u7A7A\u4EE5\u7981\u7528\u6B64\u9009\u9879\uFF09"},"force-multi-line-array-style":{name:"\u5F3A\u5236\u8F6C\u4E3A\u591A\u884C\u6570\u7EC4",description:"\u5F3A\u5236\u5C06\u6307\u5B9A\u952E\u7684 YAML \u6570\u7EC4\u8F6C\u4E3A\u591A\u884C\u6570\u7EC4\uFF0C\u6309\u884C\u5206\u9694\uFF08\u7559\u7A7A\u4EE5\u7981\u7528\u6B64\u9009\u9879\uFF09"}},"header-increment":{name:"\u6807\u9898\u7EA7\u522B\u9012\u589E",description:"\u6807\u9898\u4E00\u6B21\u4EC5\u9012\u589E\u4E00\u4E2A\u7EA7\u522B","start-at-h2":{name:"\u4ECE H2 \u6807\u9898\u5F00\u59CB\u9012\u589E",description:"\u4F7F H2 \u6807\u9898\u6210\u4E3A\u6587\u4EF6\u4E2D\u7684\u6700\u9AD8\u6807\u9898\u7EA7\u522B\uFF0C\u5176\u4ED6\u7EA7\u522B\u7684\u6807\u9898\u8FDB\u884C\u76F8\u5E94\u7684\u9012\u63A8"}},"heading-blank-lines":{name:"\u6807\u9898\u524D\u540E\u7A7A\u884C",description:"\u786E\u4FDD\u6807\u9898\u524D\u540E\u6709\u4E00\u4E2A\u7A7A\u884C\uFF0C\u9664\u975E\u5B83\u5728\u6587\u6863\u7684\u5F00\u5934\u6216\u7ED3\u5C3E",bottom:{name:"\u6807\u9898\u540E\u7A7A\u884C",description:"\u5728\u6807\u9898\u540E\u63D2\u5165\u4E00\u4E2A\u7A7A\u884C"},"empty-line-after-yaml":{name:"YAML \u4E0E\u6807\u9898\u4E4B\u95F4\u7684\u7A7A\u884C",description:"\u4FDD\u7559 YAML Front-matter \u548C\u6807\u9898\u4E4B\u95F4\u7684\u7A7A\u884C"}},"headings-start-line":{name:"\u6807\u9898\u5BF9\u9F50\u884C\u9996",description:"\u5C06\u6807\u9898\u524D\u7684\u7A7A\u683C\u5220\u9664\uFF0C\u4F7F\u6807\u9898\u80FD\u88AB\u6B63\u786E\u8BC6\u522B"},"insert-yaml-attributes":{name:"\u63D2\u5165 YAML \u5C5E\u6027",description:"\u628A\u6307\u5B9A\u7684 YAML \u952E\u63D2\u5165\u5230 YAML Front-matter \u4E2D\u3002\u6BCF\u4E2A\u952E\u5360\u4E00\u884C","text-to-insert":{name:"\u8981\u63D2\u5165\u7684\u952E",description:"\u8981\u63D2\u5165\u5230 YAML Front-matter \u4E2D\u7684\u952E"}},"line-break-at-document-end":{name:"\u6587\u4EF6\u7ED3\u5C3E\u6362\u884C",description:"\u786E\u4FDD\u6587\u6863\u7ED3\u5C3E\u6709\u4E00\u884C\u7A7A\u884C"},"move-footnotes-to-the-bottom":{name:"\u811A\u6CE8\u79FB\u81F3\u6587\u6863\u5E95\u90E8",description:"\u5C06\u6240\u6709\u811A\u6CE8\u79FB\u52A8\u5230\u6587\u6863\u5E95\u90E8"},"move-math-block-indicators-to-their-own-line":{name:"\u683C\u5F0F\u5316 Latex \u5757\u6807\u8BB0",description:"\u5C06 Latex \u5757\u6807\u8BB0\u79FB\u5230\u65B0\u884C\u3002\u6839\u636E Latex \u5757\u6807\u8BB0\u7B26 $ \u6570\u91CF\u6765\u786E\u5B9A\u5355\u884C Latex \u662F\u5426\u88AB\u8BA4\u5B9A\u4E3A Latex \u5757"},"move-tags-to-yaml":{name:"\u5C06 tags \u79FB\u81F3 YAML",description:"\u5C06\u6587\u6863\u5185\u6240\u6709\u7684 tags \u79FB\u52A8\u5230 YAML Front-matter \u5185","how-to-handle-existing-tags":{name:"\u5982\u4F55\u5904\u7406\u539F\u6709\u7684 tag",description:"\u5BF9\u4E8E\u6587\u6863\u4E2D\u975E\u88AB\u5FFD\u7565\u7684 tag\uFF0C\u79FB\u52A8\u5230 YAML Front-matter \u540E\u5E94\u8BE5\u91C7\u53D6\u4F55\u79CD\u64CD\u4F5C\uFF1F"},"tags-to-ignore":{name:"\u5FFD\u7565\u7684 tag",description:"\u8FD9\u4E9B tags \u4E0D\u4F1A\u88AB\u79FB\u52A8 YAML Front-matter \u4E2D\u3002\u6BCF\u4E2A tag \u6309\u884C\u5206\u9694\uFF0C\u4E0D\u8981\u5305\u542B#"}},"no-bare-urls":{name:"\u7981\u6B62\u539F\u59CB URL",description:"\u7528\u5C16\u62EC\u53F7\u5305\u56F4\u539F\u59CB URL\uFF0C\u9664\u975E URL \u5728\u53CD\u5F15\u53F7\u3001\u65B9\u62EC\u53F7\u6216\u5355\u5F15\u53F7/\u53CC\u5F15\u53F7\u8303\u56F4\u5185","no-bare-uris":{name:"\u7981\u6B62\u539F\u59CB URI",description:"\u7528\u5C16\u62EC\u53F7\u5305\u56F4\u539F\u59CB URI\uFF0C\u9664\u975E URI \u5728\u53CD\u5F15\u53F7\u3001\u65B9\u62EC\u53F7\u6216\u5355\u5F15\u53F7/\u53CC\u5F15\u53F7\u8303\u56F4\u5185"}},"ordered-list-style":{name:"\u6709\u5E8F\u5217\u8868\u6837\u5F0F",description:"\u786E\u4FDD\u6709\u5E8F\u5217\u8868\u9075\u5FAA\u6307\u5B9A\u7684\u6837\u5F0F\u3002\u8BF7\u6CE8\u610F\uFF0C2\u4E2A\u7A7A\u683C\u62161\u4E2A\u5236\u8868\u7B26\u88AB\u89C6\u4E3A\u4E00\u4E2A\u7F29\u8FDB\u7EA7\u522B","number-style":{name:"\u6392\u5E8F\u65B9\u5F0F",description:"\u6709\u5E8F\u5217\u8868\u5E8F\u53F7\u683C\u5F0F\u5316\u65B9\u5F0F"},"list-end-style":{name:"\u6709\u5E8F\u5217\u8868\u6807\u5FD7\u6837\u5F0F",description:"\u6709\u5E8F\u5217\u8868\u6807\u5FD7\u6837\u5F0F"},"preserve-start":{name:"\u4FDD\u7559\u8D77\u59CB\u503C",description:"\u662F\u5426\u4FDD\u7559\u6709\u5E8F\u5217\u8868\u7684\u8D77\u59CB\u503C"}},"paragraph-blank-lines":{name:"\u6BB5\u843D\u7A7A\u884C",description:"\u6BCF\u4E2A\u6BB5\u843D\u524D\u540E\u4FDD\u8BC1\u6709\u4E14\u4EC5\u6709\u4E00\u884C\u7A7A\u884C"},"prevent-double-checklist-indicator-on-paste":{name:"\u9632\u6B62\u91CD\u590D\u7684\u6E05\u5355\u6807\u8BB0",description:"\u7C98\u8D34\u65F6\uFF0C\u5982\u679C\u5149\u6807\u6240\u5728\u884C\u6709\u6E05\u5355\u6807\u8BB0\uFF0C\u5219\u4ECE\u8981\u7C98\u8D34\u7684\u6587\u672C\u4E2D\u79FB\u9664\u6E05\u5355\u6807\u8BB0"},"prevent-double-list-item-indicator-on-paste":{name:"\u9632\u6B62\u91CD\u590D\u7684\u5217\u8868\u6807\u8BB0",description:"\u7C98\u8D34\u65F6\uFF0C\u5982\u679C\u5149\u6807\u6240\u5728\u884C\u6709\u5217\u8868\u6807\u5FD7\uFF0C\u5219\u4ECE\u8981\u7C98\u8D34\u7684\u6587\u672C\u4E2D\u79FB\u9664\u5217\u8868\u6807\u5FD7"},"proper-ellipsis-on-paste":{name:"\u66F4\u6B63\u7701\u7565\u53F7",description:"\u7C98\u8D34\u65F6\uFF0C\u7528\u7701\u7565\u53F7\u66FF\u6362\u4E09\u4E2A\u8FDE\u7EED\u7684\u70B9\uFF08\u70B9\u4E4B\u95F4\u6709\u7A7A\u683C\u4E5F\u4F1A\u751F\u6548\uFF09"},"proper-ellipsis":{name:"\u66F4\u6B63\u7701\u7565\u53F7",description:"\u7528\u7701\u7565\u53F7\u66FF\u6362\u4E09\u4E2A\u8FDE\u7EED\u7684\u70B9"},"quote-style":{name:"\u5F15\u53F7\u6837\u5F0F",description:"\u683C\u5F0F\u5316\u6B63\u6587\u5185\u5BB9\u4E2D\u7684\u5F15\u53F7\u6837\u5F0F\u4E3A\u5355\u5F15\u53F7\u6216\u53CC\u5F15\u53F7","single-quote-enabled":{name:"\u542F\u7528\u5355\u5F15\u53F7\u6837\u5F0F",description:"\u6307\u5B9A\u5E94\u4F7F\u7528\u9009\u5B9A\u7684\u5355\u5F15\u53F7\u6837\u5F0F"},"single-quote-style":{name:"\u5355\u5F15\u53F7\u6837\u5F0F",description:"\u8981\u4F7F\u7528\u7684\u5355\u5F15\u53F7\u6837\u5F0F"},"double-quote-enabled":{name:"\u542F\u7528\u53CC\u5F15\u53F7\u6837\u5F0F",description:"\u6307\u5B9A\u5E94\u4F7F\u7528\u9009\u5B9A\u7684\u53CC\u5F15\u53F7\u6837\u5F0F"},"double-quote-style":{name:"\u53CC\u5F15\u53F7\u6837\u5F0F",description:"\u8981\u4F7F\u7528\u7684\u53CC\u5F15\u53F7\u6837\u5F0F"}},"re-index-footnotes":{name:"\u811A\u6CE8\u91CD\u65B0\u7D22\u5F15",description:"\u57FA\u4E8E\u51FA\u73B0\u7684\u987A\u5E8F\u5BF9\u811A\u6CE8\u91CD\u65B0\u7D22\u5F15\u3002\u6CE8\u610F\uFF0C\u5982\u679C\u4E00\u4E2A\u5F15\u7528\u5BF9\u5E94\u591A\u6761\u811A\u6CE8\uFF0C\u5219\u6B64\u89C4\u5219\u5931\u6548"},"remove-consecutive-list-markers":{name:"\u79FB\u9664\u91CD\u590D\u7684\u5217\u8868\u6807\u5FD7",description:"\u79FB\u9664\u91CD\u590D\u7684\u5217\u8868\u6807\u5FD7\u3002\u590D\u5236\u7C98\u8D34\u5217\u8868\u9879\u65F6\u5F88\u6709\u7528"},"remove-empty-lines-between-list-markers-and-checklists":{name:"\u79FB\u9664\u5217\u8868\u548C checklist \u9879\u76EE\u4E4B\u95F4\u7684\u7A7A\u884C",description:"\u5217\u8868\u548C checklist \u9879\u76EE\u4E4B\u95F4\u4E0D\u5E94\u6709\u7A7A\u884C"},"remove-empty-list-markers":{name:"\u79FB\u9664\u7A7A\u7684\u5217\u8868\u6807\u5FD7",description:"\u79FB\u9664\u7A7A\u7684\u5217\u8868\u6807\u5FD7\uFF0C\u6BD4\u5982\u5217\u8868\u540E\u6CA1\u5185\u5BB9"},"empty-line-around-horizontal-rules":{name:"\u5206\u9694\u7EBF\u524D\u540E\u7A7A\u884C",description:"\u786E\u4FDD\u5206\u9694\u7EBF\u524D\u540E\u6709\u7A7A\u884C\uFF0C\u9664\u975E\u5B83\u5728\u6587\u6863\u7684\u5F00\u5934\u6216\u7ED3\u5C3E"},"remove-hyphenated-line-breaks":{name:"\u79FB\u9664\u8FDE\u5B57\u7B26",description:"\u79FB\u9664\u4E2D\u5212\u7EBF\u8FDE\u5B57\u7B26\u3002\u4ECE\u6587\u7AE0\u4E2D\u7C98\u8D34\u65F6\u5F88\u6709\u7528"},"remove-hyphens-on-paste":{name:"\u79FB\u9664\u8FDE\u5B57\u7B26",description:"\u7C98\u8D34\u65F6\uFF0C\u4ECE\u8981\u7C98\u8D34\u7684\u6587\u672C\u4E2D\u79FB\u9664\u8FDE\u5B57\u7B26"},"remove-leading-or-trailing-whitespace-on-paste":{name:"\u79FB\u9664\u524D\u5BFC\u6216\u5C3E\u968F\u7A7A\u683C",description:"\u7C98\u8D34\u65F6\uFF0C\u4ECE\u8981\u7C98\u8D34\u7684\u6587\u672C\u4E2D\u79FB\u9664\u4EFB\u4F55\u524D\u5BFC\u975E\u5236\u8868\u7B26\u7A7A\u683C\u548C\u6240\u6709\u5C3E\u968F\u7A7A\u683C"},"remove-leftover-footnotes-from-quote-on-paste":{name:"\u79FB\u9664\u811A\u6CE8\u5F15\u7528",description:"\u7C98\u8D34\u65F6\uFF0C\u4ECE\u8981\u7C98\u8D34\u7684\u6587\u672C\u4E2D\u79FB\u9664\u811A\u6CE8\u5F15\u7528"},"remove-link-spacing":{name:"\u79FB\u9664\u94FE\u63A5\u7A7A\u683C",description:"\u79FB\u9664\u94FE\u63A5\u6587\u672C\u9996\u5C3E\u7684\u7A7A\u683C"},"remove-multiple-blank-lines-on-paste":{name:"\u79FB\u9664\u91CD\u590D\u7A7A\u884C",description:"\u7C98\u8D34\u65F6\uFF0C\u4ECE\u8981\u7C98\u8D34\u7684\u6587\u672C\u4E2D\u5C06\u591A\u4E2A\u7A7A\u884C\u538B\u7F29\u4E3A\u4E00\u4E2A\u7A7A\u884C"},"remove-multiple-spaces":{name:"\u79FB\u9664\u91CD\u590D\u7A7A\u683C",description:"\u79FB\u9664\u4E24\u4E2A\u6216\u66F4\u591A\u8FDE\u7EED\u7684\u7A7A\u683C\uFF0C\u5FFD\u7565\u884C\u9996\u548C\u884C\u5C3E\u7684\u7A7A\u683C"},"remove-space-around-characters":{name:"\u79FB\u9664\u5B57\u7B26\u5468\u56F4\u7684\u7A7A\u683C",description:"\u786E\u4FDD\u67D0\u4E9B\u5B57\u7B26\u5468\u56F4\u6CA1\u6709\u7A7A\u683C\uFF08\u5305\u62EC\u5355\u4E2A\u7A7A\u683C\u6216\u5236\u8868\u7B26\uFF09\u3002\u6CE8\u610F\uFF0C\u8FD9\u53EF\u80FD\u4F1A\u5728\u67D0\u4E9B\u60C5\u51B5\u4E0B\u5F71\u54CD markdown \u683C\u5F0F","include-fullwidth-forms":{name:"\u5305\u62EC\u5168\u89D2\u5F62\u5F0F",description:'\u5305\u62EC\u5168\u89D2\u5F62\u5F0FUnicode\u5757'},"include-cjk-symbols-and-punctuation":{name:"\u5305\u62ECCJK\u7B26\u53F7\u548C\u6807\u70B9",description:'\u5305\u62ECCJK\u7B26\u53F7\u548C\u6807\u70B9Unicode\u5757'},"include-dashes":{name:"\u5305\u62EC\u7834\u6298\u53F7",description:"\u5305\u62EC en dash (\u2013) \u548C em dash (\u2014)"},"other-symbols":{name:"\u5176\u4ED6\u7B26\u53F7",description:"\u8981\u5305\u62EC\u7684\u5176\u4ED6\u7B26\u53F7"}},"remove-space-before-or-after-characters":{name:"\u79FB\u9664\u5B57\u7B26\u524D\u540E\u7684\u7A7A\u683C",description:"\u79FB\u9664\u6307\u5B9A\u5B57\u7B26\u4E4B\u524D\u548C\u6307\u5B9A\u5B57\u7B26\u4E4B\u540E\u7684\u7A7A\u683C\u3002 \u6CE8\u610F\uFF0C\u5728\u67D0\u4E9B\u60C5\u51B5\u4E0B\uFF0C\u8FD9\u53EF\u80FD\u4F1A\u5BFC\u81F4 markdown \u683C\u5F0F\u51FA\u73B0\u95EE\u9898","characters-to-remove-space-before":{name:"\u79FB\u9664\u5B57\u7B26\u524D\u7684\u7A7A\u683C",description:"\u79FB\u9664\u6307\u5B9A\u5B57\u7B26\u524D\u7684\u7A7A\u683C\u3002 \u6CE8\u610F\uFF0C\u5728\u5B57\u7B26\u5217\u8868\u4E2D\u4F7F\u7528{\u6216}\u4F1A\u610F\u5916\u5F71\u54CD\u6587\u4EF6\uFF0C\u56E0\u4E3A\u5B83\u5728\u7A0B\u5E8F\u540E\u53F0\u7684\u5FFD\u7565\u8BED\u6CD5\u4E2D\u4F7F\u7528"},"characters-to-remove-space-after":{name:"\u79FB\u9664\u5B57\u7B26\u540E\u7684\u7A7A\u683C",description:"\u79FB\u9664\u6307\u5B9A\u5B57\u7B26\u540E\u7684\u7A7A\u683C\u3002 \u6CE8\u610F\uFF0C\u5728\u5B57\u7B26\u5217\u8868\u4E2D\u4F7F\u7528{\u6216}\u4F1A\u610F\u5916\u5F71\u54CD\u6587\u4EF6\uFF0C\u56E0\u4E3A\u5B83\u5728\u7A0B\u5E8F\u540E\u53F0\u7684\u5FFD\u7565\u8BED\u6CD5\u4E2D\u4F7F\u7528"}},"remove-trailing-punctuation-in-heading":{name:"\u79FB\u9664\u6807\u9898\u4E2D\u7684\u7ED3\u5C3E\u6807\u70B9\u7B26\u53F7",description:'\u4ECE\u6807\u9898\u7684\u672B\u5C3E\u5220\u9664\u6307\u5B9A\u7684\u6807\u70B9\u7B26\u53F7\uFF0C\u4E0D\u4F1A\u5220\u9664 HTML \u5B57\u7B26\u5B9E\u4F53\u672B\u5C3E\u7684\u5206\u53F7',"punctuation-to-remove":{name:"\u8981\u5220\u9664\u7684\u7ED3\u5C3E\u6807\u70B9\u7B26\u53F7",description:"\u8981\u4ECE\u6587\u4EF6\u6807\u9898\u7ED3\u5C3E\u4E2D\u5220\u9664\u7684\u6807\u70B9\u7B26\u53F7"}},"remove-yaml-keys":{name:"\u79FB\u9664 YAML \u952E",description:"\u79FB\u9664\u6307\u5B9A\u7684 YAML \u952E","yaml-keys-to-remove":{name:"\u9700\u8981\u79FB\u9664\u7684 YAML \u952E",description:"\u8981\u4ECE YAML Front-matter \u4E2D\u5220\u9664\u7684 YAML \u952E \uFF08\u53EF\u5E26\u6216\u4E0D\u5E26\u5192\u53F7\uFF09"}},"sort-yaml-array-values":{name:"YAML \u503C\u6392\u5E8F",description:"\u57FA\u4E8E\u6307\u5B9A\u89C4\u5219\u5BF9 YAML \u503C\u6392\u5E8F","sort-alias-key":{name:"YAML aliases \u6392\u5E8F",description:"\u6253\u5F00\u4EE5\u5BF9 YAML aliases \u6392\u5E8F"},"sort-tag-key":{name:"YAML tags \u6392\u5E8F",description:"\u6253\u5F00\u4EE5\u5BF9 YAML tags \u6392\u5E8F"},"sort-array-keys":{name:"YAML array \u6392\u5E8F",description:"\u6253\u5F00\u4EE5\u5BF9\u666E\u901A YAML \u6570\u7EC4\u4E2D\u7684\u503C\u6392\u5E8F"},"ignore-keys":{name:"\u8981\u5FFD\u7565\u7684 YAML \u952E",description:"\u8981\u5FFD\u7565\u7684 YAML \u952E\u5217\u8868\uFF0C\u6BCF\u884C\u4E00\u4E2A\u952E"},"sort-order":{name:"\u6392\u5E8F\u65B9\u5F0F",description:"\u6392\u5E8F\u65B9\u5F0F"}},"space-after-list-markers":{name:"\u5217\u8868\u6807\u5FD7\u7A7A\u683C",description:"\u5217\u8868\u6807\u5FD7\u548C checkbox \u540E\u5E94\u6709\u4E00\u4E2A\u7A7A\u683C"},"space-between-chinese-japanese-or-korean-and-english-or-numbers":{name:"\u4E2D\u65E5\u97E9\u8BED\u4E0E\u82F1\u8BED\u6216\u6570\u5B57\u4E4B\u95F4\u7684\u7A7A\u683C",description:'\u786E\u4FDD\u4E2D\u65E5\u97E9\u6587\u4E0E\u82F1\u6587\u6570\u5B57\u4E4B\u95F4\u6709\u4E00\u4E2A\u7A7A\u683C \u53C2\u8003\u94FE\u63A5',"english-symbols-punctuation-before":{name:"English Punctuations and Symbols Before CJK",description:'\u88AB\u8BA4\u4E3A\u662F\u82F1\u6587\u7684\u5728\u4E2D\u65E5\u97E9\u6587\u5B57\u7B26\u4E4B"\u524D"\u627E\u5230\u7684\u975E\u5B57\u6BCD\u6807\u70B9\u7B26\u53F7 \u6CE8\u610F: "*" \u4F1A\u88AB\u8BA4\u4E3A\u662F\u82F1\u6587'},"english-symbols-punctuation-after":{name:"English Punctuations and Symbols After CJK",description:'\u88AB\u8BA4\u4E3A\u662F\u82F1\u6587\u7684\u5728\u4E2D\u65E5\u97E9\u6587\u5B57\u7B26\u4E4B"\u540E"\u627E\u5230\u7684\u975E\u5B57\u6BCD\u6807\u70B9\u7B26\u53F7 \u6CE8\u610F: "*" \u4F1A\u88AB\u8BA4\u4E3A\u662F\u82F1\u6587'}},"strong-style":{name:"\u7C97\u4F53\u6837\u5F0F",description:"\u786E\u4FDD\u7C97\u4F53\u6837\u5F0F\u4E00\u81F4",style:{name:"\u6837\u5F0F",description:"\u7528\u4E8E\u8868\u793A\u7C97\u4F53\u7684\u6837\u5F0F"}},"trailing-spaces":{name:"\u672B\u5C3E\u7A7A\u683C",description:"\u79FB\u9664\u6BCF\u884C\u672B\u5C3E\u591A\u4F59\u7684\u7A7A\u683C","twp-space-line-break":{name:"\u4E24\u7A7A\u683C\u6362\u884C",description:'\u5FFD\u7565\u4E24\u4E2A\u7A7A\u683C\u540E\u63A5\u6362\u884C\u7B26\u7684\u60C5\u51B5\uFF08"\u4E24\u7A7A\u683C\u89C4\u5219"\uFF09'}},"two-spaces-between-lines-with-content":{name:"\u4E0D\u540C\u5185\u5BB9\u95F4\u6362\u884C",description:"\u786E\u4FDD\u5728\u6BB5\u843D\u3001\u5F15\u7528\u548C\u5217\u8868\u9879\u4E4B\u95F4\uFF0C\u6BCF\u5757\u5185\u5BB9\u7684\u672B\u5C3E\u6709\u4E24\u4E2A\u7A7A\u683C","line-break-indicator":{name:"\u6362\u884C\u6807\u8BB0",description:"\u8981\u4F7F\u7528\u7684\u6362\u884C\u6807\u8BB0"}},"unordered-list-style":{name:"\u65E0\u5E8F\u5217\u8868\u6837\u5F0F",description:"\u786E\u4FDD\u65E0\u5E8F\u5217\u8868\u7B26\u5408\u6307\u5B9A\u7684\u6837\u5F0F","list-style":{name:"\u5217\u8868\u9879\u6837\u5F0F",description:"\u5217\u8868\u9879\u9700\u8981\u6307\u5B9A\u7684\u6837\u5F0F"}},"yaml-key-sort":{name:"YAML \u952E\u6392\u5E8F",description:"\u6839\u636E\u6307\u5B9A\u7684\u987A\u5E8F\u548C\u4F18\u5148\u7EA7\u5BF9 YAML \u952E\u8FDB\u884C\u6392\u5E8F\u3002\u6CE8\u610F\uFF0C\u4E5F\u8BB8\u4E5F\u4F1A\u5220\u9664\u7A7A\u884C","yaml-key-priority-sort-order":{name:"YAML \u952E\u4F18\u5148\u7EA7\u6392\u5E8F\u987A\u5E8F",description:"\u5BF9\u952E\u8FDB\u884C\u6392\u5E8F\u7684\u987A\u5E8F\uFF0C\u6BCF\u884C\u4E00\u4E2A\u952E\uFF0C\u6309\u5217\u8868\u4E2D\u7684\u987A\u5E8F\u8FDB\u884C\u6392\u5E8F"},"priority-keys-at-start-of-yaml":{name:"\u6392\u5E8F\u952E\u653E\u5728 YAML \u5F00\u5934",description:"\u6309\u7167 YAML \u952E\u4F18\u5148\u7EA7\u6392\u5E8F\u987A\u5E8F\u5C06\u952E\u653E\u4E8E YAML Front-matter \u5F00\u5934"},"yaml-sort-order-for-other-keys":{name:"YAML \u5176\u5B83\u952E\u7684\u6392\u5E8F\u987A\u5E8F",description:"\u5BF9 YAML \u952E\u4F18\u5148\u7EA7\u6392\u5E8F\u987A\u5E8F\u4E2D\u672A\u627E\u5230\u7684\u952E\u8FDB\u884C\u6392\u5E8F"}},"yaml-timestamp":{name:"YAML \u65F6\u95F4\u6233",description:"\u5728 YAML Front-matter \u4E2D\u8BB0\u5F55\u4E0A\u6B21\u7F16\u8F91\u6587\u6863\u7684\u65E5\u671F\u3002\u4ECE\u6587\u6863\u5143\u6570\u636E\u4E2D\u83B7\u53D6\u65E5\u671F\u6570\u636E","date-created":{name:"\u521B\u5EFA\u65E5\u671F",description:"\u63D2\u5165\u6587\u4EF6\u7684\u521B\u5EFA\u65E5\u671F"},"date-created-key":{name:"\u521B\u5EFA\u65E5\u671F\u952E\u540D",description:"\u4F7F\u7528\u54EA\u4E2A YAML \u952E\u6765\u8868\u793A\u521B\u5EFA\u65E5\u671F"},"date-created-source-of-truth":{name:"\u521B\u5EFA\u65E5\u671F\u6570\u636E\u6E90",description:"\u5982\u679C YAML Front-matter \u4E2D\u5DF2\u7ECF\u6709\u521B\u5EFA\u65F6\u95F4\uFF0C\u4ECE\u54EA\u91CC\u83B7\u53D6\u521B\u5EFA\u65F6\u95F4\u65B0\u503C"},"date-modified-source-of-truth":{name:"\u4FEE\u6539\u65E5\u671F\u6570\u636E\u6E90",description:"\u5982\u679C YAML Front-matter \u4E2D\u5DF2\u7ECF\u6709\u4FEE\u6539\u65E5\u671F\uFF0C\u4ECE\u54EA\u91CC\u83B7\u53D6\u4FEE\u6539\u65F6\u95F4\u65B0\u503C"},"date-modified":{name:"\u4FEE\u6539\u65E5\u671F",description:"\u63D2\u5165\u6587\u4EF6\u7684\u6700\u8FD1\u4E00\u6B21\u7684\u4FEE\u6539\u65E5\u671F"},"date-modified-key":{name:"\u4FEE\u6539\u65E5\u671F\u952E\u540D",description:"\u4F7F\u7528\u54EA\u4E2A YAML \u952E\u6765\u8868\u793A\u4FEE\u6539\u65E5\u671F"},format:{name:"\u683C\u5F0F",description:'Moment.js \u8BED\u6CD5\u683C\u5F0F \u8BF4\u660E\uFF09'},"convert-to-utc":{name:"\u672C\u5730\u65F6\u95F4\u8F6C\u4E3A UTC \u65F6\u95F4",description:"\u672C\u5730\u65F6\u95F4\u8F6C\u4E3A UTC \u65F6\u95F4"},"update-on-file-contents-updated":{name:"\u6587\u4EF6\u5185\u5BB9\u53D8\u5316\u65F6\u66F4\u65B0 YAML \u65F6\u95F4\u6233",description:"\u5F53\u524D\u6D3B\u52A8\u7B14\u8BB0\u88AB\u4FEE\u6539\u65F6\uFF0C\u4FEE\u6539\u65E5\u671F\u5C06\u4F1A\u5B9E\u65F6\u66F4\u65B0\u3002"}},"yaml-title-alias":{name:"YAML \u6807\u9898\u522B\u540D",description:"\u5C06\u6587\u6863\u7684\u6807\u9898\u63D2\u5165 YAML Front-matter \u7684 aliases \u90E8\u5206\u3002\u4ECE\u7B2C\u4E00\u4E2A H1 \u6807\u9898\u6216\u6587\u6863\u540D\u4E2D\u83B7\u53D6\u503C","preserve-existing-alias-section-style":{name:"\u4FDD\u7559\u73B0\u6709\u522B\u540D\u90E8\u5206\u6837\u5F0F",description:"\u5982\u679C\u8BBE\u7F6E\uFF0C\u6B64\u9879\u4EC5\u5728\u65B0\u521B\u5EFA\u7684\u522B\u540D\u90E8\u5206\u751F\u6548"},"keep-alias-that-matches-the-filename":{name:"\u786E\u4FDD\u522B\u540D\u4E0E\u6587\u4EF6\u540D\u5339\u914D",description:"\u8FD9\u6837\u7684\u522B\u540D\u901A\u5E38\u662F\u5197\u4F59\u7684"},"use-yaml-key-to-keep-track-of-old-filename-or-heading":{name:"\u4F7F\u7528 YAML \u952E linter-yaml-title-alias \u6765\u4FDD\u7559\u6807\u9898\u4FEE\u6539\u8BB0\u5F55",description:"\u5982\u679C\u8BBE\u7F6E\uFF0C\u5F53\u7B2C\u4E00\u4E2A H1 \u6807\u9898\u66F4\u6539\u6216\u6587\u6863\u540D\u66F4\u6539\u65F6\uFF0C\u6B64\u952E\u4E2D\u5B58\u50A8\u7684\u65E7 aliases \u5C06\u66FF\u6362\u4E3A\u65B0\u503C\uFF0C\u800C\u4E0D\u4EC5\u4EC5\u662F\u5728 aliases \u4E2D\u63D2\u5165\u65B0\u6761\u76EE"},"alias-helper-key":{name:"\u522B\u540D\u8F85\u52A9\u952E",description:"\u6B64\u952E\u7528\u4E8E\u4FDD\u5B58\u6807\u9898\u522B\u540D\u5386\u53F2"}},"yaml-title":{name:"YAML \u6807\u9898",description:"\u6839\u636E\u6307\u5B9A\u6A21\u5F0F\uFF0C\u5C06\u6587\u4EF6\u7684\u6807\u9898\u63D2\u5165\u5230 YAML Front-matter \u4E2D","title-key":{name:"\u6807\u9898\u952E",description:"\u6807\u9898\u4F7F\u7528\u54EA\u4E00\u4E2A YAML \u952E"},mode:{name:"\u6A21\u5F0F",description:"\u7528\u4E8E\u83B7\u53D6\u6807\u9898\u7684\u65B9\u6CD5"}}},enums:{"Title Case":"\u6BCF\u8BCD\u9996\u5B57\u6BCD\u5927\u5199","ALL CAPS":"\u5168\u90E8\u5927\u5199","First letter":"\u4EC5\u9996\u5B57\u6BCD\u5927\u5199",".":".",")":")",ERROR:"ERROR",TRACE:"TRACE",DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",SILENT:"SILENT",ascending:"\u5347\u5E8F",lazy:"\u5168\u4E3A1",preserve:"\u4FDD\u6301\u539F\u6837",Nothing:"\u65E0","Remove hashtag":"\u79FB\u9664 hashtag","Remove whole tag":"\u79FB\u9664\u6574\u4E2A tag",asterisk:"\u661F\u53F7(*)",underscore:"\u4E0B\u5212\u7EBF(_)",consistent:"\u4FDD\u6301\u4E00\u81F4","-":"-","*":"*","+":"+",space:"\u6709\u7A7A\u683C","no space":"\u65E0\u7A7A\u683C",None:"\u65E0","Ascending Alphabetical":"\u6309\u5B57\u6BCD\u987A\u5E8F\u5347\u5E8F","Descending Alphabetical":"\u6309\u5B57\u6BCD\u987A\u5E8F\u964D\u5E8F","multi-line":"\u591A\u884C\u6570\u7EC4","single-line":"\u5355\u884C\u6570\u7EC4","single string to single-line":"\u5B57\u7B26\u4E32\u8F6C\u5355\u884C\u6570\u7EC4","single string to multi-line":"\u5B57\u7B26\u4E32\u8F6C\u591A\u884C\u6570\u7EC4","single string comma delimited":"\u9017\u53F7\u5206\u9694\u5B57\u7B26\u4E32","single string space delimited":"\u7A7A\u683C\u5206\u9694\u5B57\u7B26\u4E32","single-line space delimited":"\u7A7A\u683C\u5206\u9694\u5355\u884C\u6570\u7EC4","first-h1":"\u7B2C\u4E00\u4E2A H1 \u6807\u9898","first-h1-or-filename-if-h1-missing":"\u7B2C\u4E00\u4E2A H1 \u6807\u9898\u6216\u6587\u4EF6\u540D\uFF08\u7B2C\u4E00\u4E2A H1 \u6807\u9898\u4E0D\u5B58\u5728\u65F6\uFF09",filename:"\u6587\u4EF6\u540D",never:"Never","after 5 seconds":"5 \u79D2\u540E","after 10 seconds":"10 \u79D2\u540E","after 15 seconds":"15 \u79D2\u540E","after 30 seconds":"30 \u79D2\u540E","after 1 minute":"1 \u5206\u949F\u540E","file system":"\u7CFB\u7EDF",frontmatter:"YAML Front-matter","user or Linter edits":"Obsidian","''":"''","\u2018\u2019":"\u2018\u2019",'""':'""',"\u201C\u201D":"\u201C\u201D","\\":"\\","
    ":"
    "," ":" ","
    ":"
    "}};var xd={};var hl={ar:td,cz:nd,da:id,de:rd,en:gl,es:ad,fr:od,hi:sd,id:ld,it:cd,ja:ud,ko:dd,nl:pd,no:md,pl:fd,"pt-BR":hd,pt:gd,ro:yd,ru:bd,sq:vd,tr:kd,uk:wd,"zh-TW":xd,zh:Ad};var Ld="en",fo=Ld,fr=hl[fo];function go(e){fo=e,fr=hl[fo],fr||(pt(`locale not found for '${fo}'`),fr=hl[Ld])}function x(e){return fr&&pr(fr,e)||pr(gl,e)}var ho=function(e){if(e==null)return qh;if(typeof e=="function")return yo(e);if(typeof e=="object")return Array.isArray(e)?_h(e):Ph(e);if(typeof e=="string")return Hh(e);throw new Error("Expected function, string, or object as test")};function _h(e){let n=[],t=-1;for(;++t":""))+")"})}return m;function m(){let p=Sd,f,b,h;if((!n||a(l,c,u[u.length-1]||void 0))&&(p=Wh(t(l,u)),p[0]===bo))return p;if("children"in l&&l.children){let k=l;if(k.children&&p[0]!==bl)for(b=(i?k.children.length:-1)+o,h=u.concat(k);b>-1&&b=0;){let r=e.charAt(i);if(r===` +`)break;r.trim()===""||r===">"?t=r+t:t="",i--}return[t,i]}function kl(e=""){let[n]=Oi(e,e.length);return` +`+n.trim()}function Ed(e="",n=!1,t=1){let i=kl(e),r=sn(i,">");return(n||wo.test(e))&&t===r||t")):i}function Vh(e,n){if(n===0)return e;let t=n,i=n;for(;t>=0;){let r=e.charAt(t);if(r.trim()!=="")break;r===` +`&&(i=t),t--}return t<0||i===0?e.substring(n+1):e.substring(0,i)+` +`+e.substring(n)}function jh(e,n,t,i=!1,r=!1){if(t===0)return e;let a=n.split(">").length-1,o=t,s=t,l=0,c=!1,u="";for(;o>=0;){let A=e.charAt(o);if(A.trim()!==""&&A!==">")break;if(A===">"){if(c)break;l++}else if(A===` +`)if(l===0||l===a||l+1===a)s=o,l=0,u===` +`&&(c=!0);else break;o--,u=A}if(o<0||s===0)return e.substring(t+1);let d=e.substring(s,t);if(d===` +`||d.startsWith(` + +`))return e.substring(0,s)+` +`+e.substring(t);let p=e.lastIndexOf(` +`,s-1),f="";p===-1?f=e.substring(0,s):f=e.substring(p,s);let b,h=e.indexOf(` +`,t+1);h===-1?b=e.substring(t):b=e.substring(t,h);let k;return r?k=Ed(f,i,a):sn(f,">")!=0&&!wo.test(f)&&(gr.test(f)||gr.test(b))?k=e.substring(s,t).trimEnd():k=kl(f),e.substring(0,s)+k+e.substring(t)}function $h(e,n){if(n===e.length-1)return e;let t=n,i=n,r=!0;for(;t").length-1,o=t,s=t,l=!0,c=0,u=!1,d="",m=!0,p=e.charAt(o-1);for(;o")break;if(M===">"){if(u)break;c++}else if(M===` +`)if(c===0||c===a||c+1===a)c=0,l?l=!1:s=o,d===` +`&&(u=!0);else break;if(o++,d=M,m&&M===` +`&&r&&p===` +`){s=o;break}m=!1}if(o===e.length||s===e.length-1)return e.substring(0,t);let f=e.substring(t,s);if(f===` +`||f.endsWith(` + +`))return e.substring(0,t)+` +`+e.substring(s);let h=e.indexOf(` +`,s+1),k="";h===-1?k=e.substring(s):k=e.substring(s+1,h);let A,S=e.lastIndexOf(` +`,t-1);S===-1?A=e.substring(0,s):A=e.substring(S+1,t);let T;return r?T=Ed(k,i,a):gr.test(k)||gr.test(A)?T=e.substring(t,s).trimEnd():T=kl(k),e.substring(0,t)+T+e.substring(s)}function on(e,n,t,i=!1){let[r,a]=Oi(e,n);if(r.trim()!==""){let s=wo.test(e.substring(n,t)),l=sn(r,">"),c=Qh(e,t,l),u=Gh(e,r,c,s,i);return a=Zh(u,a,l),jh(u,r,a,s,i)}let o=$h(e,t);return Vh(o,a)}function Td(e,n=0){let t=3735928559^n,i=1103547991^n;for(let r=0,a;r>>16,2246822507)^Math.imul(i^i>>>13,3266489909),i=Math.imul(i^i>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),4294967296*(2097151&i)+(t>>>0)}function Cd(e){return e=e.replaceAll("\\b","\b"),e=e.replaceAll("\\f","\f"),e=e.replaceAll("\\n",` +`),e=e.replaceAll("\\r","\r"),e=e.replaceAll("\\t"," "),e=e.replaceAll("\\v","\v"),e}function hr(e,n){if(n==0)return n;let t=n;for(;t>0&&e.charAt(t-1)!==` +`;)t--;return t}function Od(e,n,t,i){return i>e.length-1?e:e.slice(0,i)+e.slice(i,e.length).replace(n,t)}function sn(e,n){let t=0;for(let i=0,r=e.length;i-1&&(t++,i=a)}return t}function ko(e){let n=typeof e;return n!="string"?n==="number":!isNaN(e)&&!isNaN(parseFloat(e))}function Md(e,n){let t=[],i=-1;for(;(i=n.indexOf(e,i+1))>=0;)t.push(i);return t}function Zh(e,n,t){let i=n,r=n+1,a="",o=!1,s=0;for(;r"){o=!0;break}else if(a===` +`){if(s!==t)break;s=0,i=r}else a===">"&&s++;r++}return o?i:n}function Qh(e,n,t){let i=n,r=n-1,a="",o=!1,s=0;for(;r>=0;){if(a=e.charAt(r),a.trim()!==""&&a!==">"){o=!0;break}else if(a===` +`){if(s!==t)break;s=0,i=r}else a===">"&&s++;r--}return o?i:n}function Mi(e){let n=Ii(e),t=new Map,i="",r=[],a=[];for(let o of n){i=e.substring(o.startIndex,o.endIndex),r=i.split(` +`),r.splice(0,2);for(let s of r){if(a=s.split("|"),a.length!==4){pt(x("options.custom-auto-correct.custom-row-parse-warning").replace("{ROW}",s));continue}t.set(a[1].trim().toLowerCase(),a[2].trim())}}return t}function ze(e,n,t,i){let r=e.length,a=0,o;if(n<0?n=-n>r?0:r+n:n=n>r?r:n,t=t>0?t:0,i.length<1e4)o=Array.from(i),o.unshift(n,t),e.splice(...o);else for(t&&e.splice(n,t);a0?(ze(e,e.length,0,n),e):n}var Jh=ln(/\p{P}/u),at=ln(/[A-Za-z]/),Qe=ln(/[\dA-Za-z]/),Id=ln(/[#-'*+\--9=?A-Z^-~]/);function yr(e){return e!==null&&(e<32||e===127)}var br=ln(/\d/),Fd=ln(/[\dA-Fa-f]/),wl=ln(/[!-/:-@[-`{-~]/);function F(e){return e!==null&&e<-2}function ne(e){return e!==null&&(e<0||e===32)}function H(e){return e===-2||e===-1||e===32}function Rd(e){return wl(e)||Jh(e)}var Bd=ln(/\s/);function ln(e){return n;function n(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function Al(e){if(e===null||ne(e)||Bd(e))return 1;if(Rd(e))return 2}function Fi(e,n,t){let i=[],r=-1;for(;++r1&&e[t][1].end.offset-e[t][1].start.offset>1?2:1;let d=Object.assign({},e[i][1].end),m=Object.assign({},e[t][1].start);Dd(d,-l),Dd(m,l),o={type:l>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[i][1].end)},s={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[t][1].start),end:m},a={type:l>1?"strongText":"emphasisText",start:Object.assign({},e[i][1].end),end:Object.assign({},e[t][1].start)},r={type:l>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},s.end)},e[i][1].end=Object.assign({},o.start),e[t][1].start=Object.assign({},s.end),c=[],e[i][1].end.offset-e[i][1].start.offset&&(c=Ze(c,[["enter",e[i][1],n],["exit",e[i][1],n]])),c=Ze(c,[["enter",r,n],["enter",o,n],["exit",o,n],["enter",a,n]]),c=Ze(c,Fi(n.parser.constructs.insideSpan.null,e.slice(i+1,t),n)),c=Ze(c,[["exit",a,n],["enter",s,n],["exit",s,n],["exit",r,n]]),e[t][1].end.offset-e[t][1].start.offset?(u=2,c=Ze(c,[["enter",e[t][1],n],["exit",e[t][1],n]])):u=0,ze(e,i-1,t-i+3,c),t=i+c.length-u-2;break}}for(t=-1;++t0&&H(E)?P(e,A,"linePrefix",a+1)(E):A(E)}function A(E){return E===null||F(E)?e.check(zd,b,T)(E):(e.enter("codeFlowValue"),S(E))}function S(E){return E===null||F(E)?(e.exit("codeFlowValue"),A(E)):(e.consume(E),S)}function T(E){return e.exit("codeFenced"),n(E)}function M(E,O,N){let B=0;return z;function z(W){return E.enter("lineEnding"),E.consume(W),E.exit("lineEnding"),V}function V(W){return E.enter("codeFencedFence"),H(W)?P(E,$,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(W):$(W)}function $(W){return W===s?(E.enter("codeFencedFenceSequence"),D(W)):N(W)}function D(W){return W===s?(B++,E.consume(W),D):B>=o?(E.exit("codeFencedFenceSequence"),H(W)?P(E,U,"whitespace")(W):U(W)):N(W)}function U(W){return W===null||F(W)?(E.exit("codeFencedFence"),O(W)):N(W)}}}function cy(e,n,t){let i=this;return r;function r(o){return o===null?t(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a)}function a(o){return i.parser.lazy[i.now().line]?t(o):n(o)}}var kr={name:"codeIndented",tokenize:dy},uy={tokenize:py,partial:!0};function dy(e,n,t){let i=this;return r;function r(c){return e.enter("codeIndented"),P(e,a,"linePrefix",5)(c)}function a(c){let u=i.events[i.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?o(c):t(c)}function o(c){return c===null?l(c):F(c)?e.attempt(uy,o,l)(c):(e.enter("codeFlowValue"),s(c))}function s(c){return c===null||F(c)?(e.exit("codeFlowValue"),o(c)):(e.consume(c),s)}function l(c){return e.exit("codeIndented"),n(c)}}function py(e,n,t){let i=this;return r;function r(o){return i.parser.lazy[i.now().line]?t(o):F(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),r):P(e,a,"linePrefix",5)(o)}function a(o){let s=i.events[i.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?n(o):F(o)?r(o):t(o)}}var Ll={name:"codeText",tokenize:gy,resolve:my,previous:fy};function my(e){let n=e.length-4,t=3,i,r;if((e[t][1].type==="lineEnding"||e[t][1].type==="space")&&(e[n][1].type==="lineEnding"||e[n][1].type==="space")){for(i=t;++i=4?n(o):e.interrupt(i.parser.constructs.flow,t,n)(o)}}function To(e,n,t,i,r,a,o,s,l){let c=l||Number.POSITIVE_INFINITY,u=0;return d;function d(k){return k===60?(e.enter(i),e.enter(r),e.enter(a),e.consume(k),e.exit(a),m):k===null||k===32||k===41||yr(k)?t(k):(e.enter(i),e.enter(o),e.enter(s),e.enter("chunkString",{contentType:"string"}),b(k))}function m(k){return k===62?(e.enter(a),e.consume(k),e.exit(a),e.exit(r),e.exit(i),n):(e.enter(s),e.enter("chunkString",{contentType:"string"}),p(k))}function p(k){return k===62?(e.exit("chunkString"),e.exit(s),m(k)):k===null||k===60||F(k)?t(k):(e.consume(k),k===92?f:p)}function f(k){return k===60||k===62||k===92?(e.consume(k),p):p(k)}function b(k){return!u&&(k===null||k===41||ne(k))?(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(i),n(k)):u999||p===null||p===91||p===93&&!l||p===94&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs?t(p):p===93?(e.exit(a),e.enter(r),e.consume(p),e.exit(r),e.exit(i),n):F(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||F(p)||s++>999?(e.exit("chunkString"),u(p)):(e.consume(p),l||(l=!H(p)),p===92?m:d)}function m(p){return p===91||p===92||p===93?(e.consume(p),s++,d):d(p)}}function Oo(e,n,t,i,r,a){let o;return s;function s(m){return m===34||m===39||m===40?(e.enter(i),e.enter(r),e.consume(m),e.exit(r),o=m===40?41:m,l):t(m)}function l(m){return m===o?(e.enter(r),e.consume(m),e.exit(r),e.exit(i),n):(e.enter(a),c(m))}function c(m){return m===o?(e.exit(a),l(o)):m===null?t(m):F(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),P(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(m))}function u(m){return m===o||m===null||F(m)?(e.exit("chunkString"),c(m)):(e.consume(m),m===92?d:u)}function d(m){return m===o||m===92?(e.consume(m),u):u(m)}}function Rn(e,n){let t;return i;function i(r){return F(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t=!0,i):H(r)?P(e,i,t?"linePrefix":"lineSuffix")(r):n(r)}}function Ve(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var El={name:"definition",tokenize:Ay},wy={tokenize:xy,partial:!0};function Ay(e,n,t){let i=this,r;return a;function a(p){return e.enter("definition"),o(p)}function o(p){return Co.call(i,e,s,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function s(p){return r=Ve(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):t(p)}function l(p){return ne(p)?Rn(e,c)(p):c(p)}function c(p){return To(e,u,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function u(p){return e.attempt(wy,d,d)(p)}function d(p){return H(p)?P(e,m,"whitespace")(p):m(p)}function m(p){return p===null||F(p)?(e.exit("definition"),i.parser.defined.push(r),n(p)):t(p)}}function xy(e,n,t){return i;function i(s){return ne(s)?Rn(e,r)(s):t(s)}function r(s){return Oo(e,a,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function a(s){return H(s)?P(e,o,"whitespace")(s):o(s)}function o(s){return s===null||F(s)?n(s):t(s)}}var Tl={name:"hardBreakEscape",tokenize:Ly};function Ly(e,n,t){return i;function i(a){return e.enter("hardBreakEscape"),e.consume(a),r}function r(a){return F(a)?(e.exit("hardBreakEscape"),n(a)):t(a)}}var Cl={name:"headingAtx",tokenize:Ey,resolve:Sy};function Sy(e,n){let t=e.length-2,i=3,r,a;return e[i][1].type==="whitespace"&&(i+=2),t-2>i&&e[t][1].type==="whitespace"&&(t-=2),e[t][1].type==="atxHeadingSequence"&&(i===t-1||t-4>i&&e[t-2][1].type==="whitespace")&&(t-=i+1===t?2:4),t>i&&(r={type:"atxHeadingText",start:e[i][1].start,end:e[t][1].end},a={type:"chunkText",start:e[i][1].start,end:e[t][1].end,contentType:"text"},ze(e,i,t-i+1,[["enter",r,n],["enter",a,n],["exit",a,n],["exit",r,n]])),e}function Ey(e,n,t){let i=0;return r;function r(u){return e.enter("atxHeading"),a(u)}function a(u){return e.enter("atxHeadingSequence"),o(u)}function o(u){return u===35&&i++<6?(e.consume(u),o):u===null||ne(u)?(e.exit("atxHeadingSequence"),s(u)):t(u)}function s(u){return u===35?(e.enter("atxHeadingSequence"),l(u)):u===null||F(u)?(e.exit("atxHeading"),n(u)):H(u)?P(e,s,"whitespace")(u):(e.enter("atxHeadingText"),c(u))}function l(u){return u===35?(e.consume(u),l):(e.exit("atxHeadingSequence"),s(u))}function c(u){return u===null||u===35||ne(u)?(e.exit("atxHeadingText"),s(u)):(e.consume(u),c)}}var Nd=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Ol=["pre","script","style","textarea"];var Ml={name:"htmlFlow",tokenize:My,resolveTo:Oy,concrete:!0},Ty={tokenize:Fy,partial:!0},Cy={tokenize:Iy,partial:!0};function Oy(e){let n=e.length;for(;n--&&!(e[n][0]==="enter"&&e[n][1].type==="htmlFlow"););return n>1&&e[n-2][1].type==="linePrefix"&&(e[n][1].start=e[n-2][1].start,e[n+1][1].start=e[n-2][1].start,e.splice(n-2,2)),e}function My(e,n,t){let i=this,r,a,o,s,l;return c;function c(w){return u(w)}function u(w){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(w),d}function d(w){return w===33?(e.consume(w),m):w===47?(e.consume(w),a=!0,b):w===63?(e.consume(w),r=3,i.interrupt?n:v):at(w)?(e.consume(w),o=String.fromCharCode(w),h):t(w)}function m(w){return w===45?(e.consume(w),r=2,p):w===91?(e.consume(w),r=5,s=0,f):at(w)?(e.consume(w),r=4,i.interrupt?n:v):t(w)}function p(w){return w===45?(e.consume(w),i.interrupt?n:v):t(w)}function f(w){let Ae="CDATA[";return w===Ae.charCodeAt(s++)?(e.consume(w),s===Ae.length?i.interrupt?n:$:f):t(w)}function b(w){return at(w)?(e.consume(w),o=String.fromCharCode(w),h):t(w)}function h(w){if(w===null||w===47||w===62||ne(w)){let Ae=w===47,qe=o.toLowerCase();return!Ae&&!a&&Ol.includes(qe)?(r=1,i.interrupt?n(w):$(w)):Nd.includes(o.toLowerCase())?(r=6,Ae?(e.consume(w),k):i.interrupt?n(w):$(w)):(r=7,i.interrupt&&!i.parser.lazy[i.now().line]?t(w):a?A(w):S(w))}return w===45||Qe(w)?(e.consume(w),o+=String.fromCharCode(w),h):t(w)}function k(w){return w===62?(e.consume(w),i.interrupt?n:$):t(w)}function A(w){return H(w)?(e.consume(w),A):z(w)}function S(w){return w===47?(e.consume(w),z):w===58||w===95||at(w)?(e.consume(w),T):H(w)?(e.consume(w),S):z(w)}function T(w){return w===45||w===46||w===58||w===95||Qe(w)?(e.consume(w),T):M(w)}function M(w){return w===61?(e.consume(w),E):H(w)?(e.consume(w),M):S(w)}function E(w){return w===null||w===60||w===61||w===62||w===96?t(w):w===34||w===39?(e.consume(w),l=w,O):H(w)?(e.consume(w),E):N(w)}function O(w){return w===l?(e.consume(w),l=null,B):w===null||F(w)?t(w):(e.consume(w),O)}function N(w){return w===null||w===34||w===39||w===47||w===60||w===61||w===62||w===96||ne(w)?M(w):(e.consume(w),N)}function B(w){return w===47||w===62||H(w)?S(w):t(w)}function z(w){return w===62?(e.consume(w),V):t(w)}function V(w){return w===null||F(w)?$(w):H(w)?(e.consume(w),V):t(w)}function $(w){return w===45&&r===2?(e.consume(w),Q):w===60&&r===1?(e.consume(w),ee):w===62&&r===4?(e.consume(w),He):w===63&&r===3?(e.consume(w),v):w===93&&r===5?(e.consume(w),Ie):F(w)&&(r===6||r===7)?(e.exit("htmlFlowData"),e.check(Ty,$e,D)(w)):w===null||F(w)?(e.exit("htmlFlowData"),D(w)):(e.consume(w),$)}function D(w){return e.check(Cy,U,$e)(w)}function U(w){return e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),W}function W(w){return w===null||F(w)?D(w):(e.enter("htmlFlowData"),$(w))}function Q(w){return w===45?(e.consume(w),v):$(w)}function ee(w){return w===47?(e.consume(w),o="",Pe):$(w)}function Pe(w){if(w===62){let Ae=o.toLowerCase();return Ol.includes(Ae)?(e.consume(w),He):$(w)}return at(w)&&o.length<8?(e.consume(w),o+=String.fromCharCode(w),Pe):$(w)}function Ie(w){return w===93?(e.consume(w),v):$(w)}function v(w){return w===62?(e.consume(w),He):w===45&&r===2?(e.consume(w),v):$(w)}function He(w){return w===null||F(w)?(e.exit("htmlFlowData"),$e(w)):(e.consume(w),He)}function $e(w){return e.exit("htmlFlow"),n(w)}}function Iy(e,n,t){let i=this;return r;function r(o){return F(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a):t(o)}function a(o){return i.parser.lazy[i.now().line]?t(o):n(o)}}function Fy(e,n,t){return i;function i(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(Ft,n,t)}}var Il={name:"htmlText",tokenize:Ry};function Ry(e,n,t){let i=this,r,a,o;return s;function s(v){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(v),l}function l(v){return v===33?(e.consume(v),c):v===47?(e.consume(v),M):v===63?(e.consume(v),S):at(v)?(e.consume(v),N):t(v)}function c(v){return v===45?(e.consume(v),u):v===91?(e.consume(v),a=0,f):at(v)?(e.consume(v),A):t(v)}function u(v){return v===45?(e.consume(v),p):t(v)}function d(v){return v===null?t(v):v===45?(e.consume(v),m):F(v)?(o=d,ee(v)):(e.consume(v),d)}function m(v){return v===45?(e.consume(v),p):d(v)}function p(v){return v===62?Q(v):v===45?m(v):d(v)}function f(v){let He="CDATA[";return v===He.charCodeAt(a++)?(e.consume(v),a===He.length?b:f):t(v)}function b(v){return v===null?t(v):v===93?(e.consume(v),h):F(v)?(o=b,ee(v)):(e.consume(v),b)}function h(v){return v===93?(e.consume(v),k):b(v)}function k(v){return v===62?Q(v):v===93?(e.consume(v),k):b(v)}function A(v){return v===null||v===62?Q(v):F(v)?(o=A,ee(v)):(e.consume(v),A)}function S(v){return v===null?t(v):v===63?(e.consume(v),T):F(v)?(o=S,ee(v)):(e.consume(v),S)}function T(v){return v===62?Q(v):S(v)}function M(v){return at(v)?(e.consume(v),E):t(v)}function E(v){return v===45||Qe(v)?(e.consume(v),E):O(v)}function O(v){return F(v)?(o=O,ee(v)):H(v)?(e.consume(v),O):Q(v)}function N(v){return v===45||Qe(v)?(e.consume(v),N):v===47||v===62||ne(v)?B(v):t(v)}function B(v){return v===47?(e.consume(v),Q):v===58||v===95||at(v)?(e.consume(v),z):F(v)?(o=B,ee(v)):H(v)?(e.consume(v),B):Q(v)}function z(v){return v===45||v===46||v===58||v===95||Qe(v)?(e.consume(v),z):V(v)}function V(v){return v===61?(e.consume(v),$):F(v)?(o=V,ee(v)):H(v)?(e.consume(v),V):B(v)}function $(v){return v===null||v===60||v===61||v===62||v===96?t(v):v===34||v===39?(e.consume(v),r=v,D):F(v)?(o=$,ee(v)):H(v)?(e.consume(v),$):(e.consume(v),U)}function D(v){return v===r?(e.consume(v),r=void 0,W):v===null?t(v):F(v)?(o=D,ee(v)):(e.consume(v),D)}function U(v){return v===null||v===34||v===39||v===60||v===61||v===96?t(v):v===47||v===62||ne(v)?B(v):(e.consume(v),U)}function W(v){return v===47||v===62||ne(v)?B(v):t(v)}function Q(v){return v===62?(e.consume(v),e.exit("htmlTextData"),e.exit("htmlText"),n):t(v)}function ee(v){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),Pe}function Pe(v){return H(v)?P(e,Ie,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):Ie(v)}function Ie(v){return e.enter("htmlTextData"),o(v)}}var Bn={name:"labelEnd",tokenize:Yy,resolveTo:Ny,resolveAll:zy},By={tokenize:_y},Dy={tokenize:Py},Ky={tokenize:Hy};function zy(e){let n=-1;for(;++n=3&&(c===null||F(c))?(e.exit("thematicBreak"),n(c)):t(c)}function l(c){return c===r?(e.consume(c),i++,l):(e.exit("thematicBreakSequence"),H(c)?P(e,s,"whitespace")(c):s(c))}}var je={name:"list",tokenize:Gy,continuation:{tokenize:Zy},exit:Jy},jy={tokenize:Xy,partial:!0},$y={tokenize:Qy,partial:!0};function Gy(e,n,t){let i=this,r=i.events[i.events.length-1],a=r&&r[1].type==="linePrefix"?r[2].sliceSerialize(r[1],!0).length:0,o=0;return s;function s(p){let f=i.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(f==="listUnordered"?!i.containerState.marker||p===i.containerState.marker:br(p)){if(i.containerState.type||(i.containerState.type=f,e.enter(f,{_container:!0})),f==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(Dn,t,c)(p):c(p);if(!i.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return t(p)}function l(p){return br(p)&&++o<10?(e.consume(p),l):(!i.interrupt||o<2)&&(i.containerState.marker?p===i.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):t(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||p,e.check(Ft,i.interrupt?t:u,e.attempt(jy,m,d))}function u(p){return i.containerState.initialBlankLine=!0,a++,m(p)}function d(p){return H(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),m):t(p)}function m(p){return i.containerState.size=a+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,n(p)}}function Zy(e,n,t){let i=this;return i.containerState._closeFlow=void 0,e.check(Ft,r,a);function r(s){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,P(e,n,"listItemIndent",i.containerState.size+1)(s)}function a(s){return i.containerState.furtherBlankLines||!H(s)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,o(s)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt($y,n,o)(s))}function o(s){return i.containerState._closeFlow=!0,i.interrupt=void 0,P(e,e.attempt(je,n,t),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function Qy(e,n,t){let i=this;return P(e,r,"listItemIndent",i.containerState.size+1);function r(a){let o=i.events[i.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===i.containerState.size?n(a):t(a)}}function Jy(e){e.exit(this.containerState.type)}function Xy(e,n,t){let i=this;return P(e,r,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function r(a){let o=i.events[i.events.length-1];return!H(a)&&o&&o[1].type==="listItemPrefixWhitespace"?n(a):t(a)}}var Mo={name:"setextUnderline",tokenize:tb,resolveTo:eb};function eb(e,n){let t=e.length,i,r,a;for(;t--;)if(e[t][0]==="enter"){if(e[t][1].type==="content"){i=t;break}e[t][1].type==="paragraph"&&(r=t)}else e[t][1].type==="content"&&e.splice(t,1),!a&&e[t][1].type==="definition"&&(a=t);let o={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[r][1].type="setextHeadingText",a?(e.splice(r,0,["enter",o,n]),e.splice(a+1,0,["exit",e[i][1],n]),e[i][1].end=Object.assign({},e[a][1].end)):e[i][1]=o,e.push(["exit",o,n]),e}function tb(e,n,t){let i=this,r;return a;function a(c){let u=i.events.length,d;for(;u--;)if(i.events[u][1].type!=="lineEnding"&&i.events[u][1].type!=="linePrefix"&&i.events[u][1].type!=="content"){d=i.events[u][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||d)?(e.enter("setextHeadingLine"),r=c,o(c)):t(c)}function o(c){return e.enter("setextHeadingLineSequence"),s(c)}function s(c){return c===r?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),H(c)?P(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||F(c)?(e.exit("setextHeadingLine"),n(c)):t(c)}}var nb={tokenize:cb,partial:!0};function Bl(){return{document:{91:{tokenize:ob,continuation:{tokenize:sb},exit:lb}},text:{91:{tokenize:ab},93:{add:"after",tokenize:ib,resolveTo:rb}}}}function ib(e,n,t){let i=this,r=i.events.length,a=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]),o;for(;r--;){let l=i.events[r][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return s;function s(l){if(!o||!o._balanced)return t(l);let c=Ve(i.sliceSerialize({start:o.end,end:i.now()}));return c.codePointAt(0)!==94||!a.includes(c.slice(1))?t(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),n(l))}}function rb(e,n){let t=e.length,i;for(;t--;)if(e[t][1].type==="labelImage"&&e[t][0]==="enter"){i=e[t][1];break}e[t+1][1].type="data",e[t+3][1].type="gfmFootnoteCallLabelMarker";let r={type:"gfmFootnoteCall",start:Object.assign({},e[t+3][1].start),end:Object.assign({},e[e.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},e[t+3][1].end),end:Object.assign({},e[t+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;let o={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},l=[e[t+1],e[t+2],["enter",r,n],e[t+3],e[t+4],["enter",a,n],["exit",a,n],["enter",o,n],["enter",s,n],["exit",s,n],["exit",o,n],e[e.length-2],e[e.length-1],["exit",r,n]];return e.splice(t,e.length-t+1,...l),e}function ab(e,n,t){let i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]),a=0,o;return s;function s(d){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),l}function l(d){return d!==94?t(d):(e.enter("gfmFootnoteCallMarker"),e.consume(d),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(d){if(a>999||d===93&&!o||d===null||d===91||ne(d))return t(d);if(d===93){e.exit("chunkString");let m=e.exit("gfmFootnoteCallString");return r.includes(Ve(i.sliceSerialize(m)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),n):t(d)}return ne(d)||(o=!0),a++,e.consume(d),d===92?u:c}function u(d){return d===91||d===92||d===93?(e.consume(d),a++,c):c(d)}}function ob(e,n,t){let i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]),a,o=0,s;return l;function l(f){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(f),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(f){return f===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(f),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",u):t(f)}function u(f){if(o>999||f===93&&!s||f===null||f===91||ne(f))return t(f);if(f===93){e.exit("chunkString");let b=e.exit("gfmFootnoteDefinitionLabelString");return a=Ve(i.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(f),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),m}return ne(f)||(s=!0),o++,e.consume(f),f===92?d:u}function d(f){return f===91||f===92||f===93?(e.consume(f),o++,u):u(f)}function m(f){return f===58?(e.enter("definitionMarker"),e.consume(f),e.exit("definitionMarker"),r.includes(a)||r.push(a),P(e,p,"gfmFootnoteDefinitionWhitespace")):t(f)}function p(f){return n(f)}}function sb(e,n,t){return e.check(Ft,n,e.attempt(nb,n,t))}function lb(e){e.exit("gfmFootnoteDefinition")}function cb(e,n,t){let i=this;return P(e,r,"gfmFootnoteDefinitionIndent",5);function r(a){let o=i.events[i.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?n(a):t(a)}}var ub={tokenize:db};function Dl(){return{text:{91:ub}}}function db(e,n,t){let i=this;return r;function r(l){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?t(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),a)}function a(l){return ne(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),o):t(l)}function o(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),s):t(l)}function s(l){return F(l)?n(l):H(l)?e.check({tokenize:pb},n,t)(l):t(l)}}function pb(e,n,t){return P(e,i,"whitespace");function i(r){return r===null?t(r):n(r)}}var _d=Cn(Yd(),1),Ar=Object.assign(Kn(Error),{eval:Kn(EvalError),range:Kn(RangeError),reference:Kn(ReferenceError),syntax:Kn(SyntaxError),type:Kn(TypeError),uri:Kn(URIError)});function Kn(e){return n.displayName=e.displayName||e.name,n;function n(t,...i){let r=t&&(0,_d.default)(t,...i);return new e(r)}}var Io={}.hasOwnProperty,Pd={yaml:"-",toml:"+"};function xr(e){let n=[],t=-1,i=Array.isArray(e)?e:e?[e]:["yaml"];for(;++t13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"\uFFFD":String.fromCodePoint(t)}var Gd={tokenize:Eb};function Eb(e){let n=e.attempt(this.parser.constructs.contentInitial,i,r),t;return n;function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),P(e,n,"linePrefix")}function r(s){return e.enter("paragraph"),a(s)}function a(s){let l=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=l),t=l,o(s)}function o(s){if(s===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(s);return}return F(s)?(e.consume(s),e.exit("chunkText"),a):(e.consume(s),o)}}var Qd={tokenize:Tb},Zd={tokenize:Cb};function Tb(e){let n=this,t=[],i=0,r,a,o;return s;function s(S){if(io))return;let O=n.events.length,N=O,B,z;for(;N--;)if(n.events[N][0]==="exit"&&n.events[N][1].type==="chunkFlow"){if(B){z=n.events[N][1].end;break}B=!0}for(k(i),E=O;ES;){let M=t[T];n.containerState=M[1],M[0].exit.call(n,e)}t.length=S}function A(){r.write([null]),a=void 0,r=void 0,n.containerState._closeFlow=void 0}}function Cb(e,n,t){return P(e,e.attempt(this.parser.constructs.document,n,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}var Jd={tokenize:Ob};function Ob(e){let n=this,t=e.attempt(Ft,i,e.attempt(this.parser.constructs.flowInitial,r,P(e,e.attempt(this.parser.constructs.flow,r,e.attempt(Sl,r)),"linePrefix")));return t;function i(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),n.currentConstruct=void 0,t}function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),n.currentConstruct=void 0,t}}var Xd={resolveAll:ip()},ep=np("string"),tp=np("text");function np(e){return{tokenize:n,resolveAll:ip(e==="text"?Mb:void 0)};function n(t){let i=this,r=this.parser.constructs[e],a=t.attempt(r,o,s);return o;function o(u){return c(u)?a(u):s(u)}function s(u){if(u===null){t.consume(u);return}return t.enter("data"),t.consume(u),l}function l(u){return c(u)?(t.exit("data"),a(u)):(t.consume(u),l)}function c(u){if(u===null)return!0;let d=r[u],m=-1;if(d)for(;++m-1){let s=o[0];typeof s=="string"?o[0]=s.slice(i):o.shift()}a>0&&o.push(e[r].slice(0,a))}return o}function Fb(e,n){let t=-1,i=[],r;for(;++t_b,contentInitial:()=>Bb,disable:()=>Pb,document:()=>Rb,flow:()=>Kb,flowInitial:()=>Db,insideSpan:()=>Yb,string:()=>zb,text:()=>Nb});var Rb={42:je,43:je,45:je,48:je,49:je,50:je,51:je,52:je,53:je,54:je,55:je,56:je,57:je,62:Ao},Bb={91:El},Db={[-2]:kr,[-1]:kr,32:kr},Kb={35:Cl,42:Dn,45:[Mo,Dn],60:Ml,61:Mo,95:Dn,96:So,126:So},zb={38:Lo,92:xo},Nb={[-5]:wr,[-4]:wr,[-3]:wr,33:Fl,38:Lo,42:vr,60:[xl,Il],91:Rl,92:[Tl,xo],93:Bn,95:vr,96:Ll},Yb={null:[vr,Xd]},_b={null:[42,95]},Pb={null:[]};function Ul(e){let t=Fo([ql,...(e||{}).extensions||[]]),i={defined:[],lazy:{},constructs:t,content:r(Gd),document:r(Qd),flow:r(Jd),string:r(ep),text:r(tp)};return i;function r(a){return o;function o(s){return rp(i,a,s)}}}function Wl(e){for(;!Eo(e););return e}var ap=/[\0\t\n\r]/g;function Vl(){let e=1,n="",t=!0,i;return r;function r(a,o,s){let l=[],c,u,d,m,p;for(a=n+(typeof a=="string"?a.toString():new TextDecoder(o||void 0).decode(a)),d=0,n="",t&&(a.charCodeAt(0)===65279&&d++,t=void 0);d0){let bt=j.tokenStack[j.tokenStack.length-1];(bt[1]||cp).call(j,void 0,bt[0])}for(R.position={start:cn(C.length>0?C[0][1].start:{line:1,column:1,offset:0}),end:cn(C.length>0?C[C.length-2][1].end:{line:1,column:1,offset:0})},te=-1;++te0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof t.maxAge=="number"&&t.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");Fe(this,un,t.maxSize),Fe(this,Sr,t.maxAge||Number.POSITIVE_INFINITY),Fe(this,dn,t.onEviction)}get __oldCache(){return Y(this,fe)}get(t){if(Y(this,ce).has(t)){let i=Y(this,ce).get(t);return me(this,Tr,Jl).call(this,t,i)}if(Y(this,fe).has(t)){let i=Y(this,fe).get(t);if(me(this,ot,kt).call(this,t,i)===!1)return me(this,Do,fp).call(this,t,i),i.value}}set(t,i,{maxAge:r=Y(this,Sr)}={}){let a=typeof r=="number"&&r!==Number.POSITIVE_INFINITY?Date.now()+r:void 0;return Y(this,ce).has(t)?Y(this,ce).set(t,{value:i,expiry:a}):me(this,Or,ec).call(this,t,{value:i,expiry:a}),this}has(t){return Y(this,ce).has(t)?!me(this,ot,kt).call(this,t,Y(this,ce).get(t)):Y(this,fe).has(t)?!me(this,ot,kt).call(this,t,Y(this,fe).get(t)):!1}peek(t){if(Y(this,ce).has(t))return me(this,Cr,Xl).call(this,t,Y(this,ce));if(Y(this,fe).has(t))return me(this,Cr,Xl).call(this,t,Y(this,fe))}delete(t){let i=Y(this,ce).delete(t);return i&&Zs(this,mt)._--,Y(this,fe).delete(t)||i}clear(){Y(this,ce).clear(),Y(this,fe).clear(),Fe(this,mt,0)}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");let i=[...me(this,Mr,tc).call(this)],r=i.length-t;r<0?(Fe(this,ce,new Map(i)),Fe(this,fe,new Map),Fe(this,mt,i.length)):(r>0&&me(this,Er,Ql).call(this,i.slice(0,r)),Fe(this,fe,new Map(i.slice(r))),Fe(this,ce,new Map),Fe(this,mt,0)),Fe(this,un,t)}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of Y(this,ce)){let[i,r]=t;me(this,ot,kt).call(this,i,r)===!1&&(yield[i,r.value])}for(let t of Y(this,fe)){let[i,r]=t;Y(this,ce).has(i)||me(this,ot,kt).call(this,i,r)===!1&&(yield[i,r.value])}}*entriesDescending(){let t=[...Y(this,ce)];for(let i=t.length-1;i>=0;--i){let r=t[i],[a,o]=r;me(this,ot,kt).call(this,a,o)===!1&&(yield[a,o.value])}t=[...Y(this,fe)];for(let i=t.length-1;i>=0;--i){let r=t[i],[a,o]=r;Y(this,ce).has(a)||me(this,ot,kt).call(this,a,o)===!1&&(yield[a,o.value])}}*entriesAscending(){for(let[t,i]of me(this,Mr,tc).call(this))yield[t,i.value]}get size(){if(!Y(this,mt))return Y(this,fe).size;let t=0;for(let i of Y(this,fe).keys())Y(this,ce).has(i)||t++;return Math.min(Y(this,mt)+t,Y(this,un))}get maxSize(){return Y(this,un)}entries(){return this.entriesAscending()}forEach(t,i=this){for(let[r,a]of this.entriesAscending())t.call(i,a,r,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};mt=new WeakMap,ce=new WeakMap,fe=new WeakMap,un=new WeakMap,Sr=new WeakMap,dn=new WeakMap,Er=new WeakSet,Ql=function(t){if(typeof Y(this,dn)=="function")for(let[i,r]of t)Y(this,dn).call(this,i,r.value)},ot=new WeakSet,kt=function(t,i){return typeof i.expiry=="number"&&i.expiry<=Date.now()?(typeof Y(this,dn)=="function"&&Y(this,dn).call(this,t,i.value),this.delete(t)):!1},Bo=new WeakSet,mp=function(t,i){if(me(this,ot,kt).call(this,t,i)===!1)return i.value},Tr=new WeakSet,Jl=function(t,i){return i.expiry?me(this,Bo,mp).call(this,t,i):i.value},Cr=new WeakSet,Xl=function(t,i){let r=i.get(t);return me(this,Tr,Jl).call(this,t,r)},Or=new WeakSet,ec=function(t,i){Y(this,ce).set(t,i),Zs(this,mt)._++,Y(this,mt)>=Y(this,un)&&(Fe(this,mt,0),me(this,Er,Ql).call(this,Y(this,fe)),Fe(this,fe,Y(this,ce)),Fe(this,ce,new Map))},Do=new WeakSet,fp=function(t,i){Y(this,fe).delete(t),me(this,Or,ec).call(this,t,i)},Mr=new WeakSet,tc=function*(){for(let t of Y(this,fe)){let[i,r]=t;Y(this,ce).has(i)||me(this,ot,kt).call(this,i,r)===!1&&(yield t)}for(let t of Y(this,ce)){let[i,r]=t;me(this,ot,kt).call(this,i,r)===!1&&(yield t)}};var nc=new Lr({maxSize:200});function yp(e){let n=Td(e);if(nc.has(n))return nc.get(n);let t=$l(e,{extensions:[Fo([Bl(),Dl(),Nl(["yaml"])]),_l()],mdastExtensions:[[Gl(),Zl,Yl(["yaml"])],Pl()]});return nc.set(n,t),t}function ge(e,n){let t=yp(n),i=[];return vo(t,e,r=>{i.push(r.position)}),i.sort((r,a)=>a.start.offset-r.start.offset),i}function iv(e){let n=yp(e),t=[];return vo(n,"listItem",i=>{if(i.children)for(let r of i.children)r.type==="paragraph"&&t.push(r.position)}),t.sort((i,r)=>r.start.offset-i.start.offset),t}function bp(e){let n=ge("footnoteDefinition",e),t=[],i=new Map,r=new Map,a=function(o,s,l){let c=s.match(/\[\^.*?\]/)[0];if(i.has(c)){let p=i.get(c);p.footnotesReferencingKey.push(s),i.set(c,p);return}let u,d=[];do u=o.lastIndexOf(c,l),u!==-1&&(d.push(u),l=u-1);while(u>0);let m={key:c,referencePositions:d,footnotesReferencingKey:[s]};i.set(c,m)};for(let o of n){let s=e.substring(o.start.offset,o.end.offset);t.push(s),o.end.offset=0?l:0;let c=0;for(let u of s.footnotesReferencingKey){if(c+l>=s.referencePositions.length)throw new Error(x("logs.missing-footnote-error-message").replace("{FOOTNOTE}",u));r.set(u,s.referencePositions[l+c++])}}t=t.sort((o,s)=>r.get(o)-r.get(s)),t.length>0&&(e=e.trimEnd()+` +`);for(let o of t)e+=` +`+o;return e}function vp(e){let n=ge("footnoteDefinition",e),t=[],i=new Map,r=new Map,a=[],o=new Set,s=[],l=function(d,m,p){let f=m.match(/\[\^.*?\]/)[0];i.set(m,f);let b=o.has(f);if(b&&t.includes(m)){s.unshift(m);return}else if(b)throw new Error(x("logs.too-many-footnotes-error-message").replace("{FOOTNOTE_KEY}",f));let h;do h=d.lastIndexOf(f,p),h!==-1&&((h+m.length>d.length||d.substring(h,h+m.length)!==m)&&a.push({key:f,position:h}),p=h-1);while(h>0);o.add(f)};for(let d of n){let m=e.substring(d.start.offset,d.end.offset);t.unshift(m),l(e,m,d.start.offset)}let c=1,u=new Set;for(let d of t){if(u.has(d))continue;u.add(d);let m=i.get(d),p=`[^${c++}]`;r.set(m,p)}a.sort((d,m)=>m.position-d.position);for(let d of a){let m=r.get(d.key);e=Od(e,d.key,m,d.position)}for(let d of u){let m=i.get(d),p=r.get(m);e=e.replace(d,d.replace(m,p))}for(let d of s){let m=e.replace(` +${d} +`,` +`);e===m&&(m=e.replace(d,"")),e=m}return e}function Ko(e,n,t){let i=ge(t,e);if(i.length===0)return e;let r="";if(n==="underscore")r="_";else if(n==="asterisk")r="*";else{let a=i[i.length-1];r=e.substring(a.start.offset,a.start.offset+1)}t==="strong"&&(r+=r);for(let a of i){let o=r+e.substring(a.start.offset+r.length,a.end.offset-r.length)+r;e=le(e,a.start.offset,a.end.offset,o)}return e}function kp(e,n){let t=ge("paragraph",e);if(t.length===0)return e;for(let i of t){let r=e.substring(i.start.offset,i.end.offset).split(` +`),a=r.length-1;if(!(a<1)){for(let o=0;o")&&n=="
    "||e.endsWith("
    ")&&n=="
    "||e.endsWith(" ")&&n==" "||!e.endsWith("\\\\")&&e.endsWith("\\")&&n=="\\")}function av(e,n){e=e.trimEnd();let t=0;return e.endsWith("
    ")&&(t=4),e.endsWith("
    ")&&(t=5),!e.endsWith("\\\\")&&e.endsWith("\\")&&(t=1),t&&(e=e.substring(0,e.length-t)),e.trimEnd()+n}function wp(e){let n=e.endsWith(` +`),t=ge("paragraph",e);if(t.length===0)return e;for(let i of t){let r=i.start.offset;for(r>0&&r--;r>=0&&e.charAt(r)!=` +`;)r--;r++;let a=e.substring(r,i.end.offset).split(` +`),o=a[0].trimStart();if(o.startsWith(">")||o.match(zo)||o.match(No))continue;let s=a.length,l=[],c=!1;for(let f=0;f")||b.endsWith("
    ")||b.endsWith(" ")||!b.endsWith("\\\\")&&b.endsWith("\\")}for(;r>0&&e.charAt(r-1)==` +`;)r--;let u=e.length,d=i.end.offset;for(d0&&e.charAt(r-1).trim()==="";)r--;(r===0||e.charAt(r-1).trim()!="")&&r++;let a=e.substring(r,i.end.offset);Yp.test(a)&&(r+=4,a=a.substring(4)),a=n(a),e=le(e,r,i.end.offset,a)}return e}function Sp(e){let n=ge("code",e);for(let t of n){let i=e.substring(t.start.offset,t.end.offset);!i.startsWith("```")&&!i.startsWith("~~~")||(e=on(e,t.start.offset,t.end.offset))}return e}function Ep(e,n){let t=ge("math",e);for(let i of t)e=on(e,i.start.offset,i.end.offset);t=ge("inlineMath",e);for(let i of t)e.substring(i.start.offset,i.end.offset).startsWith("$".repeat(n))&&(e=on(e,i.start.offset,i.end.offset));return e}function Tp(e){let n=ge("blockquote",e);for(let t of n){let i=t.end.offset;for(;i0&&e.charAt(o-1)!==` +`;)o--;let s=e.substring(o,a.end.offset),l=function(m){let p=m.lastIndexOf("> ");return p!==-1&&(m=m.substring(p+2)),m=m.replaceAll(" "," "),Math.floor((m.split(" ").length-1)/2)+1},c=new Map,u=function(m,p){let f=p;for(;f>m;)c.delete(f--)},d=-1;s=s.replace(/^(( |\t|> )*)((\d+(\.|\)))|[-*+])([^\n]*)$/gm,(m,p="",f,b,h,k,A)=>{let S=n==="preserve"||i?Number(h):1,T=l(p);if(!/^\d/.test(b)){let M=T>d?T:d;return u(T,M),m}return c.has(T)?n==="ascending"?(S=c.get(T)+1,c.set(T,S)):i&&(S=c.get(T)):c.set(T,S),d>T&&u(T,d),d=T,`${p}${S}${t}${A}`}),e=le(e,o,a.end.offset,s)}return e}function Mp(e,n){let t=ge("listItem",e);if(!t)return e;let i=/^((\d+[.)])|(- \[[ x]\]))/m,r=n;if(n=="consistent"){let a=t.length-1;for(;a>=0;){let o=e.substring(t[a].start.offset,t[a].end.offset);if(a--,!o.match(i)){r=o.charAt(0);break}}if(a==-1)return e}for(let a of t){let o=e.substring(a.start.offset,a.end.offset);o.match(i)||(o=r+o.substring(1),e=le(e,a.start.offset,a.end.offset,o))}return e}function ac(e,n){let t=ge("blockquote",e);for(let i of t){let r=i.end.offset;for(;r2;){let c=e.indexOf(i,l)+i.length;a.unshift({startIndex:s,endIndex:t+c}),s=t+c+1,l=c+1,o-=2}return a.unshift({startIndex:t+e.indexOf(i,l),endIndex:t+e.length}),a}function gp(e,n,t,i,r){let a=e.substring(hr(e,n),n)??"",[o]=Oi(a,a.length),s=e.substring(hr(e,t),t)??"",l=e.substring(n,t),c=Bp.test(a.trim()),u=!1;for(l=l.replace(i,(d,m,p="")=>{let f="";return!c&&a.trim()!=""?(f+=` +`,u=!0):c&&!ic.test(a)&&(f+=` +`+o,u=!0),f+=m+` +`,p===""&&c&&(f+=o),f}),l=l.replace(r,(d,m="",p,f)=>{let b=m==="";return b&&c&&ic.test(s.trim())?d:b&&c?` +`+o+p+f:` +`+p+f});u&&n>0;){let d=e[n-1];if(d!==" "&&d!==" ")break;n--}return le(e,n,t,l)}function Ii(e){let n=[...e.matchAll(Dp)],t=[];for(let i of n){let r=hr(e,i.index);if(r===0)continue;let a=hr(e,r-1),o=i[0],s=e.substring(r,i.index+o.length);if(sv(s,o))continue;let l=a,c=e.substring(a,r-1);if(!o.includes("|")&&!c.includes("|"))continue;c=c.replace(rc,f=>{let b=f.trim();return b===""||b==="|"||(l+=f.length-1),""});let u=o.replace(rc,"");if(c.endsWith("|")&&(c=c.slice(0,-1)),u.endsWith("|")&&(u=u.slice(0,-1)),hp(c)!==hp(u))continue;let d=i.index+i[0].length;if(d>=e.length-1){t.push({startIndex:l,endIndex:e.length});continue}let m=e.substring(d+1).split(` +`),p=0;for(;p]/.test(t)}function hp(e){let n=!1,t=0,i=0,r="";for(let a=0;a{n=a.index;let o=!1,s=e.length-1;for(;r&&r.length!==0&&!o;)if(r[0].index<=n)r.shift();else{o=!0;let l=r[0];s=l.index+l[0].length}t.push({startIndex:n,endIndex:s}),!r||r.length}),t.reverse()}function Rp(e,n){let t=ge("code",e);for(let i of t){let r=e.substring(i.start.offset,i.end.offset);!r.startsWith("```")||r.substring(3,r.indexOf(` +`)).trim()!==""||(e=le(e,i.start.offset+3,i.start.offset+3,n))}return e}var pn=/^([ \t]*)(#+)([ \t]+)([^\n\r]*?)([ \t]+#+)?$/gm,_p=`^XXX\\.*? +(?:((?:.| +)*?) +)?XXX(?=\\s|$)$`,Ne=/^---\n((?:(((?!---)(?:.|\n)*?)\n)?))---(?=\n|$)/,lv=_p.replaceAll("X","`"),cv=_p.replaceAll("X","~"),uv=`^(( |( {4})).* +)+`,GT=new RegExp(`${lv}|${cv}|${uv}`,"gm"),Yo=/(!?)\[{2}([^\][\n|]+)(\|([^\][\n|]+))?(\|([^\][\n|]+))?\]{2}/g,Ir=/(!?)\[([^[]*)\](\(.*\))/g,Fr=/(\s|^)(#[\p{L}\-_\d/\p{Emoji_Presentation}]+)/gu,Pp=/^%%\n[^%]*\n%%/gm,Rr=/[,\s]+/,_o=/(\. ?){2}\./g,Br="\\s*(>\\s*)*",ic=/^(>( |\t)*)+\$*?$/m,Bp=/^\s*(>\s*)+/m,Dp=/(\|? *:?-{1,}:? *\|?)(\| *:?-{1,}:? *\|?)*( |\t)*$/gm,rc=/^(((>[ ]?)*)|([ ]{0,3}))\|/m,Kp=/[^\n]*?\|[^\n]*?(\n|$)/m,Hp=/(([a-z\-0-9]+:)\/{2,3})([^\s/?#]*[^\s")'.?!/]|[/])?(([/?#][^\s")']*[^\s")'.?!])|[/])?/gi,zn=/(?:(?:(?:[a-z]+:)?\/\/)|www\.)(?:localhost|(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?|(?:(?:[a-z0-9][-_]*)*[a-z0-9]+)(?:\.(?:[a-z0-9]-*)*[a-z0-9]+)*(?:\.(?:[a-z]{2,})))(?::\d{2,5})?(?:(?:[/?#][a-z0-9-_%/&=?$.+~!*‘(,#@]*[a-z0-9-%_/$+~!*‘(,])|[/])?/gi,ZT=new RegExp("^"+zn.source+"$","si"),qp=/]+)>((?:.(?!<\/a>))*.)<\/a>/g,Up=/[\p{L}\p{N}\p{Pc}\p{M}\-'’`]+/gu,Wp=/&[^\s]+;$/mi,zp=Xp(!0),Np=Xp(!1),Vp=/[“”„«»]/g,jp=/[‘’‚‹›]/g,$p=/<%[^]*?%>/g,Nn="\\[.\\]",Yp=new RegExp(`^${Nn}`),Gp=new RegExp(`^${Br}- ${Nn} `),Po=new RegExp(`^\\s*- ${Nn} `),zo=new RegExp(`^\\s*(-|\\*|\\+|\\d+[.)]|- (${Nn}))`,"m"),No=/^(\[\^[^\]]*\]) ?([,.;!:?])/gm,wo=/^(>\s*)+\[![^\s]*\]/m,gr=/^\n?(>\s*)+((```)|(~~~))/m,oc=RegExp(/\p{L}/,"u");function Je(e){return e.replace(/\$/g,"$$$$")}function mn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Zp(e){let n=e.match(Yo);if(n){for(let t of n)if(t.includes("|")){let i=t.indexOf("|"),r=t.substring(0,i+1)+t.substring(i+1,t.length-2).trim()+"]]";e=e.replace(t,r)}}return e}function Qp(e){let n=Ii(e);if(n.length===0)return e;for(let t of n)e=on(e,t.startIndex,t.endIndex);return e}function Ho(e){let n=e.match(/^#\s+(.*)/m);if(n&&n[1]){let t=n[1];return t=t.replaceAll(Yo,(i,r,a,o)=>o!=null?o.replace("|",""):a),t.replaceAll(Ir,"$2")}return""}function Jp(e){return[...e.matchAll(Fr)].map(n=>n[2])}function Xp(e){let n="(?:|%%)",t="";return e?t+="disable":t+="enable",new RegExp(n.replace("{ENDING_TEXT}",t),"g")}var sc="tag",Dr="tags",wt=[sc,Dr],dv="alias",lc="aliases",At=[dv,lc],cc="linter-yaml-title-alias",Ki="disabled rules";function Rt(e){return e.match(Ne)===null&&(e=`--- +--- +`+e),e}function zi(e){let n=e.match(Ne);return n?n[1]:null}function he(e,n){if(!e.match(Ne))return e;let t=e.match(Ne)[0],i=n(t);return e=e.replace(t,Je(i)),e}function uc(e,n=!0){return n?new RegExp(`^([\\t ]*)${e}:[ \\t]*(\\S.*|(?:(?:\\n *- \\S.*)|((?:\\n *- *))*|(\\n([ \\t]+[^\\n]*))*)*)\\n`,"m"):new RegExp(`^${e}:[ \\t]*(\\S.*|(?:(?:\\n *- \\S.*)|((?:\\n *- *))*|(\\n([ \\t]+[^\\n]*))*)*)\\n`,"m")}function ae(e,n,t){let i=`${n}:${t} +`,r=!1,a=e.replace(uc(n),(o,s)=>(r=!0,s+i));return r||(a=`${e}${i}`),a}function ue(e,n,t=!0){let i=e.match(uc(n,t));if(i==null)return null;let r=i[2];return t||(r=i[1]),r}function Yn(e,n,t=!0){return e.replace(uc(n,t),"")}function st(e){if(e==null)return null;let n=ul(e.replace(/\n(\t)+/g,` + `));return n??{}}function be(e,n,t,i,r=!1){if(typeof e=="string"&&(e=[e]),e==null||e.length===0)return pv(n);let a=i&&(n=="multi-line"||n=="single string to multi-line"&&e.length>1);if(r||a)for(let o=0;ot!="");if(e.includes(` +`)){let n=e.split(/[ \t]*\n[ \t]*-[ \t]*/);return n.splice(0,1),n=n.filter(t=>t!=""),n==null||n.length===0?null:n}return e}function fn(e){if(e==null)return[];let n=[],t=[];Array.isArray(e)?t=e:e.includes(",")?t=qo(e,","):t=qo(e," ");for(let i of t)n.push(i.trim());return n}function gn(e){return typeof e=="string"?qo(e,","):e}function qo(e,n=","){if(e==""||e==null)return null;if(n.length>1)throw new Error(x("logs.invalid-delimiter-error-message"));let t=[],i="",r=0;for(;r1&&(e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"'))}function xt(e,n,t=!1,i=!1){let r=fv(e,n,t);if(i)return r;try{if(ul(r)===e)return r}catch{}let a=dl(e,{lineWidth:-1,quotingType:n,forceQuotes:t}).slice(0,-1),o=dl(e,{lineWidth:-1,quotingType:n=='"'?"'":'"',forceQuotes:t}).slice(0,-1);return o===e||o.length{t.setIcon("plus-with-circle").setTooltip(this.addInputTooltip).onClick(()=>this.onAddInput()),t.buttonEl.addClass("clickable-icon")}).addButton(t=>{t.setIcon("reset").setTooltip(this.refreshBtnTooltip).onClick(()=>this.onRefresh()),t.buttonEl.addClass("clickable-icon")}).setClass("linter-border-bottom").setDesc(this.warning??"").descEl.addClass("mod-warning"),this.inputElDiv=this.containerEl.createDiv(),this.showInputEls()}resetInputEls(){this.inputElDiv.empty(),this.showInputEls()}};var Lm=require("obsidian");var ye="top",Ce="bottom",Se="right",ve="left",Wo="auto",hn=[ye,Ce,Se,ve],Vt="start",_n="end",im="clippingParents",Vo="viewport",Yi="popper",rm="reference",dc=hn.reduce(function(e,n){return e.concat([n+"-"+Vt,n+"-"+_n])},[]),jo=[].concat(hn,[Wo]).reduce(function(e,n){return e.concat([n,n+"-"+Vt,n+"-"+_n])},[]),gv="beforeRead",hv="read",yv="afterRead",bv="beforeMain",vv="main",kv="afterMain",wv="beforeWrite",Av="write",xv="afterWrite",am=[gv,hv,yv,bv,vv,kv,wv,Av,xv];function Be(e){return e?(e.nodeName||"").toLowerCase():null}function de(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var n=e.ownerDocument;return n&&n.defaultView||window}return e}function ft(e){var n=de(e).Element;return e instanceof n||e instanceof Element}function Oe(e){var n=de(e).HTMLElement;return e instanceof n||e instanceof HTMLElement}function _i(e){if(typeof ShadowRoot>"u")return!1;var n=de(e).ShadowRoot;return e instanceof n||e instanceof ShadowRoot}function Lv(e){var n=e.state;Object.keys(n.elements).forEach(function(t){var i=n.styles[t]||{},r=n.attributes[t]||{},a=n.elements[t];!Oe(a)||!Be(a)||(Object.assign(a.style,i),Object.keys(r).forEach(function(o){var s=r[o];s===!1?a.removeAttribute(o):a.setAttribute(o,s===!0?"":s)}))})}function Sv(e){var n=e.state,t={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(n.elements.popper.style,t.popper),n.styles=t,n.elements.arrow&&Object.assign(n.elements.arrow.style,t.arrow),function(){Object.keys(n.elements).forEach(function(i){var r=n.elements[i],a=n.attributes[i]||{},o=Object.keys(n.styles.hasOwnProperty(i)?n.styles[i]:t[i]),s=o.reduce(function(l,c){return l[c]="",l},{});!Oe(r)||!Be(r)||(Object.assign(r.style,s),Object.keys(a).forEach(function(l){r.removeAttribute(l)}))})}}var om={name:"applyStyles",enabled:!0,phase:"write",fn:Lv,effect:Sv,requires:["computeStyles"]};function De(e){return e.split("-")[0]}var Lt=Math.max,Pn=Math.min,jt=Math.round;function Pi(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(n){return n.brand+"/"+n.version}).join(" "):navigator.userAgent}function Kr(){return!/^((?!chrome|android).)*safari/i.test(Pi())}function gt(e,n,t){n===void 0&&(n=!1),t===void 0&&(t=!1);var i=e.getBoundingClientRect(),r=1,a=1;n&&Oe(e)&&(r=e.offsetWidth>0&&jt(i.width)/e.offsetWidth||1,a=e.offsetHeight>0&&jt(i.height)/e.offsetHeight||1);var o=ft(e)?de(e):window,s=o.visualViewport,l=!Kr()&&t,c=(i.left+(l&&s?s.offsetLeft:0))/r,u=(i.top+(l&&s?s.offsetTop:0))/a,d=i.width/r,m=i.height/a;return{width:d,height:m,top:u,right:c+d,bottom:u+m,left:c,x:c,y:u}}function Hn(e){var n=gt(e),t=e.offsetWidth,i=e.offsetHeight;return Math.abs(n.width-t)<=1&&(t=n.width),Math.abs(n.height-i)<=1&&(i=n.height),{x:e.offsetLeft,y:e.offsetTop,width:t,height:i}}function zr(e,n){var t=n.getRootNode&&n.getRootNode();if(e.contains(n))return!0;if(t&&_i(t)){var i=n;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Xe(e){return de(e).getComputedStyle(e)}function pc(e){return["table","td","th"].indexOf(Be(e))>=0}function _e(e){return((ft(e)?e.ownerDocument:e.document)||window.document).documentElement}function $t(e){return Be(e)==="html"?e:e.assignedSlot||e.parentNode||(_i(e)?e.host:null)||_e(e)}function sm(e){return!Oe(e)||Xe(e).position==="fixed"?null:e.offsetParent}function Ev(e){var n=/firefox/i.test(Pi()),t=/Trident/i.test(Pi());if(t&&Oe(e)){var i=Xe(e);if(i.position==="fixed")return null}var r=$t(e);for(_i(r)&&(r=r.host);Oe(r)&&["html","body"].indexOf(Be(r))<0;){var a=Xe(r);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||n&&a.willChange==="filter"||n&&a.filter&&a.filter!=="none")return r;r=r.parentNode}return null}function St(e){for(var n=de(e),t=sm(e);t&&pc(t)&&Xe(t).position==="static";)t=sm(t);return t&&(Be(t)==="html"||Be(t)==="body"&&Xe(t).position==="static")?n:t||Ev(e)||n}function qn(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Un(e,n,t){return Lt(e,Pn(n,t))}function lm(e,n,t){var i=Un(e,n,t);return i>t?t:i}function Nr(){return{top:0,right:0,bottom:0,left:0}}function Yr(e){return Object.assign({},Nr(),e)}function _r(e,n){return n.reduce(function(t,i){return t[i]=e,t},{})}var Tv=function(n,t){return n=typeof n=="function"?n(Object.assign({},t.rects,{placement:t.placement})):n,Yr(typeof n!="number"?n:_r(n,hn))};function Cv(e){var n,t=e.state,i=e.name,r=e.options,a=t.elements.arrow,o=t.modifiersData.popperOffsets,s=De(t.placement),l=qn(s),c=[ve,Se].indexOf(s)>=0,u=c?"height":"width";if(!(!a||!o)){var d=Tv(r.padding,t),m=Hn(a),p=l==="y"?ye:ve,f=l==="y"?Ce:Se,b=t.rects.reference[u]+t.rects.reference[l]-o[l]-t.rects.popper[u],h=o[l]-t.rects.reference[l],k=St(a),A=k?l==="y"?k.clientHeight||0:k.clientWidth||0:0,S=b/2-h/2,T=d[p],M=A-m[u]-d[f],E=A/2-m[u]/2+S,O=Un(T,E,M),N=l;t.modifiersData[i]=(n={},n[N]=O,n.centerOffset=O-E,n)}}function Ov(e){var n=e.state,t=e.options,i=t.element,r=i===void 0?"[data-popper-arrow]":i;r!=null&&(typeof r=="string"&&(r=n.elements.popper.querySelector(r),!r)||zr(n.elements.popper,r)&&(n.elements.arrow=r))}var cm={name:"arrow",enabled:!0,phase:"main",fn:Cv,effect:Ov,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ht(e){return e.split("-")[1]}var Mv={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Iv(e,n){var t=e.x,i=e.y,r=n.devicePixelRatio||1;return{x:jt(t*r)/r||0,y:jt(i*r)/r||0}}function um(e){var n,t=e.popper,i=e.popperRect,r=e.placement,a=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,m=o.x,p=m===void 0?0:m,f=o.y,b=f===void 0?0:f,h=typeof u=="function"?u({x:p,y:b}):{x:p,y:b};p=h.x,b=h.y;var k=o.hasOwnProperty("x"),A=o.hasOwnProperty("y"),S=ve,T=ye,M=window;if(c){var E=St(t),O="clientHeight",N="clientWidth";if(E===de(t)&&(E=_e(t),Xe(E).position!=="static"&&s==="absolute"&&(O="scrollHeight",N="scrollWidth")),E=E,r===ye||(r===ve||r===Se)&&a===_n){T=Ce;var B=d&&E===M&&M.visualViewport?M.visualViewport.height:E[O];b-=B-i.height,b*=l?1:-1}if(r===ve||(r===ye||r===Ce)&&a===_n){S=Se;var z=d&&E===M&&M.visualViewport?M.visualViewport.width:E[N];p-=z-i.width,p*=l?1:-1}}var V=Object.assign({position:s},c&&Mv),$=u===!0?Iv({x:p,y:b},de(t)):{x:p,y:b};if(p=$.x,b=$.y,l){var D;return Object.assign({},V,(D={},D[T]=A?"0":"",D[S]=k?"0":"",D.transform=(M.devicePixelRatio||1)<=1?"translate("+p+"px, "+b+"px)":"translate3d("+p+"px, "+b+"px, 0)",D))}return Object.assign({},V,(n={},n[T]=A?b+"px":"",n[S]=k?p+"px":"",n.transform="",n))}function Fv(e){var n=e.state,t=e.options,i=t.gpuAcceleration,r=i===void 0?!0:i,a=t.adaptive,o=a===void 0?!0:a,s=t.roundOffsets,l=s===void 0?!0:s,c={placement:De(n.placement),variation:ht(n.placement),popper:n.elements.popper,popperRect:n.rects.popper,gpuAcceleration:r,isFixed:n.options.strategy==="fixed"};n.modifiersData.popperOffsets!=null&&(n.styles.popper=Object.assign({},n.styles.popper,um(Object.assign({},c,{offsets:n.modifiersData.popperOffsets,position:n.options.strategy,adaptive:o,roundOffsets:l})))),n.modifiersData.arrow!=null&&(n.styles.arrow=Object.assign({},n.styles.arrow,um(Object.assign({},c,{offsets:n.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-placement":n.placement})}var dm={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Fv,data:{}};var $o={passive:!0};function Rv(e){var n=e.state,t=e.instance,i=e.options,r=i.scroll,a=r===void 0?!0:r,o=i.resize,s=o===void 0?!0:o,l=de(n.elements.popper),c=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&c.forEach(function(u){u.addEventListener("scroll",t.update,$o)}),s&&l.addEventListener("resize",t.update,$o),function(){a&&c.forEach(function(u){u.removeEventListener("scroll",t.update,$o)}),s&&l.removeEventListener("resize",t.update,$o)}}var pm={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Rv,data:{}};var Bv={left:"right",right:"left",bottom:"top",top:"bottom"};function Hi(e){return e.replace(/left|right|bottom|top/g,function(n){return Bv[n]})}var Dv={start:"end",end:"start"};function Go(e){return e.replace(/start|end/g,function(n){return Dv[n]})}function Wn(e){var n=de(e),t=n.pageXOffset,i=n.pageYOffset;return{scrollLeft:t,scrollTop:i}}function Vn(e){return gt(_e(e)).left+Wn(e).scrollLeft}function mc(e,n){var t=de(e),i=_e(e),r=t.visualViewport,a=i.clientWidth,o=i.clientHeight,s=0,l=0;if(r){a=r.width,o=r.height;var c=Kr();(c||!c&&n==="fixed")&&(s=r.offsetLeft,l=r.offsetTop)}return{width:a,height:o,x:s+Vn(e),y:l}}function fc(e){var n,t=_e(e),i=Wn(e),r=(n=e.ownerDocument)==null?void 0:n.body,a=Lt(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),o=Lt(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-i.scrollLeft+Vn(e),l=-i.scrollTop;return Xe(r||t).direction==="rtl"&&(s+=Lt(t.clientWidth,r?r.clientWidth:0)-a),{width:a,height:o,x:s,y:l}}function jn(e){var n=Xe(e),t=n.overflow,i=n.overflowX,r=n.overflowY;return/auto|scroll|overlay|hidden/.test(t+r+i)}function Zo(e){return["html","body","#document"].indexOf(Be(e))>=0?e.ownerDocument.body:Oe(e)&&jn(e)?e:Zo($t(e))}function yn(e,n){var t;n===void 0&&(n=[]);var i=Zo(e),r=i===((t=e.ownerDocument)==null?void 0:t.body),a=de(i),o=r?[a].concat(a.visualViewport||[],jn(i)?i:[]):i,s=n.concat(o);return r?s:s.concat(yn($t(o)))}function qi(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Kv(e,n){var t=gt(e,!1,n==="fixed");return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function mm(e,n,t){return n===Vo?qi(mc(e,t)):ft(n)?Kv(n,t):qi(fc(_e(e)))}function zv(e){var n=yn($t(e)),t=["absolute","fixed"].indexOf(Xe(e).position)>=0,i=t&&Oe(e)?St(e):e;return ft(i)?n.filter(function(r){return ft(r)&&zr(r,i)&&Be(r)!=="body"}):[]}function gc(e,n,t,i){var r=n==="clippingParents"?zv(e):[].concat(n),a=[].concat(r,[t]),o=a[0],s=a.reduce(function(l,c){var u=mm(e,c,i);return l.top=Lt(u.top,l.top),l.right=Pn(u.right,l.right),l.bottom=Pn(u.bottom,l.bottom),l.left=Lt(u.left,l.left),l},mm(e,o,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Pr(e){var n=e.reference,t=e.element,i=e.placement,r=i?De(i):null,a=i?ht(i):null,o=n.x+n.width/2-t.width/2,s=n.y+n.height/2-t.height/2,l;switch(r){case ye:l={x:o,y:n.y-t.height};break;case Ce:l={x:o,y:n.y+n.height};break;case Se:l={x:n.x+n.width,y:s};break;case ve:l={x:n.x-t.width,y:s};break;default:l={x:n.x,y:n.y}}var c=r?qn(r):null;if(c!=null){var u=c==="y"?"height":"width";switch(a){case Vt:l[c]=l[c]-(n[u]/2-t[u]/2);break;case _n:l[c]=l[c]+(n[u]/2-t[u]/2);break;default:}}return l}function Et(e,n){n===void 0&&(n={});var t=n,i=t.placement,r=i===void 0?e.placement:i,a=t.strategy,o=a===void 0?e.strategy:a,s=t.boundary,l=s===void 0?im:s,c=t.rootBoundary,u=c===void 0?Vo:c,d=t.elementContext,m=d===void 0?Yi:d,p=t.altBoundary,f=p===void 0?!1:p,b=t.padding,h=b===void 0?0:b,k=Yr(typeof h!="number"?h:_r(h,hn)),A=m===Yi?rm:Yi,S=e.rects.popper,T=e.elements[f?A:m],M=gc(ft(T)?T:T.contextElement||_e(e.elements.popper),l,u,o),E=gt(e.elements.reference),O=Pr({reference:E,element:S,strategy:"absolute",placement:r}),N=qi(Object.assign({},S,O)),B=m===Yi?N:E,z={top:M.top-B.top+k.top,bottom:B.bottom-M.bottom+k.bottom,left:M.left-B.left+k.left,right:B.right-M.right+k.right},V=e.modifiersData.offset;if(m===Yi&&V){var $=V[r];Object.keys(z).forEach(function(D){var U=[Se,Ce].indexOf(D)>=0?1:-1,W=[ye,Ce].indexOf(D)>=0?"y":"x";z[D]+=$[W]*U})}return z}function hc(e,n){n===void 0&&(n={});var t=n,i=t.placement,r=t.boundary,a=t.rootBoundary,o=t.padding,s=t.flipVariations,l=t.allowedAutoPlacements,c=l===void 0?jo:l,u=ht(i),d=u?s?dc:dc.filter(function(f){return ht(f)===u}):hn,m=d.filter(function(f){return c.indexOf(f)>=0});m.length===0&&(m=d);var p=m.reduce(function(f,b){return f[b]=Et(e,{placement:b,boundary:r,rootBoundary:a,padding:o})[De(b)],f},{});return Object.keys(p).sort(function(f,b){return p[f]-p[b]})}function Nv(e){if(De(e)===Wo)return[];var n=Hi(e);return[Go(e),n,Go(n)]}function Yv(e){var n=e.state,t=e.options,i=e.name;if(!n.modifiersData[i]._skip){for(var r=t.mainAxis,a=r===void 0?!0:r,o=t.altAxis,s=o===void 0?!0:o,l=t.fallbackPlacements,c=t.padding,u=t.boundary,d=t.rootBoundary,m=t.altBoundary,p=t.flipVariations,f=p===void 0?!0:p,b=t.allowedAutoPlacements,h=n.options.placement,k=De(h),A=k===h,S=l||(A||!f?[Hi(h)]:Nv(h)),T=[h].concat(S).reduce(function(Ae,qe){return Ae.concat(De(qe)===Wo?hc(n,{placement:qe,boundary:u,rootBoundary:d,padding:c,flipVariations:f,allowedAutoPlacements:b}):qe)},[]),M=n.rects.reference,E=n.rects.popper,O=new Map,N=!0,B=T[0],z=0;z=0,W=U?"width":"height",Q=Et(n,{placement:V,boundary:u,rootBoundary:d,altBoundary:m,padding:c}),ee=U?D?Se:ve:D?Ce:ye;M[W]>E[W]&&(ee=Hi(ee));var Pe=Hi(ee),Ie=[];if(a&&Ie.push(Q[$]<=0),s&&Ie.push(Q[ee]<=0,Q[Pe]<=0),Ie.every(function(Ae){return Ae})){B=V,N=!1;break}O.set(V,Ie)}if(N)for(var v=f?3:1,He=function(qe){var Yt=T.find(function(_t){var se=O.get(_t);if(se)return se.slice(0,qe).every(function(Pt){return Pt})});if(Yt)return B=Yt,"break"},$e=v;$e>0;$e--){var w=He($e);if(w==="break")break}n.placement!==B&&(n.modifiersData[i]._skip=!0,n.placement=B,n.reset=!0)}}var fm={name:"flip",enabled:!0,phase:"main",fn:Yv,requiresIfExists:["offset"],data:{_skip:!1}};function gm(e,n,t){return t===void 0&&(t={x:0,y:0}),{top:e.top-n.height-t.y,right:e.right-n.width+t.x,bottom:e.bottom-n.height+t.y,left:e.left-n.width-t.x}}function hm(e){return[ye,Se,Ce,ve].some(function(n){return e[n]>=0})}function _v(e){var n=e.state,t=e.name,i=n.rects.reference,r=n.rects.popper,a=n.modifiersData.preventOverflow,o=Et(n,{elementContext:"reference"}),s=Et(n,{altBoundary:!0}),l=gm(o,i),c=gm(s,r,a),u=hm(l),d=hm(c);n.modifiersData[t]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var ym={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:_v};function Pv(e,n,t){var i=De(e),r=[ve,ye].indexOf(i)>=0?-1:1,a=typeof t=="function"?t(Object.assign({},n,{placement:e})):t,o=a[0],s=a[1];return o=o||0,s=(s||0)*r,[ve,Se].indexOf(i)>=0?{x:s,y:o}:{x:o,y:s}}function Hv(e){var n=e.state,t=e.options,i=e.name,r=t.offset,a=r===void 0?[0,0]:r,o=jo.reduce(function(u,d){return u[d]=Pv(d,n.rects,a),u},{}),s=o[n.placement],l=s.x,c=s.y;n.modifiersData.popperOffsets!=null&&(n.modifiersData.popperOffsets.x+=l,n.modifiersData.popperOffsets.y+=c),n.modifiersData[i]=o}var bm={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Hv};function qv(e){var n=e.state,t=e.name;n.modifiersData[t]=Pr({reference:n.rects.reference,element:n.rects.popper,strategy:"absolute",placement:n.placement})}var vm={name:"popperOffsets",enabled:!0,phase:"read",fn:qv,data:{}};function yc(e){return e==="x"?"y":"x"}function Uv(e){var n=e.state,t=e.options,i=e.name,r=t.mainAxis,a=r===void 0?!0:r,o=t.altAxis,s=o===void 0?!1:o,l=t.boundary,c=t.rootBoundary,u=t.altBoundary,d=t.padding,m=t.tether,p=m===void 0?!0:m,f=t.tetherOffset,b=f===void 0?0:f,h=Et(n,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),k=De(n.placement),A=ht(n.placement),S=!A,T=qn(k),M=yc(T),E=n.modifiersData.popperOffsets,O=n.rects.reference,N=n.rects.popper,B=typeof b=="function"?b(Object.assign({},n.rects,{placement:n.placement})):b,z=typeof B=="number"?{mainAxis:B,altAxis:B}:Object.assign({mainAxis:0,altAxis:0},B),V=n.modifiersData.offset?n.modifiersData.offset[n.placement]:null,$={x:0,y:0};if(E){if(a){var D,U=T==="y"?ye:ve,W=T==="y"?Ce:Se,Q=T==="y"?"height":"width",ee=E[T],Pe=ee+h[U],Ie=ee-h[W],v=p?-N[Q]/2:0,He=A===Vt?O[Q]:N[Q],$e=A===Vt?-N[Q]:-O[Q],w=n.elements.arrow,Ae=p&&w?Hn(w):{width:0,height:0},qe=n.modifiersData["arrow#persistent"]?n.modifiersData["arrow#persistent"].padding:Nr(),Yt=qe[U],_t=qe[W],se=Un(0,O[Q],Ae[Q]),Pt=S?O[Q]/2-v-se-Yt-z.mainAxis:He-se-Yt-z.mainAxis,dt=S?-O[Q]/2+v+se+_t+z.mainAxis:$e+se+_t+z.mainAxis,Mt=n.elements.arrow&&St(n.elements.arrow),en=Mt?T==="y"?Mt.clientTop||0:Mt.clientLeft||0:0,Ai=(D=V?.[T])!=null?D:0,ja=ee+Pt-Ai-en,$a=ee+dt-Ai,nr=Un(p?Pn(Pe,ja):Pe,ee,p?Lt(Ie,$a):Ie);E[T]=nr,$[T]=nr-ee}if(s){var Ga,Za=T==="x"?ye:ve,Qa=T==="x"?Ce:Se,Ht=E[M],xi=M==="y"?"height":"width",Ja=Ht+h[Za],Xa=Ht-h[Qa],ir=[ye,ve].indexOf(k)!==-1,C=(Ga=V?.[M])!=null?Ga:0,R=ir?Ja:Ht-O[xi]-N[xi]-C+z.altAxis,j=ir?Ht+O[xi]+N[xi]-C-z.altAxis:Xa,Z=p&&ir?lm(R,Ht,j):Un(p?R:Ja,Ht,p?j:Xa);E[M]=Z,$[M]=Z-Ht}n.modifiersData[i]=$}}var km={name:"preventOverflow",enabled:!0,phase:"main",fn:Uv,requiresIfExists:["offset"]};function bc(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function vc(e){return e===de(e)||!Oe(e)?Wn(e):bc(e)}function Wv(e){var n=e.getBoundingClientRect(),t=jt(n.width)/e.offsetWidth||1,i=jt(n.height)/e.offsetHeight||1;return t!==1||i!==1}function kc(e,n,t){t===void 0&&(t=!1);var i=Oe(n),r=Oe(n)&&Wv(n),a=_e(n),o=gt(e,r,t),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!t)&&((Be(n)!=="body"||jn(a))&&(s=vc(n)),Oe(n)?(l=gt(n,!0),l.x+=n.clientLeft,l.y+=n.clientTop):a&&(l.x=Vn(a))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function Vv(e){var n=new Map,t=new Set,i=[];e.forEach(function(a){n.set(a.name,a)});function r(a){t.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(s){if(!t.has(s)){var l=n.get(s);l&&r(l)}}),i.push(a)}return e.forEach(function(a){t.has(a.name)||r(a)}),i}function wc(e){var n=Vv(e);return am.reduce(function(t,i){return t.concat(n.filter(function(r){return r.phase===i}))},[])}function Ac(e){var n;return function(){return n||(n=new Promise(function(t){Promise.resolve().then(function(){n=void 0,t(e())})})),n}}function xc(e){var n=e.reduce(function(t,i){var r=t[i.name];return t[i.name]=r?Object.assign({},r,i,{options:Object.assign({},r.options,i.options),data:Object.assign({},r.data,i.data)}):i,t},{});return Object.keys(n).map(function(t){return n[t]})}var wm={placement:"bottom",modifiers:[],strategy:"absolute"};function Am(){for(var e=arguments.length,n=new Array(e),t=0;t(e%n+n)%n,Sc=class{constructor(n,t,i){this.owner=n,this.containerEl=t,t.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),t.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),i.register([],"ArrowUp",r=>{if(!r.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),i.register([],"ArrowDown",r=>{if(!r.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),i.register([],"Enter",r=>{if(!r.isComposing)return this.useSelectedItem(r),!1})}onSuggestionClick(n,t){n.preventDefault();let i=this.suggestions.indexOf(t);this.setSelectedItem(i,!1),this.useSelectedItem(n)}onSuggestionMouseover(n,t){let i=this.suggestions.indexOf(t);this.setSelectedItem(i,!1)}setSuggestions(n){this.containerEl.empty();let t=[];n.forEach(i=>{let r=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(i,r),t.push(r)}),this.values=n,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(n){let t=this.values[this.selectedItem];t&&this.owner.selectSuggestion(t,n)}setSelectedItem(n,t){let i=$v(n,this.suggestions.length),r=this.suggestions[this.selectedItem],a=this.suggestions[i];r?.removeClass("is-selected"),a?.addClass("is-selected"),this.selectedItem=i,t&&a.scrollIntoView(!1)}},bn=class{constructor(n,t){this.app=n,this.inputEl=t,this.scope=new Lm.Scope,this.suggestEl=createDiv("suggestion-container");let i=this.suggestEl.createDiv("suggestion");this.suggest=new Sc(this,i,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",r=>{r.preventDefault()})}onInputChanged(){let n=this.inputEl.value,t=this.getSuggestions(n);if(!t){this.close();return}t.length>0?(this.suggest.setSuggestions(t),this.open(this.app.dom.appContainerEl,this.inputEl)):this.close()}open(n,t){this.app.keymap.pushScope(this.scope),n.appendChild(this.suggestEl),this.popper=Lc(t,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:i,instance:r})=>{let a=`${i.rects.reference.width}px`;i.styles.popper.width!==a&&(i.styles.popper.width=a,r.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}};var Sm=require("obsidian"),Hr=class extends bn{constructor(t,i,r=[]){super(t,i);this.app=t;this.inputEl=i;this.valuesToExclude=r}getSuggestions(t){let i=this.app.vault.getAllLoadedFiles().filter(s=>s instanceof Sm.TFile&&s.path.endsWith(".md")).map(s=>s.path);if(!i)return[];let r=i.filter(s=>!this.valuesToExclude.includes(s)||s===this.inputEl.getAttribute("fileName")),a=[],o=t.toLowerCase();return r.forEach(s=>{s.toLowerCase().contains(o)&&a.push(s)}),a}renderSuggestion(t,i){i.setText(t)}selectSuggestion(t){this.inputEl.setAttribute("fileName",t),this.inputEl.value=t,this.inputEl.trigger("input"),this.close()}};var Em=require("obsidian");var Qo=class extends Em.Modal{constructor(n,t){if(super(n),this.modalEl.addClass("confirm-modal"),this.contentEl.createEl("h3",{text:x("parse-results-heading-text"),cls:"modal-heading"}),t?.customReplacements.size>0){this.contentEl.createEl("p",{text:x("file-parse-description-text").replace("{FILE}",t.filePath)}).id="confirm-dialog";let i=this.contentEl.createDiv().createEl("table",{cls:"markdown-rendered"}),r=i.createEl("tr");r.createEl("th",{text:x("find-header-text")}),r.createEl("th",{text:x("replace-header-text")});let a;for(let o of t.customReplacements)a=i.createEl("tr"),a.createEl("td",{text:o[0]}),a.createEl("td",{text:o[1]})}else this.contentEl.createEl("p",{text:x("no-parsed-values-found-text").replaceAll("{FILE}",t.filePath),cls:"modal-warn"});this.contentEl.createDiv("modal-button-container",i=>{i.createEl("button",{text:x("close-button-text")}).addEventListener("click",()=>this.close())})}};var Jo=class extends Uo{constructor(t,i,r,a,o,s){super(t,x(o),x(s),x("options.custom-auto-correct.warning-text").replace("{NAME}",x("rules.auto-correct-common-misspellings.name")),x("options.custom-auto-correct.add-new-replacement-file-tooltip"),x("options.custom-auto-correct.refresh-tooltip-text"),r,a,()=>{this.selectedFiles=[];for(let c of this.filesPicked)this.selectedFiles.push(c.filePath);let l={filePath:"",customReplacements:null};this.filesPicked.push(l),this.selectedFiles.push(""),this.saveSettings(),this.addPickedFile(l,this.filesPicked.length-1,!0)},async()=>{for(let l of this.filesPicked)if(l.filePath!=""){let c=this.getFileFromPath(l.filePath);c&&(l.customReplacements=Mi(an(await this.app.vault.cachedRead(c))))}});this.filesPicked=i;this.selectedFiles=[];this.display(),this.inputElDiv.addClass("linter-folder-ignore-container")}showInputEls(){this.filesPicked.forEach((t,i)=>{this.addPickedFile(t,i)})}addPickedFile(t,i,r=!1){let a;new Ui.Setting(this.inputElDiv).addSearch(s=>{new Hr(this.app,s.inputEl,this.selectedFiles),s.setPlaceholder(x("options.custom-auto-correct.file-search-placeholder-text")).setValue(t.filePath).onChange(async l=>{let c=l;if(c===""||c===s.inputEl.getAttribute("fileName")){let u=this.getFileFromPath(c);t.filePath=c,u?(t.customReplacements=Mi(an(await this.app.vault.read(u))),a.disabled=!1,a.extraSettingsEl.addClass("clickable-icon")):(a.disabled=!0,t.customReplacements=null,a.extraSettingsEl.removeClass("clickable-icon")),this.filesPicked[i]=t,this.saveSettings()}}),s.inputEl.setAttr("tabIndex",i),s.inputEl.addClass("linter-folder-ignore"),r&&s.inputEl.focus()}).addExtraButton(s=>{a=s,s.setIcon("info").setTooltip(x("options.custom-auto-correct.show-parsed-contents-tooltip")).onClick(()=>{new Qo(this.app,t).open()}),t.filePath===""&&(s.disabled=!0,s.extraSettingsEl.removeClass("clickable-icon"))}).addExtraButton(s=>{s.setIcon("trash").setTooltip(x("options.custom-auto-correct.delete-tooltip")).onClick(()=>{this.filesPicked.splice(i,1),this.saveSettings(),this.resetInputEls()})}).settingEl.addClass("linter-no-border")}getFileFromPath(t){let i=this.app.vault.getAbstractFileByPath((0,Ui.normalizePath)(t));return i instanceof Ui.TFile?i:null}};var vn=class{constructor(n,t,i,r,a){this.configKey=n;this.nameKey=t;this.descriptionKey=i;this.defaultValue=r;a&&(this.ruleAlias=a)}getName(){return x(this.nameKey)??""}getDescription(){return x(this.descriptionKey)??""}getSearchInfo(){return{name:this.getName(),description:this.getDescription()}}setOption(n,t){t.ruleConfigs[this.ruleAlias][this.configKey]=n}parseNameAndDescriptionAndRemoveSettingBorder(){it(this.getName(),this.setting.nameEl),it(this.getDescription(),this.setting.descEl),this.setting.settingEl.addClass("linter-no-border"),this.setting.descEl.addClass("linter-no-padding-top")}hide(){Te(this.setting.settingEl)}unhide(){Ye(this.setting.settingEl)}},kn=class extends vn{constructor(t,i,r,a,o,s){super(t,i,r,a,o);this.onChange=s}display(t,i,r){this.setting=new Wi.Setting(t).addToggle(a=>{this.toggleComponent=a,a.setValue(i.ruleConfigs[this.ruleAlias][this.configKey]),a.onChange(o=>{this.setOption(o,i),r.settings=i,this.onChange&&this.onChange(o,r.app),r.saveSettings()})}),this.parseNameAndDescriptionAndRemoveSettingBorder()}getValue(){return this.toggleComponent.getValue()}setValue(t){this.toggleComponent.setValue(t)}},qr=class extends vn{display(n,t,i){this.setting=new Wi.Setting(n).addText(r=>{r.setValue(t.ruleConfigs[this.ruleAlias][this.configKey]),r.onChange(a=>{this.setOption(a,t),i.settings=t,i.saveSettings()})}),this.parseNameAndDescriptionAndRemoveSettingBorder()}},Xo=class extends vn{display(n,t,i){this.setting=new Wi.Setting(n).addTextArea(r=>{r.setValue(t.ruleConfigs[this.ruleAlias][this.configKey]),r.onChange(a=>{this.setOption(a,t),i.settings=t,i.saveSettings()})}),this.parseNameAndDescriptionAndRemoveSettingBorder()}},es=class extends vn{display(n,t,i){this.setting=new Wi.Setting(n).addMomentFormat(r=>{r.setValue(t.ruleConfigs[this.ruleAlias][this.configKey]),r.setPlaceholder("dddd, MMMM Do YYYY, h:mm:ss a"),r.onChange(a=>{this.setOption(a,t),i.settings=t,i.saveSettings()})}),this.parseNameAndDescriptionAndRemoveSettingBorder()}},ts=class{constructor(n,t){this.value=n,this.description=t}getDisplayValue(){return x(this.value)??""}},ns=class extends vn{constructor(n,t,i,r,a,o){super(n,t,i,r,o),this.options=a}getSearchInfo(){return{name:this.getName(),description:this.getDescription(),options:this.options}}display(n,t,i){this.setting=new Wi.Setting(n).addDropdown(r=>{for(let a of this.options)r.addOption(a.value.replace("enums.",""),a.getDisplayValue());r.setValue(t.ruleConfigs[this.ruleAlias][this.configKey]),r.onChange(a=>{this.setOption(a,t),i.settings=t,i.saveSettings()})}),this.parseNameAndDescriptionAndRemoveSettingBorder()}},is=class extends vn{constructor(n,t,i,r){super(n,t,i,[],r)}display(n,t,i){t.ruleConfigs[this.ruleAlias][this.configKey]=t.ruleConfigs[this.ruleAlias][this.configKey]??[],this.settingEl=n.createDiv(),new Jo(this.settingEl,t.ruleConfigs[this.ruleAlias][this.configKey],i.app,()=>{i.saveSettings()},this.nameKey,this.descriptionKey)}hide(){Te(this.settingEl)}unhide(){Ye(this.settingEl)}};var Vi=class e extends Error{constructor(n,t){super(n),this.cause=t??null,this.stack=t.stack??null,Object.setPrototypeOf(this,e.prototype)}};var g={code:{replaceAction:"code",placeholder:"{CODE_BLOCK_PLACEHOLDER}"},inlineCode:{replaceAction:"inlineCode",placeholder:"{INLINE_CODE_BLOCK_PLACEHOLDER}"},image:{replaceAction:"image",placeholder:"{IMAGE_PLACEHOLDER}"},thematicBreak:{replaceAction:"thematicBreak",placeholder:"{HORIZONTAL_RULE_PLACEHOLDER}"},italics:{replaceAction:"emphasis",placeholder:"{ITALICS_PLACEHOLDER}"},bold:{replaceAction:"strong",placeholder:"{STRONG_PLACEHOLDER}"},list:{replaceAction:"list",placeholder:"{LIST_PLACEHOLDER}"},blockquote:{replaceAction:"blockquote",placeholder:"{BLOCKQUOTE_PLACEHOLDER}"},math:{replaceAction:"math",placeholder:"{MATH_PLACEHOLDER}"},inlineMath:{replaceAction:"inlineMath",placeholder:"{INLINE_MATH_PLACEHOLDER}"},html:{replaceAction:"html",placeholder:"{HTML_PLACEHOLDER}"},yaml:{replaceAction:Ne,placeholder:Je(`--- +---`)},wikiLink:{replaceAction:Yo,placeholder:"{WIKI_LINK_PLACEHOLDER}"},obsidianMultiLineComments:{replaceAction:Pp,placeholder:"{OBSIDIAN_COMMENT_PLACEHOLDER}"},footnoteAtStartOfLine:{replaceAction:No,placeholder:"{FOOTNOTE_AT_START_OF_LINE_PLACEHOLDER}"},footnoteAfterATask:{replaceAction:/- \[.] (\[\^\w+\]) ?([,.;!:?])/gm,placeholder:"{FOOTNOTE_AFTER_A_TASK_PLACEHOLDER}"},url:{replaceAction:zn,placeholder:"{URL_PLACEHOLDER}"},anchorTag:{replaceAction:qp,placeholder:"{ANCHOR_PLACEHOLDER}"},templaterCommand:{replaceAction:$p,placeholder:"{TEMPLATER_PLACEHOLDER}"},link:{replaceAction:Qv,placeholder:"{REGULAR_LINK_PLACEHOLDER}"},tag:{replaceAction:Jv,placeholder:"#tag-placeholder"},table:{replaceAction:Xv,placeholder:"{TABLE_PLACEHOLDER}"},customIgnore:{replaceAction:ek,placeholder:"{CUSTOM_IGNORE_PLACEHOLDER}"}};function ke(e,n,t){let i=[];for(let r of e){let a;if(typeof r.replaceAction=="string")a=Gv(n,r.placeholder,r.replaceAction);else if(r.replaceAction instanceof RegExp)a=Zv(n,r.placeholder,r.replaceAction);else if(typeof r.replaceAction=="function"){let o=r.replaceAction;a=o(n,r.placeholder)}n=a.newText,i.push({replacedValues:a.replacedValues,placeholder:r.placeholder})}return n=t(n),i=i.reverse(),i!=null&&i.length>0&&i.forEach(r=>{r.replacedValues.forEach(a=>{n=n.replace(new RegExp(r.placeholder,"i"),Je(a))})}),n}function Gv(e,n,t){let i=ge(t,e),r=[];for(let a of i){let o=e.substring(a.start.offset,a.end.offset);r.push(o),e=le(e,a.start.offset,a.end.offset,n)}return r.reverse(),{newText:e,replacedValues:r}}function Zv(e,n,t){let i=e.match(t),r=[];if(t.flags.includes("g")){if(e=e.replaceAll(t,n),i)for(let a of i)r.push(a)}else e=e.replace(t,n),i&&r.push(i[0]);return{newText:e,replacedValues:r}}function Qv(e,n){let t=ge("link",e),i=[];for(let r of t){if(r==null)continue;let a=e.substring(r.start.offset,r.end.offset);a.match(Ir)&&(i.push(a),e=le(e,r.start.offset,r.end.offset,n))}return i.reverse(),{newText:e,replacedValues:i}}function Jv(e,n){let t=[];return e=e.replace(Fr,(i,r,a)=>(t.push(a),r+n)),{newText:e,replacedValues:t}}function Xv(e,n){let t=Ii(e),i=new Array(t.length),r=0,a=i.length;for(let o of t)i[a-1-r++]=e.substring(o.startIndex,o.endIndex),e=le(e,o.startIndex,o.endIndex,n);return{newText:e,replacedValues:i}}function ek(e,n){let t=Fp(e),i=new Array(t.length),r=0,a=i.length;for(let o of t)i[a-1-r++]=e.substring(o.startIndex,o.endIndex),e=le(e,o.startIndex,o.endIndex,n);return{newText:e,replacedValues:i}}var K=(o=>(o.YAML="YAML",o.HEADING="Heading",o.FOOTNOTE="Footnote",o.CONTENT="Content",o.SPACING="Spacing",o.PASTE="Paste",o))(K||{}),rs=class{constructor(n,t,i,r,a,o,s=[],l=!1,c=[],u=null){this.nameKey=n;this.descriptionKey=t;this.settingsKey=i;this.alias=r;this.type=a;this.applyAfterIgnore=o;this.options=s;this.hasSpecialExecutionOrder=l;this.ignoreTypes=c;this.ruleHeading=this.getName().toLowerCase().replaceAll(" ","-"),s.unshift(new kn("enabled",this.descriptionKey,"",!1,r,(d,m)=>{if(d&&u&&u(d,m),s.length>1)for(let p=1;pthis.applyAfterIgnore(i,t))}};var Cm=Object.values(K);function as(e){let n=zi(e);if(n===null)return[[],!1];let t=tm(n);return t.includes("all")?[Bt.map(i=>i.alias),!0]:[t,!1]}var Bt=[],lt={},$n=new Map;function Om(e){Bt.push(e),lt[e.alias]=e,$n.has(e.type)?$n.get(e.type).push(e):$n.set(e.type,[e])}function Mm(){Bt.sort((e,n)=>Cm.indexOf(e.type)-Cm.indexOf(n.type)||e.settingsKey.localeCompare(n.settingsKey))}function os(e,n){let t;throw e instanceof Gu?(t=e.toString(),t=x("logs.wrapper-yaml-error").replace("{ERROR_MESSAGE}",t.substring(t.indexOf(":")+1))):t=x("logs.wrapper-unknown-error").replace("{ERROR_MESSAGE}",e.message),new Vi(`"${n}" encountered an ${t}`,e)}var tr=Cn(Im());function tk(e){for(var n=[],t=1;ti.option),n.hasSpecialExecutionOrder,n.ignoreTypes,n.disableConflictingOptions);Y(et,$i).set(this.name,t),Y(et,Ur).set(n.alias,n)}return Y(et,$i).get(this.name)}static applyIfEnabledBase(n,t,i,r){let a=n.getOptions(i);if(a[n.enabledOptionName()]){In(n.alias);let o=Object.assign({},a,r);nt(`${x("logs.run-rule-text")} ${n.getName()}`);try{let s=n.apply(t,o);return rn(n.alias),nt(s),[s,!0]}catch(s){rn(n.alias),os(s,n.getName())}}else return[t,!1]}static getBuilderByName(n){return Y(et,Ur).get(n)}static setNoSettingControl(n,t){Y(et,wn).has(n)||Y(et,wn).set(n,[]),Y(et,wn).get(n).push(t)}static hasSettingControl(n,t){return!Y(et,wn).has(n)||!Y(et,wn).get(n).includes(t)}};$i=new WeakMap,Ur=new WeakMap,wn=new WeakMap,xe(et,$i,new Map),xe(et,Ur,new Map),xe(et,wn,new Map);var An=et,y=class extends An{constructor(n){super(),this.alias=n.nameKey.substring(6,n.nameKey.length-5),this.settingsKey=this.alias,this.nameKey=n.nameKey,this.descriptionKey=n.descriptionKey,this.type=n.type,this.hasSpecialExecutionOrder=n.hasSpecialExecutionOrder??!1,this.disableConflictingOptions=n.disableConflictingOptions??null,n.ruleIgnoreTypes?this.ignoreTypes=[g.customIgnore,...n.ruleIgnoreTypes]:this.ignoreTypes=[g.customIgnore]}static register(n){let t=n.getRule();Om(t)}safeApply(n,t){return this.apply(n,this.buildRuleOptions(t))}buildRuleOptions(n){n=n??{};let t=new this.OptionsClass,i=Object.assign(t,n);for(let r of this.optionBuilders)r.setRuleOption(i,n);return i}static applyIfEnabled(n,t,i,r){let a=this.getRule();return i.includes(a.alias)?(nt(a.alias+" "+x("logs.disabled-text")),[n,!1]):An.applyIfEnabledBase(a,n,t,r)}static getRuleOptions(n){let t=An.getRule.bind(this)(),i=new this,r=t.getOptions(n);return i.buildRuleOptions(r)}static noSettingControl(){return(n,t)=>{let i=n.constructor.name;An.setNoSettingControl(i,t)}}};var Gi,Gt=class{constructor(n){xe(this,Gi,void 0);this.OptionsClass=n.OptionsClass;let t=n.nameKey.split(".");t.length==1?this.configKey=t[0]:this.configKey=t[t.length-2],this.nameKey=n.nameKey,this.descriptionKey=n.descriptionKey,this.optionsKey=n.optionsKey}get defaultValue(){return new this.OptionsClass()[this.optionsKey]}get option(){return Y(this,Gi)||Fe(this,Gi,this.buildOption()),Y(this,Gi)}setRuleOption(n,t){let i=t[this.configKey];i!==void 0&&(n[this.optionsKey]=i)}};Gi=new WeakMap;var q=class extends Gt{constructor(n){super(n),this.onChange=n.onChange??null}buildOption(){return new kn(this.configKey,this.nameKey,this.descriptionKey,this.defaultValue,null,this.onChange)}},ss=class extends Gt{buildOption(){return new qr(this.configKey,this.nameKey,this.descriptionKey,this.defaultValue)}},J=class extends Gt{constructor(n){super(n),this.records=n.records.map(t=>new ts("enums."+t.value,t.description))}buildOption(){return new ns(this.configKey,this.nameKey,this.descriptionKey,this.defaultValue,this.records)}},pe=class extends Gt{constructor(n){super(n),this.separator=n.separator??` +`,this.splitter=n.splitter??/\n/}buildOption(){return new Xo(this.configKey,this.nameKey,this.descriptionKey,this.defaultValue.join(this.separator))}setRuleOption(n,t){if(t[this.configKey]!==void 0){let i=t[this.configKey].split(this.splitter).filter(function(r){return r!=""});n[this.optionsKey]=i}}},we=class extends Gt{buildOption(){return new qr(this.configKey,this.nameKey,this.descriptionKey,this.defaultValue)}},ls=class extends Gt{buildOption(){return new es(this.configKey,this.nameKey,this.descriptionKey,this.defaultValue)}},cs=class extends Gt{buildOption(){return new is(this.configKey,this.nameKey,this.descriptionKey)}};var Ec=class{},xn=class extends y{constructor(){super({nameKey:"rules.add-blank-line-after-yaml.name",descriptionKey:"rules.add-blank-line-after-yaml.description",type:"YAML",hasSpecialExecutionOrder:!0})}get OptionsClass(){return Ec}apply(n,t){let i=n.match(Ne);if(i===null)return n;let r=i[0],a=n.indexOf(r)+r.length;return a+1>=n.length||n.trimEnd()===r.trimEnd()||n.charAt(a+1)===` +`?n:n.replace(r,r+` +`)}get optionBuilders(){return[]}};xn=L([y.register],xn);var Gn=class{constructor(){this.ignoreWords=[];this.extraAutoCorrectFiles=[];this.skipWordsWithMultipleCapitals=!1;this.misspellingToCorrection=new Map}};L([y.noSettingControl()],Gn.prototype,"misspellingToCorrection",2);var Zn=class extends y{constructor(){super({nameKey:"rules.auto-correct-common-misspellings.name",descriptionKey:"rules.auto-correct-common-misspellings.description",type:"Content",hasSpecialExecutionOrder:!0,ruleIgnoreTypes:[g.yaml,g.code,g.inlineCode,g.math,g.inlineMath,g.link,g.wikiLink,g.tag,g.image,g.url]})}get OptionsClass(){return Gn}apply(n,t){return n.replaceAll(Up,i=>this.replaceWordWithCorrectCasing(i,t))}replaceWordWithCorrectCasing(n,t){let i=n.toLowerCase();if(t.ignoreWords.includes(i)||t.skipWordsWithMultipleCapitals&&n.length>1&&i.substring(1)!==n.substring(1))return n;if(t.misspellingToCorrection.has(i))return this.determineCorrectedWord(n,t.misspellingToCorrection.get(i));if(t.extraAutoCorrectFiles){for(let r=0;rthis.updateBlockquoteLines(i,this.addSpaceToIndicator)):ac(n,i=>this.updateBlockquoteLines(i,this.removeSpaceFromIndicator))}removeSpaceFromIndicator(n,t){return t?n.replace(/>[ \t]+>/g,">>"):n.replace(/>[ \t]+/g,">")}addSpaceToIndicator(n,t){let i=n.replace(/>([^ ]|$)/g,"> $1").replace(/>>/g,"> >");return t?i:i.replace(/>(?:[ \t]{2,}|\t+)/g,"> ")}updateBlockquoteLines(n,t){let i=0,r=0,a="",o="",s=0,l=n,c=!1;do{r=l.indexOf(` +`,i),r===-1&&(r=l.length-1,c=!0),[a,s]=Oi(l,r-1);let u=s+a.length+1,d=r;c&&d++;let m=l.substring(u,d);if(m.includes(g.math.placeholder)||m.includes(g.code.placeholder)){i++;continue}let p=zo.test(m);o=t(a,p),s++,l=le(l,s,s+a.length,o),i=r+1+o.length-a.length}while(!c);return l}get optionBuilders(){return[new J({OptionsClass:us,nameKey:"rules.blockquote-style.style.name",descriptionKey:"rules.blockquote-style.style.description",optionsKey:"style",records:[{value:"space",description:"> indicator is followed by a space"},{value:"no space",description:">indicator is not followed by a space"}]})]}};Qn=L([y.register],Qn);var ds=class{};L([y.noSettingControl()],ds.prototype,"lineContent",2);var Jn=class extends y{constructor(){super({nameKey:"rules.add-blockquote-indentation-on-paste.name",descriptionKey:"rules.add-blockquote-indentation-on-paste.description",type:"Paste"})}get OptionsClass(){return ds}apply(n,t){let i=/^(\s*)((> ?)+) .*/,r=t.lineContent.match(i);if(!r)return n;let a=r[1]??"",o=r[2]??"";return n.trim().replace(/\n/gm,` +${a}${o} `)}get optionBuilders(){return[]}};Jn=L([y.register],Jn);var Xn=class{constructor(){this.style="Title Case";this.ignoreWords=["macOS","iOS","iPhone","iPad","JavaScript","TypeScript","AppleScript","I"];this.lowercaseWords=["a","an","the","aboard","about","abt.","above","abreast","absent","across","after","against","along","aloft","alongside","amid","amidst","mid","midst","among","amongst","anti","apropos","around","round","as","aslant","astride","at","atop","ontop","bar","barring","before","B4","behind","below","beneath","neath","beside","besides","between","'tween","beyond","but","by","chez","circa","c.","ca.","come","concerning","contra","counting","cum","despite","spite","down","during","effective","ere","except","excepting","excluding","failing","following","for","from","in","including","inside","into","less","like","minus","modulo","mod","near","nearer","nearest","next","notwithstanding","of","o'","off","offshore","on","onto","opposite","out","outside","over","o'er","pace","past","pending","per","plus","post","pre","pro","qua","re","regarding","respecting","sans","save","saving","short","since","sub","than","through","thru","throughout","thruout","till","times","to","t'","touching","toward","towards","under","underneath","unlike","until","unto","up","upon","versus","vs.","v.","via","vice","vis-\xE0-vis","wanting","with","w/","w.","c\u0304","within","w/i","without","'thout","w/o","abroad","adrift","aft","afterward","afterwards","ahead","apart","ashore","aside","away","back","backward","backwards","beforehand","downhill","downstage","downstairs","downstream","downward","downwards","downwind","east","eastward","eastwards","forth","forward","forwards","heavenward","heavenwards","hence","henceforth","here","hereby","herein","hereof","hereto","herewith","home","homeward","homewards","indoors","inward","inwards","leftward","leftwards","north","northeast","northward","northwards","northwest","now","onward","onwards","outdoors","outward","outwards","overboard","overhead","overland","overseas","rightward","rightwards","seaward","seawards","skywards","skyward","south","southeast","southwards","southward","southwest","then","thence","thenceforth","there","thereby","therein","thereof","thereto","therewith","together","underfoot","underground","uphill","upstage","upstairs","upstream","upward","upwards","upwind","west","westward","westwards","when","whence","where","whereby","wherein","whereto","wherewith","although","because","considering","given","granted","if","lest","once","provided","providing","seeing","so","supposing","though","unless","whenever","whereas","wherever","while","whilst","ago","according to","as regards","counter to","instead of","owing to","pertaining to","at the behest of","at the expense of","at the hands of","at risk of","at the risk of","at variance with","by dint of","by means of","by virtue of","by way of","for the sake of","for sake of","for lack of","for want of","from want of","in accordance with","in addition to","in case of","in charge of","in compliance with","in conformity with","in contact with","in exchange for","in favor of","in front of","in lieu of","in light of","in the light of","in line with","in place of","in point of","in quest of","in relation to","in regard to","with regard to","in respect to","with respect to","in return for","in search of","in step with","in touch with","in terms of","in the name of","in view of","on account of","on behalf of","on grounds of","on the grounds of","on the part of","on top of","with a view to","with the exception of","\xE0 la","a la","as soon as","as well as","close to","due to","far from","in case","other than","prior to","pursuant to","regardless of","subsequent to","as long as","as much as","as far as","by the time","in as much as","inasmuch","in order to","in order that","even","provide that","if only","whether","whose","whoever","why","how","or not","whatever","what","both","and","or","not only","but also","either","neither","nor","just","rather","no sooner","such","that","yet","is","it"];this.ignoreCasedWords=!0}},ei=class extends y{constructor(){super({nameKey:"rules.capitalize-headings.name",descriptionKey:"rules.capitalize-headings.description",type:"Heading",hasSpecialExecutionOrder:!0,ruleIgnoreTypes:[g.code,g.inlineCode,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Xn}apply(n,t){return n.replace(pn,i=>{if(t.style==="ALL CAPS")return i.toUpperCase();let r=t.style==="First letter",a=i.match(/\S+/g),o=t.ignoreWords,s=t.lowercaseWords,l=!0;for(let c=1;c(i=i.replace(/^---\n+/,`--- +`),i=i.replace(/\n+---/,` +---`),t.innerNewLines&&(i=i.replaceAll(/\n{2,}/g,` +`)),i))}get optionBuilders(){return[new q({OptionsClass:ps,nameKey:"rules.compact-yaml.inner-new-lines.name",descriptionKey:"rules.compact-yaml.inner-new-lines.description",optionsKey:"innerNewLines"})]}};Wr=L([y.register],Wr);var Tc=class{},ti=class extends y{constructor(){super({nameKey:"rules.consecutive-blank-lines.name",descriptionKey:"rules.consecutive-blank-lines.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag],hasSpecialExecutionOrder:!0})}get OptionsClass(){return Tc}apply(n,t){return n.replace(/(\n([\t\v\f\r \u00a0\u2000-\u200b\u2028-\u2029\u3000]+)?){2,}\n/g,` + +`)}get optionBuilders(){return[]}};ti=L([y.register],ti);var Cc=class{},Vr=class extends y{constructor(){super({nameKey:"rules.convert-bullet-list-markers.name",descriptionKey:"rules.convert-bullet-list-markers.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Cc}apply(n,t){return n.replace(/^([^\S\n]*)([•§])([^\S\n]*)/gm,"$1-$3")}get optionBuilders(){return[]}};Vr=L([y.register],Vr);var ms=class{constructor(){this.tabsize=4}},jr=class extends y{constructor(){super({nameKey:"rules.convert-spaces-to-tabs.name",descriptionKey:"rules.convert-spaces-to-tabs.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return ms}apply(n,t){let i=String(t.tabsize),r=new RegExp("^( *) {"+i+"}","gm");n=this.replaceAllRegexMatches(n,r);let a=new RegExp("^((>( | *))*(>( | )) *) {"+i+"}","gm");return n=this.replaceAllRegexMatches(n,a),n}replaceAllRegexMatches(n,t){for(;n.match(t)!=null;)n=n.replace(t,"$1 ");return n}get optionBuilders(){return[new ss({OptionsClass:ms,nameKey:"rules.convert-spaces-to-tabs.tabsize.name",descriptionKey:"rules.convert-spaces-to-tabs.tabsize.description",optionsKey:"tabsize"})]}};jr=L([y.register],jr);var Tt=class{constructor(){this.aliasArrayStyle="single-line";this.dedupeAliasKey=!0;this.tagArrayStyle="single-line";this.dedupeTagKey=!0;this.dedupeArrayKeys=!0;this.ignoreDedupeArrayKeys=[];this.defaultEscapeCharacter='"';this.removeUnnecessaryEscapeCharsForMultiLineArrays=!1}};L([y.noSettingControl()],Tt.prototype,"aliasArrayStyle",2),L([y.noSettingControl()],Tt.prototype,"tagArrayStyle",2),L([y.noSettingControl()],Tt.prototype,"defaultEscapeCharacter",2),L([y.noSettingControl()],Tt.prototype,"removeUnnecessaryEscapeCharsForMultiLineArrays",2);var $r=class extends y{constructor(){super({nameKey:"rules.dedupe-yaml-array-values.name",descriptionKey:"rules.dedupe-yaml-array-values.description",type:"YAML"})}get OptionsClass(){return Tt}apply(n,t){return he(n,i=>{let r=st(i.replace(`--- +`,"").replace(` +---`,""));if(!r)return i;for(let a of At)if(t.dedupeAliasKey&&Object.keys(r).includes(a)){i=ae(i,a,be(gn(this.getUniqueArray(Re(ue(i,a)))),t.aliasArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays,!0));break}for(let a of wt)if(t.dedupeTagKey&&Object.keys(r).includes(a)){i=ae(i,a,be(fn(this.getUniqueArray(Re(ue(i,a)))),t.tagArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays));break}if(t.dedupeArrayKeys){let a=[...At,...wt,...t.ignoreDedupeArrayKeys];for(let o of Object.keys(r)){if(a.includes(o)||!Array.isArray(r[o])||r[o].length!==0&&typeof r[o][0]=="object"&&r[o][0]!==null)continue;let s=ue(i,o),l="single-line";s.includes(` +`)&&(l="multi-line");let c=this.getUniqueArray(Re(s));i=ae(i,o,be(c,l,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays))}}return i})}getUniqueArray(n){return n==null||typeof n=="string"||n.length<=1?n:[...new Set(n)]}get optionBuilders(){return[new q({OptionsClass:Tt,nameKey:"rules.dedupe-yaml-array-values.dedupe-alias-key.name",descriptionKey:"rules.dedupe-yaml-array-values.dedupe-alias-key.description",optionsKey:"dedupeAliasKey"}),new q({OptionsClass:Tt,nameKey:"rules.dedupe-yaml-array-values.dedupe-tag-key.name",descriptionKey:"rules.dedupe-yaml-array-values.dedupe-tag-key.description",optionsKey:"dedupeTagKey"}),new q({OptionsClass:Tt,nameKey:"rules.dedupe-yaml-array-values.dedupe-array-keys.name",descriptionKey:"rules.dedupe-yaml-array-values.dedupe-array-keys.description",optionsKey:"dedupeArrayKeys"}),new pe({OptionsClass:Tt,nameKey:"rules.dedupe-yaml-array-values.ignore-keys.name",descriptionKey:"rules.dedupe-yaml-array-values.ignore-keys.description",optionsKey:"ignoreDedupeArrayKeys"})]}};$r=L([y.register],$r);var fs=class{constructor(){this.defaultLanguage=""}},Gr=class extends y{constructor(){super({nameKey:"rules.default-language-for-code-fences.name",descriptionKey:"rules.default-language-for-code-fences.description",type:"Content",ruleIgnoreTypes:[g.yaml,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return fs}apply(n,t){return Rp(n,t.defaultLanguage)}get optionBuilders(){return[new we({OptionsClass:fs,nameKey:"rules.default-language-for-code-fences.default-language.name",descriptionKey:"rules.default-language-for-code-fences.default-language.description",optionsKey:"defaultLanguage"})]}};Gr=L([y.register],Gr);var gs=class{constructor(){this.style="consistent"}},Zr=class extends y{constructor(){super({nameKey:"rules.emphasis-style.name",descriptionKey:"rules.emphasis-style.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag,g.math,g.inlineMath]})}get OptionsClass(){return gs}apply(n,t){return Ko(n,t.style,"emphasis")}get optionBuilders(){return[new J({OptionsClass:gs,nameKey:"rules.emphasis-style.style.name",descriptionKey:"rules.emphasis-style.style.description",optionsKey:"style",records:[{value:"consistent",description:"Makes sure the first instance of emphasis is the style that will be used throughout the document"},{value:"asterisk",description:"Makes sure * is the emphasis indicator"},{value:"underscore",description:"Makes sure _ is the emphasis indicator"}]})]}};Zr=L([y.register],Zr);var Oc=class{},Qr=class extends y{constructor(){super({nameKey:"rules.empty-line-around-blockquotes.name",descriptionKey:"rules.empty-line-around-blockquotes.description",type:"Spacing"})}get OptionsClass(){return Oc}apply(n,t){return Tp(n)}get optionBuilders(){return[]}};Qr=L([y.register],Qr);var Mc=class{},Jr=class extends y{constructor(){super({nameKey:"rules.empty-line-around-code-fences.name",descriptionKey:"rules.empty-line-around-code-fences.description",type:"Spacing"})}get OptionsClass(){return Mc}apply(n,t){return Sp(n)}get optionBuilders(){return[]}};Jr=L([y.register],Jr);var Ic=class{},Xr=class extends y{constructor(){super({nameKey:"rules.empty-line-around-horizontal-rules.name",descriptionKey:"rules.empty-line-around-horizontal-rules.description",type:"Spacing"})}get OptionsClass(){return Ic}apply(n,t){return Cp(n)}get optionBuilders(){return[]}};Xr=L([y.register],Xr);var hs=class{constructor(){this.minimumNumberOfDollarSignsToBeAMathBlock=2}};L([y.noSettingControl()],hs.prototype,"minimumNumberOfDollarSignsToBeAMathBlock",2);var ea=class extends y{constructor(){super({nameKey:"rules.empty-line-around-math-blocks.name",descriptionKey:"rules.empty-line-around-math-blocks.description",type:"Spacing",ruleIgnoreTypes:[g.yaml,g.code]})}get OptionsClass(){return hs}apply(n,t){return Ep(n,t.minimumNumberOfDollarSignsToBeAMathBlock)}get optionBuilders(){return[]}};ea=L([y.register],ea);var Fc=class{},ta=class extends y{constructor(){super({nameKey:"rules.empty-line-around-tables.name",descriptionKey:"rules.empty-line-around-tables.description",type:"Spacing",ruleIgnoreTypes:[g.yaml,g.code,g.math,g.inlineMath,g.wikiLink,g.link]})}get OptionsClass(){return Fc}apply(n,t){return Qp(n)}get optionBuilders(){return[]}};ta=L([y.register],ta);var na=class{constructor(){this.defaultEscapeCharacter='"';this.tryToEscapeSingleLineArrays=!1}};L([y.noSettingControl()],na.prototype,"defaultEscapeCharacter",2);var ni=class extends y{constructor(){super({nameKey:"rules.escape-yaml-special-characters.name",descriptionKey:"rules.escape-yaml-special-characters.description",type:"YAML",hasSpecialExecutionOrder:!0})}get OptionsClass(){return na}apply(n,t){return he(n,i=>{let r=i.split(` +`),a=r.length;if(a<1)return i;for(let o=0;o=s.length,u=s.startsWith("-"),d=u&&s.length<2;if(c&&d)continue;let m=1;if(!u)m+=l;else if(l!==-1&&o+1{s.createEl("button",{text:x("cancel-button-text")}).addEventListener("click",()=>{a(),this.close()});let l=s.createEl("button",{attr:{type:"submit"},cls:"mod-cta",text:x("ok")});l.addEventListener("click",()=>{this.close(),r()}),setTimeout(()=>{l.focus()},50)})}};var ys=class{};L([y.noSettingControl()],ys.prototype,"fileName",2);var ia=class extends y{constructor(){super({nameKey:"rules.file-name-heading.name",descriptionKey:"rules.file-name-heading.description",type:"Heading",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag],disableConflictingOptions(n,t){let i=lt["header-increment"],r=i.options[0],a=i.options[1];n&&r.getValue()&&new Dt(t,"rules.file-name-heading.name","rules.header-increment.start-at-h2.name",()=>{a.setValue(!1)},()=>{lt["file-name-heading"].options[0].setValue(!1)}).open()}})}get OptionsClass(){return ys}apply(n,t){if(n.match(/^#\s.*/m))return n;let r=t.fileName,a=n.indexOf(` +---`);a=a==-1||!n.startsWith(`--- +`)?0:a+5;let o=`# ${r} +`;return n.length{for(let r of t.forceYamlEscape){let a=ue(i,r);if(a!=null){if(a.includes(` +`)||a.startsWith(" [")||Ni(a))continue;a=xt(a,t.defaultEscapeCharacter,!0),i=ae(i,r," "+a)}}return i})}get optionBuilders(){return[new pe({OptionsClass:aa,nameKey:"rules.force-yaml-escape.force-yaml-escape-keys.name",descriptionKey:"rules.force-yaml-escape.force-yaml-escape-keys.description",optionsKey:"forceYamlEscape"})]}};ii=L([y.register],ii);var Bc=class{},ri=class extends y{constructor(){super({nameKey:"rules.format-tags-in-yaml.name",descriptionKey:"rules.format-tags-in-yaml.description",type:"YAML",hasSpecialExecutionOrder:!0})}get OptionsClass(){return Bc}apply(n,t){return he(n,i=>i.replace(new RegExp(`^(${Dr}|${sc}):[ \\t]*(\\S.*|(?:(?:\\n *- \\S.*)|((?:\\n *- *))*|(\\n([ \\t]+[^\\n]*))*)*)\\n`,"m"),function(r){return r.replaceAll("#","")}))}get optionBuilders(){return[]}};ri=L([y.register],ri);var ct=class{constructor(){this.aliasArrayStyle="single-line";this.formatAliasKey=!0;this.tagArrayStyle="single-line";this.formatTagKey=!0;this.defaultArrayStyle="single-line";this.formatArrayKeys=!0;this.forceSingleLineArrayStyle=[];this.forceMultiLineArrayStyle=[];this.defaultEscapeCharacter='"';this.removeUnnecessaryEscapeCharsForMultiLineArrays=!1}};L([y.noSettingControl()],ct.prototype,"aliasArrayStyle",2),L([y.noSettingControl()],ct.prototype,"tagArrayStyle",2),L([y.noSettingControl()],ct.prototype,"defaultEscapeCharacter",2),L([y.noSettingControl()],ct.prototype,"removeUnnecessaryEscapeCharsForMultiLineArrays",2);var oa=class extends y{constructor(){super({nameKey:"rules.format-yaml-array.name",descriptionKey:"rules.format-yaml-array.description",type:"YAML"})}get OptionsClass(){return ct}apply(n,t){return he(n,i=>{let r=st(i.replace(`--- +`,"").replace(` +---`,""));if(!r)return i;for(let a of At)if(t.formatAliasKey&&Object.keys(r).includes(a)){i=ae(i,a,be(gn(Re(ue(i,a))),t.aliasArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays,!0));break}for(let a of wt)if(t.formatTagKey&&Object.keys(r).includes(a)){i=ae(i,a,be(fn(Re(ue(i,a))),t.tagArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays));break}if(t.formatArrayKeys){let a=[...At,...wt,...t.forceMultiLineArrayStyle,...t.forceSingleLineArrayStyle];for(let o of Object.keys(r))a.includes(o)||!Array.isArray(r[o])||r[o].length!==0&&typeof r[o][0]=="object"&&r[o][0]!==null||(i=ae(i,o,be(Re(ue(i,o)),t.defaultArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays)))}for(let a of t.forceSingleLineArrayStyle)Object.keys(r).includes(a)&&(i=ae(i,a,be(Re(ue(i,a)),"single-line",t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays)));for(let a of t.forceMultiLineArrayStyle)Object.keys(r).includes(a)&&(i=ae(i,a,be(Re(ue(i,a)),"multi-line",t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays)));return i})}get optionBuilders(){return[new q({OptionsClass:ct,nameKey:"rules.format-yaml-array.alias-key.name",descriptionKey:"rules.format-yaml-array.alias-key.description",optionsKey:"formatAliasKey"}),new q({OptionsClass:ct,nameKey:"rules.format-yaml-array.tag-key.name",descriptionKey:"rules.format-yaml-array.tag-key.description",optionsKey:"formatTagKey"}),new J({OptionsClass:ct,nameKey:"rules.format-yaml-array.default-array-style.name",descriptionKey:"rules.format-yaml-array.default-array-style.description",optionsKey:"defaultArrayStyle",records:[{value:"multi-line",description:"```key:\\n - value```"},{value:"single-line",description:"```key: [value]```"}]}),new q({OptionsClass:ct,nameKey:"rules.format-yaml-array.default-array-keys.name",descriptionKey:"rules.format-yaml-array.default-array-keys.description",optionsKey:"formatArrayKeys"}),new pe({OptionsClass:ct,nameKey:"rules.format-yaml-array.force-single-line-array-style.name",descriptionKey:"rules.format-yaml-array.force-single-line-array-style.description",optionsKey:"forceSingleLineArrayStyle"}),new pe({OptionsClass:ct,nameKey:"rules.format-yaml-array.force-multi-line-array-style.name",descriptionKey:"rules.format-yaml-array.force-multi-line-array-style.description",optionsKey:"forceMultiLineArrayStyle"})]}};oa=L([y.register],oa);var bs=class{constructor(){this.startAtH2=!1}},sa=class extends y{constructor(){super({nameKey:"rules.header-increment.name",descriptionKey:"rules.header-increment.description",type:"Heading",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return bs}apply(n,t){let i=0,r=t.startAtH2?2:1,a=[],o=[0,0,0,0,0,0],s=o.length;return n.replace(pn,(l,c="",u="",d="",m="",p="")=>{let f=u.length;if(f=f<=s?f:s,o[f-1]>=0&&f=b;h--)o[h]=0}if(o[f-1]<=0){let b=i,h=a.length+r;h=h<=s?h:s;for(let k=b;k{i.setValue(!1)},()=>{lt["header-increment"].options[1].setValue(!1)}).open()}})]}};sa=L([y.register],sa);var ca=class{constructor(){this.bottom=!0;this.emptyLineAfterYaml=!0}},la=class extends y{constructor(){super({nameKey:"rules.heading-blank-lines.name",descriptionKey:"rules.heading-blank-lines.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink]})}get OptionsClass(){return ca}apply(n,t){return t.bottom?(n=n.replace(/^(#+\s.*)/gm,` + +$1 + +`),n=n.replace(/\n+(#+\s.*)/g,` + +$1`),n=n.replace(/(^#+\s.*)\n+/gm,`$1 + +`)):n=n.replace(/^([^#\n][^\n]+)\n+(#+\s.*)/gm,`$1 + +$2`),n=n.replace(/^\n+(#+\s.*)/,"$1"),n=n.replace(/(#+\s.*)\n+$/,"$1"),t.emptyLineAfterYaml||(n=n.replace(new RegExp("("+Ne.source+")\\n+(#+\\s.*)"),`$1 +$5`)),n}get optionBuilders(){return[new q({OptionsClass:ca,nameKey:"rules.heading-blank-lines.bottom.name",descriptionKey:"rules.heading-blank-lines.bottom.description",optionsKey:"bottom"}),new q({OptionsClass:ca,nameKey:"rules.heading-blank-lines.empty-line-after-yaml.name",descriptionKey:"rules.heading-blank-lines.empty-line-after-yaml.description",optionsKey:"emptyLineAfterYaml"})]}};la=L([y.register],la);var Dc=class{},ua=class extends y{constructor(){super({nameKey:"rules.headings-start-line.name",descriptionKey:"rules.headings-start-line.description",type:"Heading",ruleIgnoreTypes:[g.code,g.math,g.yaml]})}get OptionsClass(){return Dc}apply(n,t){return n.replaceAll(pn,i=>i.trimStart())}get optionBuilders(){return[]}};ua=L([y.register],ua);var vs=class{constructor(){this.textToInsert=["aliases: ","tags: "]}},da=class extends y{constructor(){super({nameKey:"rules.insert-yaml-attributes.name",descriptionKey:"rules.insert-yaml-attributes.description",type:"YAML"})}get OptionsClass(){return vs}apply(n,t){return n=Rt(n),he(n,i=>{let r=t.textToInsert.reverse(),a=st(i.match(Ne)[1]);for(let o of r){let s=o.split(":")[0];Object.prototype.hasOwnProperty.call(a,s)||(i=i.replace(/^---\n/,Je(`--- +${o} +`)))}return i})}get optionBuilders(){return[new pe({OptionsClass:vs,nameKey:"rules.insert-yaml-attributes.text-to-insert.name",descriptionKey:"rules.insert-yaml-attributes.text-to-insert.description",optionsKey:"textToInsert"})]}};da=L([y.register],da);var Kc=class{},pa=class extends y{constructor(){super({nameKey:"rules.line-break-at-document-end.name",descriptionKey:"rules.line-break-at-document-end.description",type:"Spacing"})}get OptionsClass(){return Kc}apply(n,t){return n.length===0||(n=n.replace(/\n+$/g,""),n+=` +`),n}get optionBuilders(){return[]}};pa=L([y.register],pa);var zc=class{},ma=class extends y{constructor(){super({nameKey:"rules.move-footnotes-to-the-bottom.name",descriptionKey:"rules.move-footnotes-to-the-bottom.description",type:"Footnote",ruleIgnoreTypes:[g.code,g.inlineCode,g.math,g.yaml]})}get OptionsClass(){return zc}apply(n,t){return bp(n)}get optionBuilders(){return[]}};ma=L([y.register],ma);var ks=class{constructor(){this.minimumNumberOfDollarSignsToBeAMathBlock=2}};L([y.noSettingControl()],ks.prototype,"minimumNumberOfDollarSignsToBeAMathBlock",2);var ai=class extends y{constructor(){super({nameKey:"rules.move-math-block-indicators-to-their-own-line.name",descriptionKey:"rules.move-math-block-indicators-to-their-own-line.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.inlineCode],hasSpecialExecutionOrder:!0})}get OptionsClass(){return ks}apply(n,t){return Ip(n,t.minimumNumberOfDollarSignsToBeAMathBlock)}get optionBuilders(){return[]}};ai=L([y.register],ai);var Ln=class{constructor(){this.tagArrayStyle="single-line";this.howToHandleExistingTags="Nothing";this.tagsToIgnore=[];this.defaultEscapeCharacter='"';this.removeUnnecessaryEscapeCharsForMultiLineArrays=!1}};L([y.noSettingControl()],Ln.prototype,"tagArrayStyle",2),L([y.noSettingControl()],Ln.prototype,"defaultEscapeCharacter",2),L([y.noSettingControl()],Ln.prototype,"removeUnnecessaryEscapeCharsForMultiLineArrays",2);var fa=class extends y{constructor(){super({nameKey:"rules.move-tags-to-yaml.name",descriptionKey:"rules.move-tags-to-yaml.description",type:"YAML",ruleIgnoreTypes:[g.code,g.inlineCode,g.math,g.html,g.wikiLink,g.link]})}get OptionsClass(){return Ln}apply(n,t){let i;return ke([g.yaml],n,r=>(i=Jp(r),r)),i.length===0||(n=Rt(n),n=he(n,r=>{r=r.replace(`--- +`,"").replace("---","");let a=[],o=Dr;for(let c of wt){let u=ue(r,c);if(u!=null){a=fn(Re(u)),o=c;break}}let s=new Set;if(typeof a=="string")s.add(a),a=[a];else if(a!=null)for(let c of a)s.add(c);else a=[];for(let c of i){let u=c.trim().substring(1);!s.has(u)&&!t.tagsToIgnore.includes(u)&&(s.add(u),a.push(u))}return`--- +${ae(r,o,be(a,t.tagArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays))}---`}),n=ke([g.yaml],n,r=>(t.howToHandleExistingTags!=="Nothing"&&(r=r.replace(Fr,a=>{let o=a.indexOf("#"),s=a.substring(o+1);return t.tagsToIgnore.includes(s)?a:t.howToHandleExistingTags==="Remove hashtag"?a.substring(0,o)+s:""})),r)),n=n.replace(/(\n---)( |\t)+/,"$1")),n}get optionBuilders(){return[new J({OptionsClass:Ln,nameKey:"rules.move-tags-to-yaml.how-to-handle-existing-tags.name",descriptionKey:"rules.move-tags-to-yaml.how-to-handle-existing-tags.description",optionsKey:"howToHandleExistingTags",records:[{value:"Nothing",description:"Leaves tags in the body of the file alone"},{value:"Remove hashtag",description:"Removes `#` from tags in content body after moving them to the YAML frontmatter"},{value:"Remove whole tag",description:"Removes the whole tag in content body after moving them to the YAML frontmatter. _Note that this removes the first space prior to the tag as well_"}]}),new pe({OptionsClass:Ln,nameKey:"rules.move-tags-to-yaml.tags-to-ignore.name",descriptionKey:"rules.move-tags-to-yaml.tags-to-ignore.description",optionsKey:"tagsToIgnore"})]}};fa=L([y.register],fa);var As=class{constructor(){this.noBareURIs=!1}},ws="'\"\u2018\u2019\u201C\u201D`[]",Bk=["http","ftp","https","smtp"],ga=class extends y{constructor(){super({nameKey:"rules.no-bare-urls.name",descriptionKey:"rules.no-bare-urls.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag,g.image,g.inlineCode,g.anchorTag,g.html]})}get OptionsClass(){return As}apply(n,t){let i=n.match(zn);if(i&&(n=this.handleMatches(n,i,!1)),t.noBareURIs){let r=n.match(Hp);r&&(n=this.handleMatches(n,r,!0))}return n}handleMatches(n,t,i){let r=0,a=t.length;for(let o=0;o"&&(s=s.substring(0,s.length-1),c--);let u=l===0?void 0:n.charAt(l-1),d=c>=n.length?void 0:n.charAt(c),m=sn(s,"(");if(m!=0&&m!=sn(s,")")&&d==")"?(s+=d,c++,d=c>=n.length?void 0:n.charAt(c)):m==0&&s.endsWith(")")&&(d=")",c--,s=s.substring(0,s.length-1)),this.skipMatch(u,d,s,i)){r=l+s.length;continue}if(u!=null&&u==="<"&&d!=null&&d===">"){let p=l-1;for(;p>0&&n.charAt(p-1)==="<";)p--;let f=c;for(;f";)f++;n=le(n,p,f+1,"<"+s+">"),r=l+s.length;continue}n=le(n,l,l+s.length,"<"+s+">"),r=l+s.length+2}return n}skipMatch(n,t,i,r){let a=n!=null&&ws.includes(n)||ws.includes(i.charAt(0)),o=t!=null&&ws.includes(t)||ws.includes(i.charAt(i.length-1));return a&&o?!0:r?Bk.includes(i.substring(0,i.indexOf(":"))):!1}get optionBuilders(){return[new q({OptionsClass:As,nameKey:"rules.no-bare-urls.no-bare-uris.name",descriptionKey:"rules.no-bare-urls.no-bare-uris.description",optionsKey:"noBareURIs"})]}};ga=L([y.register],ga);var Qi=class{constructor(){this.numberStyle="ascending";this.listEndStyle="."}},ha=class extends y{constructor(){super({nameKey:"rules.ordered-list-style.name",descriptionKey:"rules.ordered-list-style.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.tag]})}get OptionsClass(){return Qi}apply(n,t){return Op(n,t.numberStyle,t.listEndStyle,t.preserveStart)}get optionBuilders(){return[new J({OptionsClass:Qi,nameKey:"rules.ordered-list-style.number-style.name",descriptionKey:"rules.ordered-list-style.number-style.description",optionsKey:"numberStyle",records:[{value:"ascending",description:"Makes sure ordered list items are ascending (i.e. 1, 2, 3, etc.)"},{value:"lazy",description:"Makes sure ordered list item indicators all are the same"},{value:"preserve",description:"Preserves ordered list item indicators as they are"}]}),new J({OptionsClass:Qi,nameKey:"rules.ordered-list-style.list-end-style.name",descriptionKey:"rules.ordered-list-style.list-end-style.description",optionsKey:"listEndStyle",records:[{value:".",description:"Makes sure ordered list items indicators end in '.' (i.e `1.`)"},{value:")",description:"Makes sure ordered list item indicators end in ')' (i.e. `1)`)"}]}),new q({OptionsClass:Qi,nameKey:"rules.ordered-list-style.preserve-start.name",descriptionKey:"rules.ordered-list-style.preserve-start.description",optionsKey:"preserveStart"})]}};ha=L([y.register],ha);var Nc=class{},ya=class extends y{constructor(){super({nameKey:"rules.paragraph-blank-lines.name",descriptionKey:"rules.paragraph-blank-lines.description",type:"Spacing",ruleIgnoreTypes:[g.obsidianMultiLineComments,g.yaml,g.table],disableConflictingOptions(n,t){let i=lt["two-spaces-between-lines-with-content"].options[0];n&&i.getValue()&&new Dt(t,"rules.paragraph-blank-lines.name","rules.two-spaces-between-lines-with-content.name",()=>{i.setValue(!1)},()=>{lt["paragraph-blank-lines"].options[0].setValue(!1)}).open()}})}get OptionsClass(){return Nc}apply(n,t){return wp(n)}get optionBuilders(){return[]}};ya=L([y.register],ya);var ba=class{};L([y.noSettingControl()],ba.prototype,"lineContent",2),L([y.noSettingControl()],ba.prototype,"selectedText",2);var oi=class extends y{constructor(){super({nameKey:"rules.prevent-double-checklist-indicator-on-paste.name",descriptionKey:"rules.prevent-double-checklist-indicator-on-paste.description",type:"Paste"})}get OptionsClass(){return ba}apply(n,t){let i=Gp.test(t.lineContent),r=Po.test(n),a=Po.test(t.selectedText);return!i||!r||a?n:n.replace(Po,"")}get optionBuilders(){return[]}};oi=L([y.register],oi);var va=class{};L([y.noSettingControl()],va.prototype,"lineContent",2),L([y.noSettingControl()],va.prototype,"selectedText",2);var si=class extends y{constructor(){super({nameKey:"rules.prevent-double-list-item-indicator-on-paste.name",descriptionKey:"rules.prevent-double-list-item-indicator-on-paste.description",type:"Paste"})}get OptionsClass(){return va}apply(n,t){let i=new RegExp(`^${Br}[*+-] `),r=/^\s*[*+-] /,a=i.test(t.lineContent),o=i.test(t.selectedText),s=r.test(n);return o||!a||!s?n:n.replace(r,"")}get optionBuilders(){return[]}};si=L([y.register],si);var Yc=class{},li=class extends y{constructor(){super({nameKey:"rules.proper-ellipsis-on-paste.name",descriptionKey:"rules.proper-ellipsis-on-paste.description",type:"Paste"})}get OptionsClass(){return Yc}apply(n,t){return n.replaceAll(_o,"\u2026")}get optionBuilders(){return[]}};li=L([y.register],li);var _c=class{},ka=class extends y{constructor(){super({nameKey:"rules.proper-ellipsis.name",descriptionKey:"rules.proper-ellipsis.description",type:"Content"})}get OptionsClass(){return _c}apply(n,t){return ke([g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag,g.image],n,i=>i.replaceAll(_o,"\u2026"))}get optionBuilders(){return[]}};ka=L([y.register],ka);var ci=class{constructor(){this.singleQuoteStyleEnabled=!0;this.singleQuoteStyle="''";this.doubleQuoteStyleEnabled=!0;this.doubleQuoteStyle='""'}},wa=class extends y{constructor(){super({nameKey:"rules.quote-style.name",descriptionKey:"rules.quote-style.description",type:"Content",ruleIgnoreTypes:[g.code,g.inlineCode,g.math,g.yaml,g.math,g.inlineMath,g.html,g.link,g.wikiLink,g.templaterCommand,g.image]})}get OptionsClass(){return ci}apply(n,t){let i=n;return t.doubleQuoteStyleEnabled&&(t.doubleQuoteStyle==='""'?i=this.convertSmartDoubleQuotesToStraightQuotes(i):i=this.convertStraightQuoteToSmartQuote(i,'"',"\u201C\u201D"[0],"\u201C\u201D"[1],!1)),t.singleQuoteStyleEnabled&&(t.singleQuoteStyle==="''"?i=this.convertSmartSingleQuotesToStraightQuotes(i):i=this.convertStraightQuoteToSmartQuote(i,"'","\u2018\u2019"[0],"\u2018\u2019"[1],!0)),i}convertSmartSingleQuotesToStraightQuotes(n){return n.replace(jp,"'")}convertSmartDoubleQuotesToStraightQuotes(n){return n.replace(Vp,'"')}convertStraightQuoteToSmartQuote(n,t,i,r,a){let o=Md(t,n);if(o.length===0)return n;let s=n.length-1,l,c="",u="",d=!1,m=!1,p=!1,f=!1,b=!1,h="";for(let k of o)c=k==0?"":n.charAt(k-1),u=k===s?"":n.charAt(k+1),d=oc.test(c),m=oc.test(u),b=d&&m,p=c!=""&&c.trim()==="",f=u!=""&&u.trim()==="",b&&a?l=r:f&&!p?(l=r,h=l):p&&!f?(l=i,h=l):(h===""||h===r?l=i:l=r,h=l),n=le(n,k,k+1,l);return n}get optionBuilders(){return[new q({OptionsClass:ci,nameKey:"rules.quote-style.single-quote-enabled.name",descriptionKey:"rules.quote-style.single-quote-enabled.description",optionsKey:"singleQuoteStyleEnabled"}),new J({OptionsClass:ci,nameKey:"rules.quote-style.single-quote-style.name",descriptionKey:"rules.quote-style.single-quote-style.description",optionsKey:"singleQuoteStyle",records:[{value:"''",description:`Uses "'" instead of smart single quotes`},{value:"\u2018\u2019",description:'Uses "\u2018" and "\u2019" instead of straight single quotes'}]}),new q({OptionsClass:ci,nameKey:"rules.quote-style.double-quote-enabled.name",descriptionKey:"rules.quote-style.double-quote-enabled.description",optionsKey:"doubleQuoteStyleEnabled"}),new J({OptionsClass:ci,nameKey:"rules.quote-style.double-quote-style.name",descriptionKey:"rules.quote-style.double-quote-style.description",optionsKey:"doubleQuoteStyle",records:[{value:'""',description:`Uses '"' instead of smart double quotes`},{value:"\u201C\u201D",description:"Uses '\u201C' and '\u201D' instead of straight double quotes"}]})]}};wa=L([y.register],wa);var Pc=class{},Aa=class extends y{constructor(){super({nameKey:"rules.re-index-footnotes.name",descriptionKey:"rules.re-index-footnotes.description",type:"Footnote",ruleIgnoreTypes:[g.code,g.inlineCode,g.math,g.yaml,g.tag]})}get OptionsClass(){return Pc}apply(n,t){return vp(n)}get optionBuilders(){return[]}};Aa=L([y.register],Aa);var Hc=class{},xa=class extends y{constructor(){super({nameKey:"rules.remove-consecutive-list-markers.name",descriptionKey:"rules.remove-consecutive-list-markers.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Hc}apply(n,t){return n.replace(/^([ |\t]*)- - \b/gm,"$1- ")}get optionBuilders(){return[]}};xa=L([y.register],xa);var qc=class{},La=class extends y{constructor(){super({nameKey:"rules.remove-empty-lines-between-list-markers-and-checklists.name",descriptionKey:"rules.remove-empty-lines-between-list-markers-and-checklists.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag,g.thematicBreak]});this.replaceEmptyLinesBetweenList=function(t,i){let r=new RegExp(`^${i} +{2,}${i}$`,"gm"),a,o=t;do a=o.match(r),o=o.replaceAll(r,`$1 +$4`);while(a);return o}}get OptionsClass(){return qc}apply(t,i){let r=`(( |\\t)*- ${Nn}( |\\t)+.+)`;t=this.replaceEmptyLinesBetweenList(t,r),t=this.replaceEmptyLinesBetweenList(t,"(( |\\t)*\\d+\\.( |\\t)+.+)"),t=this.replaceEmptyLinesBetweenList(t,"(( |\\t)*\\+( |\\t)+.+)");let s=`(( |\\t)*-(?! ${Nn})( |\\t)+.+)`;return t=this.replaceEmptyLinesBetweenList(t,s),this.replaceEmptyLinesBetweenList(t,"(( |\\t)*\\*( |\\t)+.+)")}get optionBuilders(){return[]}};La=L([y.register],La);var Uc=class{},Sa=class extends y{constructor(){super({nameKey:"rules.remove-empty-list-markers.name",descriptionKey:"rules.remove-empty-list-markers.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Uc}apply(n,t){let i=new RegExp(`^${Br}(-|\\*|\\+|\\d+[.)]|- (\\[(.)\\]))\\s*?$`,"gm");return n=n.replace(new RegExp(i.source+"\\n","gm"),""),n=n.replace(new RegExp("\\n"+i.source,"gm"),""),n.replace(i,"")}get optionBuilders(){return[]}};Sa=L([y.register],Sa);var Wc=class{},Ea=class extends y{constructor(){super({nameKey:"rules.remove-hyphenated-line-breaks.name",descriptionKey:"rules.remove-hyphenated-line-breaks.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Wc}apply(n,t){return n.replace(/\b[-‐] \b/g,"")}get optionBuilders(){return[]}};Ea=L([y.register],Ea);var Vc=class{},ui=class extends y{constructor(){super({nameKey:"rules.remove-hyphens-on-paste.name",descriptionKey:"rules.remove-hyphens-on-paste.description",type:"Paste"})}get OptionsClass(){return Vc}apply(n,t){return n.replace(/([^\s-])[-‐]\s+\n?(?=\w)/g,"$1")}get optionBuilders(){return[]}};ui=L([y.register],ui);var jc=class{},di=class extends y{constructor(){super({nameKey:"rules.remove-leading-or-trailing-whitespace-on-paste.name",descriptionKey:"rules.remove-leading-or-trailing-whitespace-on-paste.description",type:"Paste"})}get OptionsClass(){return jc}apply(n,t){return n.replace(/^[\n ]+|\s+$/g,"")}get optionBuilders(){return[]}};di=L([y.register],di);var $c=class{},pi=class extends y{constructor(){super({nameKey:"rules.remove-leftover-footnotes-from-quote-on-paste.name",descriptionKey:"rules.remove-leftover-footnotes-from-quote-on-paste.description",ruleIgnoreTypes:[g.wikiLink,g.link,g.image],type:"Paste"})}get OptionsClass(){return $c}apply(n,t){return n.replace(/(\D)[.,]\d+/g,"$1")}get optionBuilders(){return[]}};pi=L([y.register],pi);var Gc=class{},Ta=class extends y{constructor(){super({nameKey:"rules.remove-link-spacing.name",descriptionKey:"rules.remove-link-spacing.description",type:"Spacing"})}get OptionsClass(){return Gc}apply(n,t){return n=Ap(n),Zp(n)}get optionBuilders(){return[]}};Ta=L([y.register],Ta);var Zc=class{},mi=class extends y{constructor(){super({nameKey:"rules.remove-multiple-blank-lines-on-paste.name",descriptionKey:"rules.remove-multiple-blank-lines-on-paste.description",type:"Paste"})}get OptionsClass(){return Zc}apply(n,t){return n.replace(/\n{3,}/g,` + +`)}get optionBuilders(){return[]}};mi=L([y.register],mi);var Qc=class{},Ca=class extends y{constructor(){super({nameKey:"rules.remove-multiple-spaces.name",descriptionKey:"rules.remove-multiple-spaces.description",type:"Content",ruleIgnoreTypes:[g.code,g.inlineCode,g.math,g.inlineMath,g.yaml,g.link,g.wikiLink,g.tag,g.table]})}get OptionsClass(){return Qc}apply(n,t){return n=ke([g.list],n,i=>i.replace(/(?!^>)([^\s])( ){2,}([^\s])/gm,"$1 $3")),n=Di(n,i=>i.replace(/([^\s])( ){2,}([^\s])/gm,"$1 $3")),n}get optionBuilders(){return[]}};Ca=L([y.register],Ca);var fi=class{constructor(){this.includeFullwidthForms=!0;this.includeCJKSymbolsAndPunctuation=!0;this.includeDashes=!0;this.otherSymbols=""}},Oa=class extends y{constructor(){super({nameKey:"rules.remove-space-around-characters.name",descriptionKey:"rules.remove-space-around-characters.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.inlineCode,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return fi}apply(n,t){let i="";if(t.includeFullwidthForms&&(i+="\uFF01-\uFF5E"),t.includeCJKSymbolsAndPunctuation&&(i+="\u3000-\u303F"),t.includeDashes&&(i+="\u2013\u2014"),i+=mn(t.otherSymbols),!i)return n;let r=new RegExp(`([ ])+([${i}])`,"g"),a=new RegExp(`([${i}])([ ])+`,"g"),o=function(l){return l.replace(r,"$2").replace(a,"$1")},s=ke([g.list],n,o);return s=Di(s,o),s}get optionBuilders(){return[new q({nameKey:"rules.remove-space-around-characters.include-fullwidth-forms.name",descriptionKey:"rules.remove-space-around-characters.include-fullwidth-forms.description",OptionsClass:fi,optionsKey:"includeFullwidthForms"}),new q({nameKey:"rules.remove-space-around-characters.include-cjk-symbols-and-punctuation.name",descriptionKey:"rules.remove-space-around-characters.include-cjk-symbols-and-punctuation.description",OptionsClass:fi,optionsKey:"includeCJKSymbolsAndPunctuation"}),new q({nameKey:"rules.remove-space-around-characters.include-dashes.name",descriptionKey:"rules.remove-space-around-characters.include-dashes.description",OptionsClass:fi,optionsKey:"includeDashes"}),new we({nameKey:"rules.remove-space-around-characters.other-symbols.name",descriptionKey:"rules.remove-space-around-characters.other-symbols.description",OptionsClass:fi,optionsKey:"otherSymbols"})]}};Oa=L([y.register],Oa);var Ia=class{constructor(){this.charactersToRemoveSpacesBefore=",!?;:).\u2019\u201D]";this.charactersToRemoveSpacesAfter="\xBF\xA1\u2018\u201C(["}},Ma=class extends y{constructor(){super({nameKey:"rules.remove-space-before-or-after-characters.name",descriptionKey:"rules.remove-space-before-or-after-characters.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Ia}apply(n,t){let i=mn(t.charactersToRemoveSpacesBefore),r=mn(t.charactersToRemoveSpacesAfter);if(!i&&!r)return n;let a=new RegExp(`([ ])+([${i}])`,"g"),o=new RegExp(`([${r}])([ ])+`,"g"),s=function(c){return c.replace(a,"$2").replace(o,"$1")},l=ke([g.list,g.html],n,s);return l=Di(l,s),l}get optionBuilders(){return[new we({nameKey:"rules.remove-space-before-or-after-characters.characters-to-remove-space-before.name",descriptionKey:"rules.remove-space-before-or-after-characters.characters-to-remove-space-before.description",OptionsClass:Ia,optionsKey:"charactersToRemoveSpacesBefore"}),new we({nameKey:"rules.remove-space-before-or-after-characters.characters-to-remove-space-after.name",descriptionKey:"rules.remove-space-before-or-after-characters.characters-to-remove-space-after.description",OptionsClass:Ia,optionsKey:"charactersToRemoveSpacesAfter"})]}};Ma=L([y.register],Ma);var xs=class{constructor(){this.punctuationToRemove=".,;:!\u3002\uFF0C\uFF1B\uFF1A\uFF01"}},Fa=class extends y{constructor(){super({nameKey:"rules.remove-trailing-punctuation-in-heading.name",descriptionKey:"rules.remove-trailing-punctuation-in-heading.description",type:"Heading",ruleIgnoreTypes:[g.code,g.math,g.yaml]})}get OptionsClass(){return xs}apply(n,t){return n.replaceAll(pn,(i,r="",a="",o="",s="",l="")=>{if(s==""||s.match(Wp))return i;let c=s.trimEnd(),u=c.charAt(c.length-1);return t.punctuationToRemove.includes(u)?r+a+o+s.substring(0,c.length-1)+s.substring(c.length)+l:i})}get optionBuilders(){return[new we({OptionsClass:xs,nameKey:"rules.remove-trailing-punctuation-in-heading.punctuation-to-remove.name",descriptionKey:"rules.remove-trailing-punctuation-in-heading.punctuation-to-remove.description",optionsKey:"punctuationToRemove"})]}};Fa=L([y.register],Fa);var Ls=class{constructor(){this.yamlKeysToRemove=[]}},Ra=class extends y{constructor(){super({nameKey:"rules.remove-yaml-keys.name",descriptionKey:"rules.remove-yaml-keys.description",type:"YAML"})}get OptionsClass(){return Ls}apply(n,t){let i=t.yamlKeysToRemove;if(i.length===0)return n;let r=zi(n);if(r===null)return n;let a=r;for(let o of i){let s=o.trim();s.endsWith(":")&&(s=s.substring(0,s.length-1)),a=Yn(a,s)}return n.replace(r,a)}get optionBuilders(){return[new pe({OptionsClass:Ls,nameKey:"rules.remove-yaml-keys.yaml-keys-to-remove.name",descriptionKey:"rules.remove-yaml-keys.yaml-keys-to-remove.description",optionsKey:"yamlKeysToRemove"})]}};Ra=L([y.register],Ra);var yt=class{constructor(){this.aliasArrayStyle="single-line";this.sortAliasKey=!0;this.tagArrayStyle="single-line";this.sortTagKey=!0;this.sortArrayKeys=!0;this.sortOrder="Ascending Alphabetical";this.ignoreSortArrayKeys=[];this.defaultEscapeCharacter='"';this.removeUnnecessaryEscapeCharsForMultiLineArrays=!1}};L([y.noSettingControl()],yt.prototype,"aliasArrayStyle",2),L([y.noSettingControl()],yt.prototype,"tagArrayStyle",2),L([y.noSettingControl()],yt.prototype,"defaultEscapeCharacter",2),L([y.noSettingControl()],yt.prototype,"removeUnnecessaryEscapeCharsForMultiLineArrays",2);var Ba=class extends y{constructor(){super({nameKey:"rules.sort-yaml-array-values.name",descriptionKey:"rules.sort-yaml-array-values.description",type:"YAML"})}get OptionsClass(){return yt}apply(n,t){return he(n,i=>{let r=st(i.replace(`--- +`,"").replace(` +---`,""));if(!r)return i;for(let a of At)if(t.sortAliasKey&&Object.keys(r).includes(a)){i=ae(i,a,be(gn(this.sortArray(Re(ue(i,a)),t.sortOrder)),t.aliasArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays,!0));break}for(let a of wt)if(t.sortTagKey&&Object.keys(r).includes(a)){i=ae(i,a,be(fn(this.sortArray(Re(ue(i,a)),t.sortOrder)),t.tagArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays));break}if(t.sortArrayKeys){let a=[...At,...wt,...t.ignoreSortArrayKeys];for(let o of Object.keys(r)){if(a.includes(o)||!Array.isArray(r[o])||r[o].length!==0&&typeof r[o][0]=="object"&&r[o][0]!==null)continue;let s=ue(i,o),l="single-line";s.includes(` +`)&&(l="multi-line");let c=this.sortArray(Re(s),t.sortOrder);i=ae(i,o,be(c,l,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays))}}return i})}sortArray(n,t){return n==null||typeof n=="string"||n.length<=1||(n.sort(function(i,r){let a=i.toLowerCase().localeCompare(r.toLowerCase());return a===0?i.localeCompare(r):a}),t==="Ascending Alphabetical")||n.reverse(),n}get optionBuilders(){return[new q({OptionsClass:yt,nameKey:"rules.sort-yaml-array-values.sort-alias-key.name",descriptionKey:"rules.sort-yaml-array-values.sort-alias-key.description",optionsKey:"sortAliasKey"}),new q({OptionsClass:yt,nameKey:"rules.sort-yaml-array-values.sort-tag-key.name",descriptionKey:"rules.sort-yaml-array-values.sort-tag-key.description",optionsKey:"sortTagKey"}),new q({OptionsClass:yt,nameKey:"rules.sort-yaml-array-values.sort-array-keys.name",descriptionKey:"rules.sort-yaml-array-values.sort-array-keys.description",optionsKey:"sortArrayKeys"}),new pe({OptionsClass:yt,nameKey:"rules.sort-yaml-array-values.ignore-keys.name",descriptionKey:"rules.sort-yaml-array-values.ignore-keys.description",optionsKey:"ignoreSortArrayKeys"}),new J({OptionsClass:yt,nameKey:"rules.sort-yaml-array-values.sort-order.name",descriptionKey:"rules.sort-yaml-array-values.sort-order.description",optionsKey:"sortOrder",records:[{value:"Ascending Alphabetical",description:"Sorts the array values from a to z"},{value:"Descending Alphabetical",description:"Sorts the array values from z to a"}]})]}};Ba=L([y.register],Ba);var Jc=class{},Da=class extends y{constructor(){super({nameKey:"rules.space-after-list-markers.name",descriptionKey:"rules.space-after-list-markers.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Jc}apply(n,t){return n=n.replace(/^(\s*\d+\.|\s*[-+*])[^\S\r\n]+/gm,"$1 "),n.replace(/^(\s*\d+\.|\s*[-+*]\s+\[[ xX]\])[^\S\r\n]+/gm,"$1 ")}get optionBuilders(){return[]}};Da=L([y.register],Da);var za=class{constructor(){this.englishNonLetterCharactersAfterCJKCharacters=`-+'"([\xA5$`;this.englishNonLetterCharactersBeforeCJKCharacters=`-+;:'"\xB0%$)]`}},Ka=class extends y{constructor(){super({nameKey:"rules.space-between-chinese-japanese-or-korean-and-english-or-numbers.name",descriptionKey:"rules.space-between-chinese-japanese-or-korean-and-english-or-numbers.description",type:"Spacing",ruleIgnoreTypes:[g.code,g.inlineCode,g.yaml,g.image,g.link,g.wikiLink,g.tag,g.math,g.inlineMath,g.html]})}get OptionsClass(){return za}apply(n,t){let i=this.buildHeadRegex(t.englishNonLetterCharactersAfterCJKCharacters),r=this.buildTailRegex(t.englishNonLetterCharactersBeforeCJKCharacters),a=`${g.link.placeholder}|${g.inlineMath.placeholder}|${g.inlineCode.placeholder}|${g.wikiLink.placeholder}`.replaceAll("{","\\{").replaceAll("}","\\}"),o=new RegExp(`(\\p{sc=Han}|\\p{sc=Katakana}|\\p{sc=Hiragana}|\\p{sc=Hangul})( *)(${a})`,"gmu"),s=new RegExp(`(${a})( *)(\\p{sc=Han}|\\p{sc=Katakana}|\\p{sc=Hiragana}|\\p{sc=Hangul})`,"gmu"),l=function(u){return u.replace(i,"$1 $3").replace(r,"$1 $3")},c=ke([g.italics,g.bold],n,l);return c=c.replace(o,"$1 $3").replace(s,"$1 $3"),c=xp(c,l),c=Lp(c,l),c}buildHeadRegex(n){n&&n!==""&&(n=n.replaceAll(/\s/g,""));let t="";return n&&n.length!=0&&(t=`|[${mn(n)}]`),new RegExp(`(\\p{sc=Han}|\\p{sc=Katakana}|\\p{sc=Hiragana}|\\p{sc=Hangul})( *)(\\[[^[]*\\]\\(.*\\)|\`[^\`]*\`|\\w+${t}|\\*[^*])`,"gmu")}buildTailRegex(n){n&&n!==""&&(n=n.replaceAll(/\s/g,""));let t="";return n&&n.length!=0&&(t=`|[${mn(n)}]`),new RegExp(`(\\[[^[]*\\]\\(.*\\)|\`[^\`]*\`|\\w+${t}|[^*]\\*)( *)(\\p{sc=Han}|\\p{sc=Katakana}|\\p{sc=Hiragana}|\\p{sc=Hangul})`,"gmu")}get optionBuilders(){return[new we({OptionsClass:za,nameKey:"rules.space-between-chinese-japanese-or-korean-and-english-or-numbers.english-symbols-punctuation-before.name",descriptionKey:"rules.space-between-chinese-japanese-or-korean-and-english-or-numbers.english-symbols-punctuation-before.description",optionsKey:"englishNonLetterCharactersBeforeCJKCharacters"}),new we({OptionsClass:za,nameKey:"rules.space-between-chinese-japanese-or-korean-and-english-or-numbers.english-symbols-punctuation-after.name",descriptionKey:"rules.space-between-chinese-japanese-or-korean-and-english-or-numbers.english-symbols-punctuation-after.description",optionsKey:"englishNonLetterCharactersAfterCJKCharacters"})]}};Ka=L([y.register],Ka);var Ss=class{constructor(){this.style="consistent"}},Na=class extends y{constructor(){super({nameKey:"rules.strong-style.name",descriptionKey:"rules.strong-style.description",type:"Content",ruleIgnoreTypes:[g.code,g.yaml,g.link,g.wikiLink,g.tag,g.math,g.inlineMath]})}get OptionsClass(){return Ss}apply(n,t){return Ko(n,t.style,"strong")}get optionBuilders(){return[new J({OptionsClass:Ss,nameKey:"rules.strong-style.style.name",descriptionKey:"rules.strong-style.style.description",optionsKey:"style",records:[{value:"consistent",description:"Makes sure the first instance of strong is the style that will be used throughout the document"},{value:"asterisk",description:"Makes sure ** is the strong indicator"},{value:"underscore",description:"Makes sure __ is the strong indicator"}]})]}};Na=L([y.register],Na);var Es=class{constructor(){this.twoSpaceLineBreak=!1}},gi=class extends y{constructor(){super({nameKey:"rules.trailing-spaces.name",descriptionKey:"rules.trailing-spaces.description",type:"Spacing",hasSpecialExecutionOrder:!0,ruleIgnoreTypes:[g.code,g.math,g.yaml,g.link,g.wikiLink,g.tag]})}get OptionsClass(){return Es}apply(n,t){return t.twoSpaceLineBreak?(n=n.replace(/(\S)[ \t]$/gm,"$1"),n=n.replace(/(\S)[ \t]{3,}$/gm,"$1"),n=n.replace(/(\S)( ?\t\t? ?)$/gm,"$1"),n):n.replace(/[ \t]+$/gm,"")}get optionBuilders(){return[new q({OptionsClass:Es,nameKey:"rules.trailing-spaces.twp-space-line-break.name",descriptionKey:"rules.trailing-spaces.twp-space-line-break.description",optionsKey:"twoSpaceLineBreak"})]}};gi=L([y.register],gi);var Ts=class{constructor(){this.lineBreakIndicator=" "}},Ya=class extends y{constructor(){super({nameKey:"rules.two-spaces-between-lines-with-content.name",descriptionKey:"rules.two-spaces-between-lines-with-content.description",type:"Content",ruleIgnoreTypes:[g.obsidianMultiLineComments,g.yaml,g.table],disableConflictingOptions(n,t){let i=lt["paragraph-blank-lines"].options[0];n&&i.getValue()&&new Dt(t,"rules.paragraph-blank-lines.name","rules.two-spaces-between-lines-with-content.name",()=>{i.setValue(!1)},()=>{lt["two-spaces-between-lines-with-content"].options[0].setValue(!1)}).open()}})}get OptionsClass(){return Ts}apply(n,t){return kp(n,t.lineBreakIndicator)}get optionBuilders(){return[new J({OptionsClass:Ts,nameKey:"rules.two-spaces-between-lines-with-content.line-break-indicator.name",descriptionKey:"rules.two-spaces-between-lines-with-content.line-break-indicator.description",optionsKey:"lineBreakIndicator",records:[{value:" ",description:" "},{value:"
    ",description:"
    "},{value:"
    ",description:"
    "},{value:"\\",description:"\\"}]})]}};Ya=L([y.register],Ya);var Cs=class{constructor(){this.listStyle="consistent"}},_a=class extends y{constructor(){super({nameKey:"rules.unordered-list-style.name",descriptionKey:"rules.unordered-list-style.description",type:"Content",ruleIgnoreTypes:[g.code,g.math,g.yaml,g.tag]})}get OptionsClass(){return Cs}apply(n,t){return Mp(n,t.listStyle)}get optionBuilders(){return[new J({OptionsClass:Cs,nameKey:"rules.unordered-list-style.list-style.name",descriptionKey:"rules.unordered-list-style.list-style.description",optionsKey:"listStyle",records:[{value:"consistent",description:"Makes sure unordered list items use a consistent list item indicator in the file which will be based on the first list item found"},{value:"-",description:"Makes sure unordered list items use `-` as their indicator"},{value:"*",description:"Makes sure unordered list items use `*` as their indicator"},{value:"+",description:"Makes sure unordered list items use `+` as their indicator"}]})]}};_a=L([y.register],_a);var Zt=class{constructor(){this.priorityKeysAtStartOfYaml=!0;this.yamlKeyPrioritySortOrder=[];this.yamlSortOrderForOtherKeys="None"}};L([y.noSettingControl()],Zt.prototype,"dateModifiedKey",2),L([y.noSettingControl()],Zt.prototype,"currentTimeFormatted",2),L([y.noSettingControl()],Zt.prototype,"yamlTimestampDateModifiedEnabled",2);var hi=class extends y{constructor(){super({nameKey:"rules.yaml-key-sort.name",descriptionKey:"rules.yaml-key-sort.description",type:"YAML",hasSpecialExecutionOrder:!0})}get OptionsClass(){return Zt}apply(n,t){let i=zi(n);if(i===null)return n;let r=i,a=t.priorityKeysAtStartOfYaml,o=t.yamlKeyPrioritySortOrder,s=0;for(let b of o)b=b.trimEnd(),b.endsWith(":")?o[s]=b.substring(0,b.length-1):b!=o[s]&&(o[s]=b),s++;let l=st(r),c=this.getYAMLKeysSorted(r,o,l),u=c.sortedYamlKeyValues;r=c.remainingYaml;let d=t.yamlSortOrderForOtherKeys;if(l==null)return this.getTextWithNewYamlFrontmatter(n,i,u,r,a,t.dateModifiedKey,t.currentTimeFormatted,t.yamlTimestampDateModifiedEnabled);let m=Object.keys(l),p;if(d==="Ascending Alphabetical")p=this.sortAlphabeticallyAsc;else if(d==="Descending Alphabetical")p=this.sortAlphabeticallyDesc;else return this.getTextWithNewYamlFrontmatter(n,i,u,r,a,t.dateModifiedKey,t.currentTimeFormatted,t.yamlTimestampDateModifiedEnabled);m=m.sort(p);let f=this.getYAMLKeysSorted(r,m,l);return this.getTextWithNewYamlFrontmatter(n,i,u,f.sortedYamlKeyValues,a,t.dateModifiedKey,t.currentTimeFormatted,t.yamlTimestampDateModifiedEnabled)}getYAMLKeysSorted(n,t,i){let r="";for(let a of t){if(!(a in i))continue;let o=ue(n,a,!1);o!==null&&(o.includes(` +`)?r+=`${a}:${o} +`:r+=`${a}: ${o} +`,n=Yn(n,a,!1))}return{remainingYaml:n,sortedYamlKeyValues:r}}updateDateModifiedIfYamlChanged(n,t,i,r){return n==t?t:ae(t,i," "+r)}getTextWithNewYamlFrontmatter(n,t,i,r,a,o,s,l){let c=`${r}${i}`;return a&&(c=`${i}${r}`),l&&(c=this.updateDateModifiedIfYamlChanged(t,c,o,s)),n.replace(t,c)}sortAlphabeticallyAsc(n,t){return n=n.toLowerCase(),t=t.toLowerCase(),nt?-1:t>n?1:0}get optionBuilders(){return[new pe({OptionsClass:Zt,nameKey:"rules.yaml-key-sort.yaml-key-priority-sort-order.name",descriptionKey:"rules.yaml-key-sort.yaml-key-priority-sort-order.description",optionsKey:"yamlKeyPrioritySortOrder"}),new q({OptionsClass:Zt,nameKey:"rules.yaml-key-sort.priority-keys-at-start-of-yaml.name",descriptionKey:"rules.yaml-key-sort.priority-keys-at-start-of-yaml.description",optionsKey:"priorityKeysAtStartOfYaml"}),new J({OptionsClass:Zt,nameKey:"rules.yaml-key-sort.yaml-sort-order-for-other-keys.name",descriptionKey:"rules.yaml-key-sort.yaml-sort-order-for-other-keys.description",optionsKey:"yamlSortOrderForOtherKeys",records:[{value:"None",description:"No sorting other than what is in the YAML Key Priority Sort Order text area"},{value:"Ascending Alphabetical",description:"Sorts the keys based on key value from a to z"},{value:"Descending Alphabetical",description:"Sorts the keys based on key value from z to a"}]})]}};hi=L([y.register],hi);var Ct=require("obsidian");var nu=Cn(qm());var Pa={ruleConfigs:{},lintOnSave:!1,recordLintOnSaveLogs:!1,displayChanged:!0,lintOnFileChange:!1,displayLintOnFileChangeNotice:!1,settingsConvertedToConfigKeyValues:!1,foldersToIgnore:[],filesToIgnore:[],linterLocale:"system-default",logLevel:"ERROR",lintCommands:[],customRegexes:[],commonStyles:{aliasArrayStyle:"single-line",tagArrayStyle:"single-line",minimumNumberOfDollarSignsToBeAMathBlock:2,escapeCharacter:'"',removeUnnecessaryEscapeCharsForMultiLineArrays:!1}};var Ke=class{constructor(){this.dateCreatedKey="date created";this.dateCreated=!0;this.dateCreatedSourceOfTruth="file system";this.dateModifiedSourceOfTruth="file system";this.format="dddd, MMMM Do YYYY, h:mm:ss a";this.dateModified=!0;this.dateModifiedKey="date modified";this.convertToUTC=!1;this.timestampUpdateOnFileContentUpdated="never";this.locale="en"}};L([y.noSettingControl()],Ke.prototype,"alreadyModified",2),L([y.noSettingControl()],Ke.prototype,"fileCreatedTime",2),L([y.noSettingControl()],Ke.prototype,"fileModifiedTime",2),L([y.noSettingControl()],Ke.prototype,"locale",2),L([y.noSettingControl()],Ke.prototype,"currentTime",2),L([y.noSettingControl()],Ke.prototype,"fileName",2);var Qt=class extends y{constructor(){super({nameKey:"rules.yaml-timestamp.name",descriptionKey:"rules.yaml-timestamp.description",type:"YAML",hasSpecialExecutionOrder:!0})}get OptionsClass(){return Ke}apply(n,t){let i=t.alreadyModified,r=Rt(n);return i=i||r!==n,t.format=t.format.trimEnd(),he(r,a=>{if(t.dateCreated){let o=!1;[a,o]=this.handleDateCreatedValue(a,t),i=i||o}return t.dateModified&&(a=this.handleDateModifiedValue(a,i,t)),a})}handleDateCreatedValue(n,t){let i=!1,r=` +${t.dateCreatedKey}: [^ +]+ +`,a=` +${t.dateCreatedKey}:[ ]* +`,o=new RegExp(a),s=new RegExp(r),l=(0,Ct.moment)(t.fileCreatedTime);l.locale(t.locale);let c=t.convertToUTC?l.utc().format(t.format):l.format(t.format),u=` +${t.dateCreatedKey}: ${c}`,d=s.test(n);if(!d&&o.test(n))n=n.replace(o,Je(u)+` +`),i=!0;else if(d){if(d){let m=this.getYAMLTimestampString(n,s,t.dateCreatedKey),p=(0,nu.default)(m);if(t.dateCreatedSourceOfTruth=="frontmatter"&&t.format!==p){let f=this.parseValueToCurrentFormatIfPossible(m,t.format,t.locale,t.convertToUTC);if(f==null)throw new Error(x("logs.invalid-date-format-error").replace("{DATE}",m).replace("{FILE_NAME}",t.fileName));let b=t.convertToUTC?f.utc().format(t.format):f.format(t.format);if(b!==m){let h=` +${t.dateCreatedKey}: ${b}`;n=n.replace(s,Je(h)+` +`),i=!0}}else if(t.dateCreatedSourceOfTruth!="frontmatter"){let f=(0,Ct.moment)(m,t.format,t.locale,!0);(f==null||!f.isValid())&&(n=n.replace(s,Je(u)+` +`),i=!0)}}}else{let m=n.indexOf(` +---`);n=Fn(n,m,` +${t.dateCreatedKey}: ${c}`),i=!0}return[n,i]}handleDateModifiedValue(n,t,i){let r=` +${i.dateModifiedKey}: [^ +]+ +`,a=` +${i.dateModifiedKey}:[ ]* +`,o=new RegExp(a),s=new RegExp(r),l=(0,Ct.moment)(i.fileModifiedTime);l.locale(i.locale);let c=i.convertToUTC?i.currentTime.utc().format(i.format):i.currentTime.format(i.format),u=` +${i.dateModifiedKey}: ${c}`,d=s.test(n);if(d){let m=(0,Ct.moment)(this.getYAMLTimestampString(n,s,i.dateModifiedKey),i.format,i.locale,!0);(t||m==null||!m.isValid()||i.dateModifiedSourceOfTruth!="user or Linter edits"&&this.getTimeDifferenceInSeconds(m,l,i)>5)&&(n=n.replace(s,Je(u)+` +`))}else if(o.test(n))n=n.replace(o,Je(u)+` +`);else if(!d){let m=n.indexOf(` +---`);n=Fn(n,m,u)}return n}parseValueToCurrentFormatIfPossible(n,t,i,r){if(n==null)return null;let a=r?Ct.moment.utc(n,t,i,!0):(0,Ct.moment)(n,t,i,!0);if(a!=null&&a.isValid())return a;let o=(0,nu.default)(n);if(o!=null){let s=r?Ct.moment.utc(n,o):(0,Ct.moment)(n,o);s.locale(i);let l=r?s.utc().format(t):s.format(t);return(0,Ct.moment)(l,t,i,!0)}return null}getYAMLTimestampString(n,t,i){return n.match(t)[0].replace(i+":","").trim()}getTimeDifferenceInSeconds(n,t,i){let r=(0,Ct.moment)(t.format(i.format),i.format,i.locale,!0);return Math.abs(n.diff(r,"seconds"))}get optionBuilders(){return[new q({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.date-created.name",descriptionKey:"rules.yaml-timestamp.date-created.description",optionsKey:"dateCreated"}),new we({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.date-created-key.name",descriptionKey:"rules.yaml-timestamp.date-created-key.description",optionsKey:"dateCreatedKey"}),new J({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.date-created-source-of-truth.name",descriptionKey:"rules.yaml-timestamp.date-created-source-of-truth.description",optionsKey:"dateCreatedSourceOfTruth",records:[{value:"file system",description:"The file system date created value is used to set the value of date created in the frontmatter"},{value:"frontmatter",description:"When a value is present in the frontmatter for date created, this value is used as the value for the date created"}]}),new q({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.date-modified.name",descriptionKey:"rules.yaml-timestamp.date-modified.description",optionsKey:"dateModified"}),new we({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.date-modified-key.name",descriptionKey:"rules.yaml-timestamp.date-modified-key.description",optionsKey:"dateModifiedKey"}),new J({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.date-modified-source-of-truth.name",descriptionKey:"rules.yaml-timestamp.date-modified-source-of-truth.description",optionsKey:"dateModifiedSourceOfTruth",records:[{value:"file system",description:"The file system date modified value is used to set the value of date modified in the frontmatter"},{value:"user or Linter edits",description:"When a value is present in the frontmatter for date modified, date modified is kept as is unless the Linter makes a change to a note or the user edits a note with the setting `{NAME}` set to something other than `{NEVER}`.".replace("{NAME}",x("rules.yaml-timestamp.update-on-file-contents-updated.name")).replace("{NEVER}",x("enums.never"))}]}),new ls({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.format.name",descriptionKey:"rules.yaml-timestamp.format.description",optionsKey:"format"}),new q({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.convert-to-utc.name",descriptionKey:"rules.yaml-timestamp.convert-to-utc.description",optionsKey:"convertToUTC"}),new J({OptionsClass:Ke,nameKey:"rules.yaml-timestamp.update-on-file-contents-updated.name",descriptionKey:"rules.yaml-timestamp.update-on-file-contents-updated.description",optionsKey:"timestampUpdateOnFileContentUpdated",records:[{value:"never",description:"never"},{value:"after 5 seconds",description:"after 5 seconds"},{value:"after 10 seconds",description:"after 10 seconds"},{value:"after 15 seconds",description:"after 15 seconds"},{value:"after 30 seconds",description:"after 30 seconds"},{value:"after 1 minute",description:"after 1 minute"}]})]}};Qt=L([y.register],Qt);var Ot=class{constructor(){this.preserveExistingAliasesSectionStyle=!0;this.keepAliasThatMatchesTheFilename=!1;this.useYamlKeyToKeepTrackOfOldFilenameOrHeading=!0;this.aliasHelperKey=cc;this.aliasArrayStyle="multi-line";this.defaultEscapeCharacter='"';this.removeUnnecessaryEscapeCharsForMultiLineArrays=!1}};L([y.noSettingControl()],Ot.prototype,"aliasArrayStyle",2),L([y.noSettingControl()],Ot.prototype,"fileName",2),L([y.noSettingControl()],Ot.prototype,"defaultEscapeCharacter",2),L([y.noSettingControl()],Ot.prototype,"removeUnnecessaryEscapeCharsForMultiLineArrays",2);var yi=class extends y{constructor(){super({nameKey:"rules.yaml-title-alias.name",descriptionKey:"rules.yaml-title-alias.description",type:"YAML",hasSpecialExecutionOrder:!0})}get OptionsClass(){return Ot}apply(n,t){n=Rt(n);let[i,r]=this.getTitleInfo(n,t.fileName,t.aliasArrayStyle,t.defaultEscapeCharacter),a=null,o=n.match(Ne)[1],s=!t.keepAliasThatMatchesTheFilename&&i===t.fileName,l=o.replace(`--- +`,"").replace(` +---`,""),c=st(o),u=t.aliasHelperKey??cc;u.endsWith(":")&&(u=u.substring(0,u.length-1)),a=c[u]??null,a!=null&&(a=a+"",a=xt(a,t.defaultEscapeCharacter,this.forceEscape(a,t.aliasArrayStyle)));let d=null,m=Object.keys(c);for(let p of At)if(m.includes(p)){d=p;break}if(d!=null){let p=ue(l,d),f="multi-line",b=p==="",h=!1;!p.includes(` +`)&&!(p==="[]"&&t.aliasArrayStyle==="multi-line")&&(p.match(/^\[.*\]/)===null?(f="single string to single-line",h=!0):f="single-line");let k=gn(Re(p)),A=this.getNewAliasValue(k,s,r,a);A===""?l=Yn(l,d):t.preserveExistingAliasesSectionStyle?!b&&(h&&r==A||!h||k==A)?l=ae(l,d,be(A,f,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays,!0)):l=ae(l,d,be(A,t.aliasArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays,!0)):l=ae(l,d,be(A,t.aliasArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays,!0))}else s||(l=ae(l,lc,be(r,t.aliasArrayStyle,t.defaultEscapeCharacter,t.removeUnnecessaryEscapeCharsForMultiLineArrays,!0)));return!t.useYamlKeyToKeepTrackOfOldFilenameOrHeading||s?l=Yn(l,u):l=ae(l,u,` ${r}`),n=n.replace(`--- +${o}---`,`--- +${l}---`),n}getTitleInfo(n,t,i,r){let a=ke([g.code,g.math,g.yaml,g.tag],n,Ho);a=a||t;let o=xt(a,r,this.forceEscape(a,i));return[a,o]}forceEscape(n,t){return ko(n)||n.includes(",")&&(t==="single-line"||t==="single string to single-line"||t==="single string comma delimited")}getNewAliasValue(n,t,i,r){if(n==null)return t?"":i;if(typeof n=="string")t?n===i&&(n=""):r===n?n=i:n=[i,n];else if(r!==null){let a=n.indexOf(r);a===-1&&Ni(r)&&(a=n.indexOf(r.substring(1,r.length-1))),a!==-1?t?n.splice(a,1):n[a]=i:n=[i,...n]}else{let a=n.indexOf(i);a!==-1?t&&n.splice(a,1):t||(n=[i,...n])}return n===""||n.length===0?"":n}get optionBuilders(){return[new q({OptionsClass:Ot,nameKey:"rules.yaml-title-alias.preserve-existing-alias-section-style.name",descriptionKey:"rules.yaml-title-alias.preserve-existing-alias-section-style.description",optionsKey:"preserveExistingAliasesSectionStyle"}),new q({OptionsClass:Ot,nameKey:"rules.yaml-title-alias.keep-alias-that-matches-the-filename.name",descriptionKey:"rules.yaml-title-alias.keep-alias-that-matches-the-filename.description",optionsKey:"keepAliasThatMatchesTheFilename"}),new q({OptionsClass:Ot,nameKey:"rules.yaml-title-alias.use-yaml-key-to-keep-track-of-old-filename-or-heading.name",descriptionKey:"rules.yaml-title-alias.use-yaml-key-to-keep-track-of-old-filename-or-heading.description",optionsKey:"useYamlKeyToKeepTrackOfOldFilenameOrHeading"}),new we({OptionsClass:Ot,nameKey:"rules.yaml-title-alias.alias-helper-key.name",descriptionKey:"rules.yaml-title-alias.alias-helper-key.description",optionsKey:"aliasHelperKey"})]}};yi=L([y.register],yi);var bi=class{constructor(){this.defaultEscapeCharacter='"';this.titleKey="title";this.mode="first-h1-or-filename-if-h1-missing"}};L([y.noSettingControl()],bi.prototype,"fileName",2),L([y.noSettingControl()],bi.prototype,"defaultEscapeCharacter",2);var vi=class extends y{constructor(){super({nameKey:"rules.yaml-title.name",descriptionKey:"rules.yaml-title.description",type:"YAML",hasSpecialExecutionOrder:!0})}get OptionsClass(){return bi}apply(n,t){n=Rt(n);let i="";switch(t.mode){case"filename":i=t.fileName;break;case"first-h1":i=this.getFirstH1Header(n);break;default:i=this.getFirstH1Header(n),i=i||t.fileName}return i=xt(i,t.defaultEscapeCharacter),he(n,r=>{let a=` +${t.titleKey}.* +`,o=new RegExp(a);if(o.test(r))r=r.replace(o,Je(` +${t.titleKey}: ${i} +`));else{let s=r.indexOf(` +---`);r=Fn(r,s,` +${t.titleKey}: ${i}`)}return r})}getFirstH1Header(n){return ke([g.code,g.math,g.yaml,g.tag],n,Ho)}get optionBuilders(){return[new we({OptionsClass:bi,nameKey:"rules.yaml-title.title-key.name",descriptionKey:"rules.yaml-title.title-key.description",optionsKey:"titleKey"}),new J({OptionsClass:bi,nameKey:"rules.yaml-title.mode.name",descriptionKey:"rules.yaml-title.mode.description",optionsKey:"mode",records:[{value:"first-h1-or-filename-if-h1-missing",description:"Uses the first H1 in the file or the filename of the file if there is not H1"},{value:"filename",description:"Uses the filename as the title"},{value:"first-h1",description:"Uses the first H1 in the file as the title"}]})]}};vi=L([y.register],vi);var xA=` + + + + + + + + + + + +`,LA=` + + + + + + + + + + +`,SA=` + + + + + + + + + + + +`,EA=` + + + +`,TA=` + + + +`,CA=` + + + + +`,OA=` + + + + + + +`,MA=` + + + +`,IA=` + + + + +`,FA=` + + + +`,RA=` + + + + +`,BA=` + + +`,DA=` + + + + + + + + + +`,KA=` + + +`,zA=` + +`,Me={folder:{id:"lint-folder",source:LA},file:{id:"lint-file",source:xA},vault:{id:"lint-vault",source:SA},whitespace:{id:"lint-whitespace",source:EA},math:{id:"lint-math",source:TA},content:{id:"lint-content",source:CA},paste:{id:"lint-paste",source:OA},custom:{id:"lint-custom",source:MA},heading:{id:"lint-heading",source:IA},footer:{id:"lint-footer",source:FA},yaml:{id:"lint-yaml",source:RA},general:{id:"lint-general",source:BA},debug:{id:"lint-debug",source:DA},clipboard:{id:"linter-clipboard",source:KA},success:{id:"linter-success",source:zA}};var Xi=require("obsidian");var Fs=class{constructor(){this.disabledRules=[]}lintText(n){this.skipFile=!1;let t=n.oldText;if([this.disabledRules,this.skipFile]=as(t),this.skipFile)return t;In(x("logs.rule-running"));let i=x("logs.pre-rules");In(i);let r=this.runBeforeRegularRules(n);rn(i);let a=!1;for(let l of n.settings.ruleConfigs["auto-correct-common-misspellings"]["extra-auto-correct-files"]??[])if(l.filePath!=""){a=!0;break}let o=x("logs.disabled-text");for(let l of Bt){if(this.disabledRules.includes(l.alias)){nt(l.alias+" "+o);continue}else if(l.hasSpecialExecutionOrder||l.type==="Paste")continue;if(l.alias==="auto-correct-common-misspellings"&&a){let c=!1;for(let u of n.settings.ruleConfigs["auto-correct-common-misspellings"]["extra-auto-correct-files"]??[])if(u.filePath==n.fileInfo.path){c=!0;break}if(c){nt(l.alias+" "+o);continue}}[r]=An.applyIfEnabledBase(l,r,n.settings,{fileCreatedTime:n.fileInfo.createdAtFormatted,fileModifiedTime:n.fileInfo.modifiedAtFormatted,fileName:n.fileInfo.name,locale:n.momentLocale,minimumNumberOfDollarSignsToBeAMathBlock:n.settings.commonStyles.minimumNumberOfDollarSignsToBeAMathBlock,aliasArrayStyle:n.settings.commonStyles.aliasArrayStyle,tagArrayStyle:n.settings.commonStyles.tagArrayStyle,defaultEscapeCharacter:n.settings.commonStyles.escapeCharacter,removeUnnecessaryEscapeCharsForMultiLineArrays:n.settings.commonStyles.removeUnnecessaryEscapeCharsForMultiLineArrays})}let s=x("logs.custom-regex");return In(s),r=this.runCustomRegexReplacement(n.settings.customRegexes,r),rn(s),n.oldText=r,this.runAfterRegularRules(t,n)}runBeforeRegularRules(n){let t=n.oldText;return[t]=ri.applyIfEnabled(t,n.settings,this.disabledRules),[t]=ni.applyIfEnabled(t,n.settings,this.disabledRules,{defaultEscapeCharacter:n.settings.commonStyles.escapeCharacter}),[t]=ai.applyIfEnabled(t,n.settings,this.disabledRules,{minimumNumberOfDollarSignsToBeAMathBlock:n.settings.commonStyles.minimumNumberOfDollarSignsToBeAMathBlock}),[t]=Zn.applyIfEnabled(t,n.settings,this.disabledRules,{misspellingToCorrection:n.defaultMisspellings}),t}runAfterRegularRules(n,t){let i=t.oldText,r=x("logs.post-rules");In(r),[i]=ei.applyIfEnabled(i,t.settings,this.disabledRules),[i]=vi.applyIfEnabled(i,t.settings,this.disabledRules,{fileName:t.fileInfo.name,defaultEscapeCharacter:t.settings.commonStyles.escapeCharacter}),[i]=yi.applyIfEnabled(i,t.settings,this.disabledRules,{fileName:t.fileInfo.name,aliasArrayStyle:t.settings.commonStyles.aliasArrayStyle,defaultEscapeCharacter:t.settings.commonStyles.escapeCharacter,removeUnnecessaryEscapeCharsForMultiLineArrays:t.settings.commonStyles.removeUnnecessaryEscapeCharsForMultiLineArrays}),[i]=Qn.applyIfEnabled(i,t.settings,this.disabledRules),[i]=ii.applyIfEnabled(i,t.settings,this.disabledRules,{defaultEscapeCharacter:t.settings.commonStyles.escapeCharacter}),[i]=gi.applyIfEnabled(i,t.settings,this.disabledRules),[i]=ti.applyIfEnabled(i,t.settings,this.disabledRules);let a=i.match(Ne);a!=null&&([i]=xn.applyIfEnabled(i,t.settings,this.disabledRules));let o=t.getCurrentTime(),s;[i,s]=Qt.applyIfEnabled(i,t.settings,this.disabledRules,{fileCreatedTime:t.fileInfo.createdAtFormatted,fileModifiedTime:t.fileInfo.modifiedAtFormatted,currentTime:o,alreadyModified:n!=i,locale:t.momentLocale}),a===null&&([i]=xn.applyIfEnabled(i,t.settings,this.disabledRules));let l=Qt.getRuleOptions(t.settings);return o=t.getCurrentTime(),l.convertToUTC&&(o=o.utc()),[i]=hi.applyIfEnabled(i,t.settings,this.disabledRules,{currentTimeFormatted:o.format(l.format.trimEnd()),yamlTimestampDateModifiedEnabled:s&&l.dateModified,dateModifiedKey:l.dateModifiedKey}),rn(r),rn(x("logs.rule-running")),i}runCustomCommands(n,t){if(this.skipFile)return;nt(x("logs.running-custom-lint-command"));let i=new Set;for(let r of n)if(!(!r.id||!r.enabled)){if(i.has(r.id)){pt(x("logs.custom-lint-duplicate-warning").replace("{COMMAND_NAME}",r.name));continue}try{i.add(r.id),t.executeCommandById(r.id)}catch(a){os(a,`${x("logs.custom-lint-error-message")} ${r.id}`)}}}runCustomRegexReplacement(n,t){return ke([g.customIgnore],t,i=>{nt(x("logs.running-custom-regex"));let r=i,a=i;for(let o of n){let s=o.find===void 0||o.find==""||o.find===null,l=o.replace===void 0||o.replace===null;if(s||l||!o.enabled)continue;let c=o.label;c&&c.trim()!=""&&(c+=`: +`),c+=`/${o.find}/${o.flags}/${o.replace}/`,nt(c);let u=new RegExp(`${o.find}`,o.flags);r=r.replace(u,Cd(o.replace)),a!=r&&nt(r),a=r}return r})}runPasteLint(n,t,i){let r=i.oldText;return[r]=ui.applyIfEnabled(r,i.settings,[]),[r]=mi.applyIfEnabled(r,i.settings,[]),[r]=pi.applyIfEnabled(r,i.settings,[]),[r]=li.applyIfEnabled(r,i.settings,[]),[r]=di.applyIfEnabled(r,i.settings,[]),[r]=oi.applyIfEnabled(r,i.settings,[],{lineContent:n,selectedText:t}),[r]=si.applyIfEnabled(r,i.settings,[],{lineContent:n,selectedText:t}),[r]=Jn.applyIfEnabled(r,i.settings,[],{lineContent:n}),r}runYAMLTimestampByItself(n){let t=n.oldText,i=n.getCurrentTime();return[t]=Qt.applyIfEnabled(t,n.settings,this.disabledRules,{fileCreatedTime:n.fileInfo.createdAtFormatted,fileModifiedTime:n.fileInfo.modifiedAtFormatted,currentTime:i,alreadyModified:!0,locale:n.momentLocale}),t}};function ki(e,n=null,t,i,r){let a=n&&n.stat.ctime!==0?(0,Xi.moment)(n.stat.ctime):(0,Xi.moment)();a.locale(t);let o=n?(0,Xi.moment)(n.stat.mtime):(0,Xi.moment)();o.locale(t);let s=o.format(),l=a.format();return{oldText:e,fileInfo:{name:n?n.basename:"",createdAtFormatted:l,modifiedAtFormatted:s,path:n?n.path:""},settings:i,momentLocale:t,getCurrentTime:()=>{let c=(0,Xi.moment)();return c.locale(t),c},defaultMisspellings:r}}var Rs=require("obsidian");var Ha=class extends Rs.Modal{constructor(n,t,i,r,a,o=!1){super(n),this.modalEl.addClass("confirm-modal"),this.contentEl.createEl("h3",{text:x("warning-text"),cls:"modal-heading"}),o&&this.contentEl.createEl("p",{text:x("custom-command-warning"),cls:"modal-warn"}),this.contentEl.createEl("p",{text:t+" "+x("file-backup-text")}).id="confirm-dialog",this.contentEl.createDiv("modal-button-container",s=>{s.createEl("button",{text:x("cancel-button-text")}).addEventListener("click",()=>this.close());let l=s.createEl("button",{attr:{type:"submit"},cls:"mod-cta",text:i});l.addEventListener("click",async c=>{new Rs.Notice(r),this.close(),await a()}),setTimeout(()=>{l.focus()},50)})}};var Va=require("obsidian");var Bs=require("obsidian");var NA={General:Me.general.id,Custom:Me.custom.id,YAML:Me.yaml.id,Heading:Me.heading.id,Footnote:Me.footer.id,Content:Me.content.id,Spacing:Me.whitespace.id,Paste:Me.paste.id,Debug:Me.debug.id},YA={General:"tabs.names.general",Custom:"tabs.names.custom",YAML:"tabs.names.yaml",Heading:"tabs.names.heading",Footnote:"tabs.names.footnote",Content:"tabs.names.content",Spacing:"tabs.names.spacing",Paste:"tabs.names.paste",Debug:"tabs.names.debug"},Kt=class{constructor(n,t,i,r,a){this.name=i;this.isMobile=r;this.plugin=a;this.searchSettingInfo=[];this.navButton=n.createDiv("linter-navigation-item");let o="linter-desktop";r&&(o="linter-mobile"),this.navButton.addClass(o),(0,Bs.setIcon)(this.navButton.createSpan({cls:"linter-navigation-item-icon"}),NA[i]);let s=x(YA[i]);this.navButton.createSpan().setText(s),this.contentEl=t.createDiv("linter-tab-settings"),this.contentEl.id=i.toLowerCase().replace(" ","-"),this.headingEl=new Bs.Setting(this.contentEl).setName(s).setHeading().nameEl,Te(this.headingEl)}addSettingSearchInfo(n,t="",i="",r=null,a=null){this.searchSettingInfo.push({containerEl:n,name:t.toLowerCase(),description:i.toLowerCase(),options:r,alias:a})}addSettingSearchInfoForGeneralSettings(n){this.searchSettingInfo.push({containerEl:n.containerEl,name:n.name.toLowerCase(),description:n.description.toLowerCase(),options:null,alias:null})}updateTabDisplayMode(n,t="the status is still the same"){switch(n?(this.navButton.addClass("linter-navigation-item-selected"),Ye(this.contentEl)):(this.navButton.removeClass("linter-navigation-item-selected"),Te(this.contentEl)),t){case"entering search mode by focusing on the search input box":Ye(this.contentEl),Ye(this.headingEl);for(let i of this.searchSettingInfo)Ye(i.containerEl);break;case"leaving search mode by selecting a tab":Te(this.headingEl);for(let i of this.searchSettingInfo)Ye(i.containerEl);break}}};var Qm=require("obsidian");var Um=require("obsidian");var Sn=class{constructor(n,t,i,r,a,o=null){this.containerEl=n;this.keyToUpdate=r;this.plugin=a;this.beforeSave=o;this.name=x(t),this.description=x(i)}async saveValue(n){let t=this.keyToUpdate.split(".");t.length===2?this.plugin.settings[t[0]][t[1]]=n:this.plugin.settings[this.keyToUpdate]=n,this.beforeSave&&this.beforeSave(),await this.plugin.saveSettings()}getDefaultValue(){let n=this.keyToUpdate.split(".");return n.length===2?Pa[n[0]][n[1]]:Pa[this.keyToUpdate]}getString(){return pr(this.plugin.settings,this.keyToUpdate)??this.getDefaultValue()}getBoolean(){return Qu(this.plugin.settings,this.keyToUpdate)??this.getDefaultValue()}getNumber(){return Zu(this.plugin.settings,this.keyToUpdate)??this.getDefaultValue()}parseNameAndDescription(){it(this.name,this.setting.nameEl),it(this.description,this.setting.descEl),this.setting.descEl.addClass("linter-no-padding-top")}};var Jt=class extends Sn{constructor(t,i,r,a,o,s,l=null){super(t,i,r,a,o,l);this.dropdownRecords=s;this.display()}display(){this.setting=new Um.Setting(this.containerEl).setName(this.name).setDesc(this.description).addDropdown(t=>{this.addDropdownRecords(t),t.setValue(this.getString()),t.onChange(async i=>{this.saveValue(i)})})}addDropdownRecords(t){if(this.dropdownRecords.isForEnum){for(let i of this.dropdownRecords.values){let r="enums."+i;t.addOption(i,x(r))}return}for(let i=0;i{n.inputEl.type="number",n.setValue(this.getNumber().toString()).onChange(async t=>{this.saveValue(parseInt(t))})})}};var Vm=require("obsidian");var zt=class extends Sn{constructor(t,i,r,a,o,s){super(t,i,r,a,o);this.onChange=s;this.display()}display(){this.setting=new Vm.Setting(this.containerEl).addToggle(t=>{t.setValue(this.getBoolean()).onChange(async i=>{this.onChange&&this.onChange(i),this.saveValue(i)})}),this.parseNameAndDescription()}hide(){Te(this.setting.settingEl)}unhide(){Ye(this.setting.settingEl)}};var Gm=require("obsidian");var jm=require("obsidian");var Nt=class{constructor(n,t,i,r,a,o,s,l){this.containerEl=n;this.name=t;this.description=i;this.warning=r;this.addInputBtnText=a;this.app=o;this.saveSettings=s;this.onAddInput=l}display(){this.containerEl.createDiv({cls:"setting-item-name",text:this.name});let n=this.containerEl.createDiv({cls:"setting-item-description"});it(this.description,n.createEl("p",{cls:"custom-row-description"})),new jm.Setting(this.containerEl).addButton(t=>{t.setIcon("plus-with-circle").setTooltip(this.addInputBtnText).onClick(()=>this.onAddInput()),t.buttonEl.addClass("clickable-icon")}).setClass("linter-border-bottom").setDesc(this.warning??"").descEl.addClass("mod-warning"),this.inputElDiv=this.containerEl.createDiv(),this.showInputEls()}resetInputEls(){this.inputElDiv.empty(),this.showInputEls()}};var $m=require("obsidian"),qa=class extends bn{constructor(t,i,r=[]){super(t,i);this.app=t;this.inputEl=i;this.valuesToExclude=r}getSuggestions(t){let i=this.app.vault.getAllLoadedFiles().filter(s=>s instanceof $m.TFolder&&s.path!=="/").map(s=>s.path);if(!i)return[];let r=i.filter(s=>!this.valuesToExclude.includes(s)||s===this.inputEl.getAttribute("folderName")),a=[],o=t.toLowerCase();return r.forEach(s=>{s.toLowerCase().contains(o)&&a.push(s)}),a}renderSuggestion(t,i){i.setText(t)}selectSuggestion(t){this.inputEl.setAttribute("folderName",t),this.inputEl.value=t,this.inputEl.trigger("input"),this.close()}};var Ks=class extends Nt{constructor(t,i,r,a){super(t,x("tabs.general.folders-to-ignore.name"),x("tabs.general.folders-to-ignore.description"),null,x("tabs.general.folders-to-ignore.add-input-button-text"),r,a,()=>{let o="";this.foldersToIgnore.push(o),this.saveSettings(),this.addFolderToIgnore(o,this.foldersToIgnore.length-1,!0)});this.foldersToIgnore=i;this.display(),this.inputElDiv.addClass("linter-folder-ignore-container")}showInputEls(){this.foldersToIgnore.forEach((t,i)=>{this.addFolderToIgnore(t,i)})}addFolderToIgnore(t,i,r=!1){new Gm.Setting(this.inputElDiv).addSearch(o=>{new qa(this.app,o.inputEl,this.foldersToIgnore),o.setPlaceholder(x("tabs.general.folders-to-ignore.folder-search-placeholder-text")).setValue(t).onChange(s=>{let l=s;(l===""||l===o.inputEl.getAttribute("folderName"))&&(this.foldersToIgnore[i]=l,this.saveSettings())}),o.inputEl.setAttr("tabIndex",i),o.inputEl.addClass("linter-folder-ignore"),r&&o.inputEl.focus()}).addExtraButton(o=>{o.setIcon("trash").setTooltip(x("tabs.general.folders-to-ignore.delete-tooltip")).onClick(()=>{this.foldersToIgnore.splice(i,1),this.saveSettings(),this.resetInputEls()})}).settingEl.addClass("linter-no-border")}};var Zm=require("obsidian");var _A="i",zs=class extends Nt{constructor(t,i,r,a){super(t,x("tabs.general.files-to-ignore.name"),x("tabs.general.files-to-ignore.description"),x("tabs.general.files-to-ignore.warning"),x("tabs.general.files-to-ignore.add-input-button-text"),r,a,()=>{let o={label:"",match:"",flags:_A};this.filesToIgnore.push(o),this.saveSettings(),this.addFileToIgnore(o,this.filesToIgnore.length-1,!0)});this.filesToIgnore=i;this.display(),this.inputElDiv.addClass("linter-files-to-ignore-container")}showInputEls(){this.filesToIgnore.forEach((t,i)=>{this.addFileToIgnore(t,i)})}addFileToIgnore(t,i,r=!1){let a=this.inputElDiv.createDiv({cls:"linter-files-to-ignore"});new Zm.Setting(a).addText(o=>{o.setPlaceholder(x("tabs.general.files-to-ignore.label-placeholder-text")).setValue(t.label).onChange(s=>{this.filesToIgnore[i].label=s,this.saveSettings()}),o.inputEl.addClass("linter-files-to-ignore-normal-input"),r&&o.inputEl.focus()}).addText(o=>{o.setPlaceholder(x("tabs.general.files-to-ignore.file-search-placeholder-text")).setValue(t.match).onChange(s=>{this.filesToIgnore[i].match=s,this.saveSettings()}),o.inputEl.addClass("linter-files-to-ignore-normal-input")}).addText(o=>{o.setPlaceholder(x("tabs.general.files-to-ignore.flags-placeholder-text")).setValue(t.flags).onChange(s=>{this.filesToIgnore[i].flags=s,this.saveSettings()}),o.inputEl.addClass("linter-files-to-ignore-flags")}).addExtraButton(o=>{o.setIcon("trash").setTooltip(x("tabs.general.files-to-ignore.delete-tooltip")).onClick(()=>{this.filesToIgnore.splice(i,1),this.saveSettings(),this.resetInputEls()})})}};var Ns=class extends Kt{constructor(t,i,r,a,o){super(t,i,"General",r,a);this.app=o;this.display()}display(){let t=this.contentEl.createDiv(),i=null,r=new zt(t,"tabs.general.lint-on-save.name","tabs.general.lint-on-save.description","lintOnSave",this.plugin,S=>{S?i.unhide():i.hide()});this.addSettingSearchInfoForGeneralSettings(r),t=this.contentEl.createDiv(),i=new zt(t,"tabs.general.display-message.name","tabs.general.display-message.description","displayChanged",this.plugin),this.addSettingSearchInfoForGeneralSettings(i),r.getBoolean()||i.hide();let a=null;t=this.contentEl.createDiv();let o=new zt(t,"tabs.general.lint-on-file-change.name","tabs.general.lint-on-file-change.description","lintOnFileChange",this.plugin,S=>{S?a.unhide():a.hide()});this.addSettingSearchInfoForGeneralSettings(o),t=this.contentEl.createDiv(),a=new zt(t,"tabs.general.display-lint-on-file-change-message.name","tabs.general.display-lint-on-file-change-message.description","displayLintOnFileChangeNotice",this.plugin),this.addSettingSearchInfoForGeneralSettings(a),o.getBoolean()||a.hide();let s=navigator.language?.toLowerCase(),l=["system-default"],c=[x("tabs.general.same-as-system-locale").replace("{SYS_LOCALE}",s)];for(let S of Qm.moment.locales())l.push(S),c.push(S);let u={isForEnum:!1,values:l,descriptions:c};t=this.contentEl.createDiv(),this.addSettingSearchInfoForGeneralSettings(new Jt(t,"tabs.general.override-locale.name","tabs.general.override-locale.description","linterLocale",this.plugin,u,async()=>{await this.plugin.setOrUpdateMomentInstance()}));let d={isForEnum:!0,values:["multi-line","single-line","single string comma delimited","single string to single-line","single string to multi-line"],descriptions:[]};t=this.contentEl.createDiv(),this.addSettingSearchInfoForGeneralSettings(new Jt(t,"tabs.general.yaml-aliases-section-style.name","tabs.general.yaml-aliases-section-style.description","commonStyles.aliasArrayStyle",this.plugin,d));let m={isForEnum:!0,values:["multi-line","single-line","single string to single-line","single string to multi-line","single-line space delimited","single string space delimited","single string comma delimited"],descriptions:[]};t=this.contentEl.createDiv(),this.addSettingSearchInfoForGeneralSettings(new Jt(t,"tabs.general.yaml-tags-section-style.name","tabs.general.yaml-tags-section-style.description","commonStyles.tagArrayStyle",this.plugin,m));let p=['"',"'"],f={isForEnum:!1,values:p,descriptions:p};t=this.contentEl.createDiv(),this.addSettingSearchInfoForGeneralSettings(new Jt(t,"tabs.general.default-escape-character.name","tabs.general.default-escape-character.description","commonStyles.escapeCharacter",this.plugin,f)),t=this.contentEl.createDiv(),this.addSettingSearchInfoForGeneralSettings(new zt(t,"tabs.general.remove-unnecessary-escape-chars-in-multi-line-arrays.name","tabs.general.remove-unnecessary-escape-chars-in-multi-line-arrays.description","commonStyles.removeUnnecessaryEscapeCharsForMultiLineArrays",this.plugin)),t=this.contentEl.createDiv(),this.addSettingSearchInfoForGeneralSettings(new Ds(t,"tabs.general.number-of-dollar-signs-to-indicate-math-block.name","tabs.general.number-of-dollar-signs-to-indicate-math-block.description","commonStyles.minimumNumberOfDollarSignsToBeAMathBlock",this.plugin));let b=this.contentEl.createDiv(),h=new Ks(b,this.plugin.settings.foldersToIgnore,this.app,()=>{this.plugin.saveSettings()});this.addSettingSearchInfo(b,h.name,h.description.replaceAll(` +`," "));let k=this.contentEl.createDiv(),A=new zs(k,this.plugin.settings.filesToIgnore,this.app,()=>{this.plugin.saveSettings()});this.addSettingSearchInfo(k,A.name,A.description.replaceAll(` +`," "))}};var Jm=require("obsidian"),Ys=class extends Kt{constructor(t,i,r,a,o,s){super(t,i,r,o,s);this.rules=a;this.display()}display(){for(let t of this.rules){let i=this.contentEl.createDiv();i.id=t.alias,new Jm.Setting(i).setHeading().nameEl.createEl("a",{href:t.getURL(),text:t.getName()});let r=[],a=!0,o=!1;for(let s of t.options)s.display(i,this.plugin.settings,this.plugin),r.push(s.getSearchInfo()),a?(a=!1,s instanceof kn&&(o=!this.plugin.settings.ruleConfigs[s.ruleAlias][s.configKey])):o&&s.hide();this.addSettingSearchInfo(i,t.getName().toLowerCase(),t.getDescription().toLowerCase(),r,i.id)}}};var Xm=require("obsidian");var Ua=class extends bn{constructor(t,i,r=[]){super(t,i);this.app=t;this.inputEl=i;this.valuesToExclude=r}getSuggestions(t){let i=this.app.commands.listCommands();if(!i)return[];let r=i.filter(s=>{for(let l of this.valuesToExclude)if(l.id==s.id&&!(this.inputEl.hasAttribute("commandId")&&this.inputEl.getAttribute("commandId")==s.id))return!1;return!0}),a=[],o=t.toLowerCase();return r.forEach(s=>{(s.id.contains(o)||s.name.toLowerCase().contains(o))&&a.push(s)}),a}renderSuggestion(t,i){i.setText(t.name)}selectSuggestion(t){this.inputEl.value=t.name,this.inputEl.setAttribute("commandId",t.id),this.inputEl.trigger("input"),this.close()}};var _s=class extends Nt{constructor(t,i,r,a){super(t,x("options.custom-command.name"),x("options.custom-command.description"),x("options.custom-command.warning"),x("options.custom-command.add-input-button-text"),r,a,()=>{let o={id:"",name:"",enabled:!0};this.lintCommands.push(o),this.saveSettings(),this.addCommand(o,this.lintCommands.length-1,!0)});this.lintCommands=i;this.display()}showInputEls(){this.lintCommands.forEach((t,i)=>{this.addCommand(t,i)})}addCommand(t,i,r=!1){new Xm.Setting(this.inputElDiv).addSearch(a=>{new Ua(this.app,a.inputEl,this.lintCommands),a.setPlaceholder(x("options.custom-command.command-search-placeholder-text")).setValue(t.name).onChange(o=>{let s={id:a.inputEl.getAttribute("commandId"),name:o,enabled:t.enabled};s.name&&s.id?(this.lintCommands[i]=s,this.saveSettings()):!s.name&&!s.id&&(this.lintCommands[i]=s,this.saveSettings())}),a.inputEl.setAttr("tabIndex",i),a.inputEl.addClass("linter-custom-command"),r&&a.inputEl.focus()}).addExtraButton(a=>{a.setIcon("up-chevron-glyph").setTooltip(x("options.custom-command.move-up-tooltip")).onClick(()=>{this.arrayMove(i,i-1),this.saveSettings(),this.resetInputEls()})}).addExtraButton(a=>{a.setIcon("down-chevron-glyph").setTooltip(x("options.custom-command.move-down-tooltip")).onClick(()=>{this.arrayMove(i,i+1),this.saveSettings(),this.resetInputEls()})}).addExtraButton(a=>{a.setIcon("trash").setTooltip(x("options.custom-command.delete-tooltip")).onClick(()=>{this.lintCommands.splice(i,1),this.saveSettings(),this.resetInputEls()})}).addToggle(a=>{a.setValue(t.enabled).onChange(o=>{t.enabled=o})})}arrayMove(t,i){if(i<0||i===this.lintCommands.length)return;let r=this.lintCommands[t];this.lintCommands[t]=this.lintCommands[i],this.lintCommands[i]=r}};var iu=require("obsidian");var PA="gm",Ps=class extends Nt{constructor(t,i,r,a){super(t,x("options.custom-replace.name"),x("options.custom-replace.description"),x("options.custom-replace.warning"),x("options.custom-replace.add-input-button-text"),r,a,()=>{let o={label:"",find:"",replace:"",flags:PA,enabled:!0};this.regexes.push(o),this.saveSettings(),this.addRegex(o,this.regexes.length-1,!0)});this.regexes=i;this.display(),this.inputElDiv.addClass("linter-custom-regex-replacement-container")}showInputEls(){this.regexes.forEach((t,i)=>{this.addRegex(t,i)})}addRegex(t,i,r=!1){let a=this.inputElDiv.createDiv({cls:"linter-custom-regex-replacement"}),o=a.createDiv(),s=new iu.Setting(o).addText(u=>{u.setPlaceholder(x("options.custom-replace.label-placeholder-text")).setValue(t.label).onChange(d=>{this.regexes[i].label=d,this.saveSettings()}),u.inputEl.setAttr("inputIndex",i),u.inputEl.addClass("linter-custom-regex-replacement-label-input"),r&&u.inputEl.focus()});s.controlEl.addClass("linter-custom-regex-replacement-label"),s.descEl.remove(),s.infoEl.remove(),s.nameEl.remove();let l=a.createDiv();new iu.Setting(l).addText(u=>{u.setPlaceholder(x("options.custom-replace.regex-to-find-placeholder-text")).setValue(t.find).onChange(d=>{this.regexes[i].find=d,this.saveSettings()}),u.inputEl.addClass("linter-custom-regex-replacement-normal-input")}).addText(u=>{u.setPlaceholder(x("options.custom-replace.flags-placeholder-text")).setValue(t.flags).onChange(d=>{this.regexes[i].flags=d,this.saveSettings()}),u.inputEl.addClass("linter-custom-regex-replacement-flags")}).addText(u=>{u.setPlaceholder(x("options.custom-replace.regex-to-replace-placeholder-text")).setValue(t.replace).onChange(d=>{this.regexes[i].replace=d,this.saveSettings()}),u.inputEl.addClass("linter-custom-regex-replacement-normal-input")}).addExtraButton(u=>{u.setIcon("up-chevron-glyph").setTooltip(x("options.custom-replace.move-up-tooltip")).onClick(()=>{this.arrayMove(i,i-1),this.saveSettings(),this.resetInputEls()})}).addExtraButton(u=>{u.setIcon("down-chevron-glyph").setTooltip(x("options.custom-replace.move-down-tooltip")).onClick(()=>{this.arrayMove(i,i+1),this.saveSettings(),this.resetInputEls()})}).addExtraButton(u=>{u.setIcon("trash").setTooltip(x("options.custom-replace.delete-tooltip")).onClick(()=>{this.regexes.splice(i,1),this.saveSettings(),this.resetInputEls()})}).addToggle(u=>{u.setValue(t.enabled).onChange(d=>{t.enabled=d})}).settingEl.addClass("linter-custom-regex-replacement-row2")}arrayMove(t,i){if(i<0||i===this.regexes.length)return;let r=this.regexes[t];this.regexes[t]=this.regexes[i],this.regexes[i]=r}};var Hs=class extends Kt{constructor(t,i,r,a,o){super(t,i,"Custom",r,o);this.app=a;this.display()}display(){let t=this.contentEl.createDiv(),i=new _s(t,this.plugin.settings.lintCommands,this.app,()=>{this.plugin.saveSettings()});this.addSettingSearchInfo(t,i.name,i.description.replaceAll(` +`," ")+i.warning.replaceAll(` +`," "));let r=this.contentEl.createDiv(),a=new Ps(r,this.plugin.settings.customRegexes,this.app,()=>{this.plugin.saveSettings()});this.addSettingSearchInfo(r,a.name,a.description.replaceAll(` +`," ")+a.warning.replaceAll(` +`," "))}};var ef=require("obsidian");var qs=class{constructor(n,t,i,r){this.containerEl=n;this.searchZeroState=t;this.tabNameToTab=i;this.onFocus=r;this.searchSettingInfo=new Map;for(let[a,o]of i)this.searchSettingInfo.set(a,o.searchSettingInfo);this.display()}display(){let n=new ef.Setting(this.containerEl);n.settingEl.addClass("linter-no-border"),n.addSearch(t=>{this.search=t}),this.search.setPlaceholder(x("tabs.default-search-bar-text")),this.search.inputEl.onfocus=()=>{this.onFocus()},this.search.onChange(t=>{this.searchSettings(t.toLowerCase())})}searchSettings(n){let t=new Set,i=function(r,a){Ye(r),t.has(a)||t.add(a)};for(let[r,a]of this.searchSettingInfo)for(let o of a)if(n.trim()===""||o.alias?.includes(n)||o.description.includes(n)||o.name.includes(n))i(o.containerEl,r);else if(o.options)for(let s of o.options){if(s.description.toLowerCase().includes(n)||s.name.toLowerCase().includes(n)){i(o.containerEl,r);break}else if(s.options){for(let l of s.options)if(l.description.toLowerCase().includes(n)||l.value.toLowerCase().includes(n)){i(o.containerEl,r);break}}Te(o.containerEl)}else Te(o.containerEl);for(let[r,a]of this.tabNameToTab)t.has(r)?Ye(a.headingEl):Te(a.headingEl);t.size===0?Ye(this.searchZeroState):Te(this.searchZeroState)}focusOnInput(){this.search.inputEl.focus()}};var tf=Cn(so());var er=require("obsidian");var Wa=class{constructor(n,t,i,r=!0){this.containerEl=n;this.name=t;this.description=i;this.disabled=r;this.display()}display(){this.settingEl=this.containerEl.createDiv();let n=this.settingEl.createDiv("setting-item-info");this.nameEl=n.createDiv("setting-item-name"),this.nameEl.setText(this.name),this.descEl=n.createDiv("setting-item-description"),this.descEl.setText(this.description),this.inputContainerEl=this.settingEl.createDiv("full-width-textbox-input-wrapper"),this.inputContainerEl.onmouseover=()=>{this.getInput().trim()!=""&&this.copyEl.removeClass("linter-visually-hidden")},this.inputContainerEl.onmouseleave=()=>{this.copyEl.addClass("linter-visually-hidden")},this.inputEl=this.inputContainerEl.createEl("textarea",{cls:"full-width"}),this.inputEl.spellcheck=!1,this.inputEl.disabled=this.disabled,this.copyEl=this.inputContainerEl.createDiv({cls:"settings-copy-button linter-visually-hidden ",attr:{"aria-label":x("copy-aria-label")}}),this.copyIconEl=this.copyEl.createSpan(),(0,er.setIcon)(this.copyIconEl,"linter-clipboard"),this.copyIconEl.onclick=()=>{this.handleCopy(this.copyIconEl)}}getInput(){return this.inputEl.value}handleCopy(n){navigator.clipboard.writeText(this.getInput()).then(()=>{(0,er.setIcon)(n,"linter-success"),setTimeout(()=>{(0,er.setIcon)(n,"linter-clipboard")},1500)},t=>{new er.Notice(`${x("notice-text.copy-to-clipboard-failed")+t}`,0)})}hide(){Te(this.settingEl)}unhide(){Ye(this.settingEl)}};var HA=Object.keys(tf.default.levels),Us=class extends Kt{constructor(n,t,i,r){super(n,t,"Debug",i,r),this.display()}display(){let n=this.contentEl.createDiv(),t={isForEnum:!0,values:HA,descriptions:[]};this.addSettingSearchInfoForGeneralSettings(new Jt(n,"tabs.debug.log-level.name","tabs.debug.log-level.description","logLevel",this.plugin,t,async()=>{mo(this.plugin.settings.logLevel)})),n=this.contentEl.createDiv();let i=x("tabs.debug.linter-config.name"),r=x("tabs.debug.linter-config.description");new Wa(n,i,r).inputEl.setText(JSON.stringify(this.plugin.settings,null,2)),this.addSettingSearchInfo(n,i,r);let o=null;n=this.contentEl.createDiv();let s=new zt(n,"tabs.debug.log-collection.name","tabs.debug.log-collection.description","recordLintOnSaveLogs",this.plugin,l=>{l?o.unhide():o.hide()});this.addSettingSearchInfoForGeneralSettings(s),n=this.contentEl.createDiv(),i=x("tabs.debug.linter-logs.name"),r=x("tabs.debug.linter-logs.description"),o=new Wa(n,i,""),o.inputEl.setText(co.join(` +`)),it(r,o.descEl),s.getBoolean()||o.hide(),this.addSettingSearchInfo(n,i,r)}};var Ws=class extends Va.PluginSettingTab{constructor(t,i){super(t,i);this.plugin=i;this.tabNameToTab=new Map;this.selectedTab="General"}display(){let{containerEl:t}=this;t.empty();let i=t.createDiv("linter-setting-title");Va.Platform.isMobile?i.addClass("linter-mobile"):i.createEl("h1").setText(x("linter-title")),this.navContainer=t.createEl("nav",{cls:"linter-setting-header"}),this.tabNavEl=this.navContainer.createDiv("linter-setting-tab-group"),this.settingsContentEl=t.createDiv("linter-setting-content"),this.addTabs(Va.Platform.isMobile),this.createSearchZeroState(),this.generateSearchBar(i),this.selectedTab==""&&this.tabSearcher.focusOnInput()}addTabs(t){this.addTab(new Ns(this.tabNavEl,this.settingsContentEl,t,this.plugin,this.app));for(let i of Object.values(K))this.addTab(new Ys(this.tabNavEl,this.settingsContentEl,i,$n.get(i),t,this.plugin));this.addTab(new Hs(this.tabNavEl,this.settingsContentEl,t,this.app,this.plugin)),this.addTab(new Us(this.tabNavEl,this.settingsContentEl,t,this.plugin))}generateSearchBar(t){this.tabSearcher=new qs(t,this.searchZeroState,this.tabNameToTab,()=>{for(let i of this.tabNameToTab.values()){i.updateTabDisplayMode(!1,"entering search mode by focusing on the search input box");let r=this.tabSearcher.search.getValue();this.selectedTab==""&&r.trim()!=""&&this.tabSearcher.searchSettings(r.toLowerCase()),this.selectedTab=""}})}createSearchZeroState(){this.searchZeroState=this.settingsContentEl.createDiv({cls:"search-zero-state"}),Te(this.searchZeroState),this.searchZeroState.createEl("p",{text:x("empty-search-results-text")})}addTab(t){t.navButton.onclick=()=>{this.onTabClick(t.name)},t.updateTabDisplayMode(this.selectedTab===t.name,"the status is still the same"),this.tabNameToTab.set(t.name,t)}onTabClick(t){if(this.selectedTab!==t){if(this.selectedTab=="")for(let[i,r]of this.tabNameToTab)r.updateTabDisplayMode(i===t,"leaving search mode by selecting a tab");else Te(this.searchZeroState),this.tabNameToTab.get(t).updateTabDisplayMode(!0),this.tabNameToTab.get(this.selectedTab).updateTabDisplayMode(!1);this.selectedTab=t}}};var rf=require("obsidian");var qA=/^---\n/gm,nf=`${Ki}:`,Vs=class extends rf.EditorSuggest{constructor(t){super(t.app);this.plugin=t;this.inline=!1;let i=x("all-rules-option");this.ruleInfo=[{displayName:i,name:i.toLowerCase(),alias:"all"}];for(let r of Bt){let a=r.getName();this.ruleInfo.push({displayName:a,name:a.toLowerCase(),alias:r.alias})}}onTrigger(t,i,r){let a=i.getLine(t.line).toLowerCase();if(a.startsWith(nf)||this.disabledRulesIsEndOfStartOfFileToCursor(i.getRange({line:0,ch:0},t))){this.inline=a.startsWith(nf);let s=i.getLine(t.line).substring(0,t.ch),l=s.match(/(\S+)$/)?.first().replaceAll("[","").replaceAll("]","");if(l)return{end:t,start:{ch:s.lastIndexOf(l),line:t.line},query:l}}return null}getSuggestions(t){let[i,r]=as(t.editor.getValue());if(r)return[];let a=t.query.toLowerCase();return this.ruleInfo.filter(s=>(s.name.contains(a)||s.alias.contains(a))&&!i.includes(s.alias))}renderSuggestion(t,i){i.addClass("mod-complex");let r=i.createDiv({cls:"suggestion-content"});r.createDiv({cls:"suggestion-title"}).setText(`${t.displayName}`),r.createDiv({cls:"suggestion-note"}).setText(`${t.alias}`)}selectSuggestion(t){if(this.context){let i=t.alias;this.inline?i=`${i},`:i=`${i} + -`,this.context.editor.replaceRange(`${i} `,this.context.start,this.context.end)}}disabledRulesIsEndOfStartOfFileToCursor(t){if(!t||!t.length||t.match(qA)?.length!=1)return!1;let i=ue(t+` +`,Ki)?.trimEnd();return i===null?!1:t.trimEnd().endsWith(i)}};var df=Cn(lf()),pf=Cn(so());var wi=require("obsidian");var au="default-misspellings.md",ru=`https://raw.githubusercontent.com/platers/obsidian-linter/refs/heads/master/src/utils/${au}`;async function cf(e,n){let t=e.app,i=e.manifest.dir??"",r=(0,wi.normalizePath)(i+"/"+au);if(await t.vault.adapter.exists(r))return;let a=new wi.Notice(x("rules.auto-correct-common-misspellings.default-install")),o;try{o=await(0,wi.requestUrl)(ru)}catch(s){uo(x("rules.auto-correct-common-misspellings.default-install-failed").replace("{URL}",ru),s)}if(!o||o.status!==200){let s=x("rules.auto-correct-common-misspellings.default-install-failed").replace("{URL}",ru)+x("logs.see-console");await n(s);return}await t.vault.adapter.exists(i)||await t.vault.adapter.mkdir(i),await t.vault.adapter.writeBinary(r,o.arrayBuffer),a.hide()}async function uf(e){let n=e.app,t=e.manifest.dir??"",i=(0,wi.normalizePath)(t+"/"+au);return await n.vault.adapter.exists(i)?await n.vault.adapter.read(i):(pt(x("rules.auto-correct-common-misspellings.defaults-missing").replace("{FILE}",i)),"")}var UA={en:"en-gb",zh:"zh-cn","zh-TW":"zh-tw",ru:"ru",ko:"ko",it:"it",id:"id",ro:"ro","pt-BR":"pt-br",cz:"cs",da:"da",de:"de",es:"es",fr:"fr",no:"nn",pl:"pl",pt:"pt",tr:"tr",hi:"hi",nl:"nl",ar:"ar",ja:"ja"},Xt=0,$s=class extends X.Plugin{constructor(){super(...arguments);this.eventRefs=[];this.isEnabled=!0;this.rulesRunner=new Fs;this.overridePaste=!1;this.hasCustomCommands=!1;this.customCommandsLock=new df.default;this.originalSaveCallback=null;this.editorLintFiles=[];this.fileLintFiles=new Set;this.customCommandsCallback=null;this.currentlyOpeningSidebar=!1;this.activeFileChangeDebouncer=new Map;this.defaultAutoCorrectMisspellings=new Map;this.hasLoadedMisspellingFiles=!1}async onload(){Mm(),go(window.localStorage.getItem("language")),vt(x("logs.plugin-load")),this.isEnabled=!0;for(let t in Me){let i=Me[t];(0,X.addIcon)(i.id,i.source)}await this.loadSettings(),this.addCommands(),this.registerEventsAndSaveCallback(),this.registerEditorSuggest(new Vs(this)),this.settingsTab=new Ws(this.app,this),this.addSettingTab(this.settingsTab)}async onunload(){vt(x("logs.plugin-unload")),this.isEnabled=!1;for(let i of this.eventRefs)this.app.workspace.offref(i);let t=this.app.commands?.commands?.["editor:save-file"];t&&t.callback&&this.originalSaveCallback&&(t.callback=this.originalSaveCallback)}async loadSettings(){let t=await this.loadData();this.settings=Object.assign({},Pa,t),typeof this.settings.logLevel=="number"&&(this.settings.logLevel=ed(this.settings.logLevel)),mo(this.settings.logLevel),await this.setOrUpdateMomentInstance(),this.updatePasteOverrideStatus(),this.updateHasCustomCommandStatus()}async saveSettings(){this.hasLoadedMisspellingFiles||await this.loadAutoCorrectFiles(!1),await this.saveData(this.settings),this.updatePasteOverrideStatus(),this.updateHasCustomCommandStatus()}addCommands(){let t=this;this.addCommand({id:"lint-file",name:x("commands.lint-file.name"),editorCheckCallback(i,r,a){if(i)return t.isMarkdownFile(a.file)&&r.cm!=null;t.runLinterEditor(r)},icon:Me.file.id}),this.addCommand({id:"lint-file-unless-ignored",name:x("commands.lint-file-unless-ignored.name"),editorCheckCallback(i,r,a){if(i)return t.isMarkdownFile(a.file);!t.shouldIgnoreFile(a.file)&&r.cm&&t.runLinterEditor(r)},icon:Me.file.id}),this.addCommand({id:"lint-all-files",name:x("commands.lint-all-files.name"),icon:Me.vault.id,callback:()=>{let i=x("commands.lint-all-files.start-message"),r=x("commands.lint-all-files.submit-button-text"),a=x("commands.lint-all-files.submit-button-notice-text");new Ha(this.app,i,r,a,()=>this.runLinterAllFiles(this.app),this.settings.lintCommands&&this.settings.lintCommands.length>0).open()}}),this.addCommand({id:"lint-all-files-in-folder",name:x("commands.lint-all-files-in-folder.name"),icon:Me.folder.id,editorCheckCallback:(i,r,a)=>{if(i)return a&&a.file&&a.file instanceof X.TFile&&a.file.parent?!a.file.parent.isRoot():!1;this.createFolderLintModal(a.file.parent)}}),this.addCommand({id:"paste-as-plain-text",name:x("commands.paste-as-plain-text.name"),editorCheckCallback:(i,r)=>{if(i)return this.overridePaste;this.pasteAsPlainText(r)}})}registerEventsAndSaveCallback(){let t=this.app.workspace.on("editor-paste",(a,o)=>{a.defaultPrevented||!this.overridePaste||this.modifyPasteEvent(a,o)});this.registerEvent(t),this.eventRefs.push(t),t=this.app.workspace.on("file-menu",(a,o,s)=>this.onMenuOpenCallback(a,o,s)),this.registerEvent(t),this.eventRefs.push(t),this.lastActiveFile=this.app.workspace.getActiveFile(),t=this.app.workspace.on("active-leaf-change",()=>this.onActiveLeafChange()),this.registerEvent(t),this.eventRefs.push(t),t=this.app.metadataCache.on("changed",a=>this.onMetadataCacheUpdatedCallback(a)),this.registerEvent(t),this.eventRefs.push(t),t=this.app.workspace.on("editor-change",async(a,o)=>{if((this.settings.ruleConfigs["yaml-timestamp"]["update-on-file-contents-updated"]??"never")!="never"&&!(this.shouldIgnoreFile(o.file)||!this.isMarkdownFile(o.file)||!a.cm))if(this.activeFileChangeDebouncer.has(o.file.path))this.activeFileChangeDebouncer.get(o.file.path).isRunning||this.activeFileChangeDebouncer.get(o.file.path).debounceFn(o.file,a);else{let s={debounceFn:this.createDebouncedFileUpdate(),isRunning:!1,originalText:""};this.activeFileChangeDebouncer.set(o.file.path,s),s.originalText=await this.app.vault.cachedRead(o.file),s.debounceFn(o.file,a)}}),this.registerEvent(t),this.eventRefs.push(t),this.app.workspace.onLayoutReady(async()=>{await this.makeSureSettingsFilledInAndCleanupSettings(),await this.loadAutoCorrectFiles(!0)});let i=this.app.commands?.commands?.["editor:save-file"];this.originalSaveCallback=i?.callback,typeof this.originalSaveCallback=="function"&&(i.callback=()=>{if(this.originalSaveCallback(),this.settings.lintOnSave&&this.isEnabled){let a=this.getEditor();if(a){let o=this.app.workspace.getActiveFile();!this.shouldIgnoreFile(o)&&this.isMarkdownFile(o)&&a.cm&&this.runLinterEditor(a)}}});let r=this;window.CodeMirrorAdapter.commands.save=()=>{r.app.commands.executeCommandById("editor:save-file")}}async onMetadataCacheUpdatedCallback(t){this.editorLintFiles.includes(t)?(this.editorLintFiles.remove(t),this.runCustomCommands(t)):this.fileLintFiles.has(t)&&(this.fileLintFiles.delete(t),this.runCustomCommandsInSidebar(t))}async loadAutoCorrectFiles(t){let i=this.settings.ruleConfigs["auto-correct-common-misspellings"];if(!(!i||!i.enabled)&&(await cf(this,async r=>{t&&(r=`Obsidian Linter: +`+r),new X.Notice(r),this.settings.ruleConfigs["auto-correct-common-misspellings"].enabled=!1,await this.saveSettings()}),!!this.settings.ruleConfigs["auto-correct-common-misspellings"].enabled)){this.defaultAutoCorrectMisspellings=Mi(an(await uf(this)));for(let r of this.settings.ruleConfigs["auto-correct-common-misspellings"]["extra-auto-correct-files"]??[])if(r.filePath!=""){let a=this.getFileFromPath(r.filePath);a&&(r.customReplacements=Mi(an(await this.app.vault.cachedRead(a))))}this.hasLoadedMisspellingFiles=!0}}onMenuOpenCallback(t,i,r){i instanceof X.TFile&&this.isMarkdownFile(i)?t.addItem(a=>{a.setIcon(Me.file.id).setTitle(x("commands.lint-file-pop-up-menu-text.name")).onClick(()=>{let o=this.app.workspace.getActiveFile(),s=this.getEditor();o===i&&s&&s.cm?this.runLinterEditor(s):this.runLinterFile(i)})}):i instanceof X.TFolder&&t.addItem(a=>{a.setTitle(x("commands.lint-folder-pop-up-menu-text.name")).setIcon(Me.folder.id).onClick(()=>this.createFolderLintModal(i))})}async onActiveLeafChange(){if(!this.isEnabled||this.currentlyOpeningSidebar)return;let t=this.app.workspace.getActiveFile(),i=this.lastActiveFile==null?!1:await this.app.vault.adapter.exists(this.lastActiveFile.path);if(!this.settings.lintOnFileChange||!i||this.lastActiveFile===t||!this.isMarkdownFile(this.lastActiveFile)||this.shouldIgnoreFile(this.lastActiveFile)){this.lastActiveFile=t;return}try{await this.runLinterFile(this.lastActiveFile,!0)}catch(r){this.handleLintError(this.lastActiveFile,r,x("commands.lint-file.error-message")+" '{FILE_PATH}'",!1)}finally{this.lastActiveFile=t}}shouldIgnoreFile(t){for(let i of this.settings.foldersToIgnore)if(i.length>0&&t.path.startsWith((0,X.normalizePath)(i)+"/"))return!0;for(let i of this.settings.filesToIgnore){if(!i.match)continue;if(new RegExp(`${i.match}`,i.flags).test(t.path))return!0}return!1}isMarkdownFile(t){return t&&t.extension==="md"}async runLinterFile(t,i=!1){let r=an(await this.app.vault.read(t)),a=this.rulesRunner.lintText(ki(r,t,this.momentLocale,this.settings,this.defaultAutoCorrectMisspellings));if(r!=a){if(await this.app.vault.modify(t,a),i){let o=x("logs.file-change-lint-message-start")+" "+this.lastActiveFile.path;this.settings.displayLintOnFileChangeNotice&&new X.Notice(o),vt(o)}this.fileLintFiles.add(t);return}await this.runCustomCommandsInSidebar(t)}async runLinterAllFiles(t){let i=0;if(await Promise.all(t.vault.getMarkdownFiles().map(async r=>{if(!this.shouldIgnoreFile(r))try{await this.runLinterFile(r)}catch(a){this.handleLintError(r,a,x("commands.lint-all-files.error-message")+" '{FILE_PATH}'"),i+=1}})),i===0)new X.Notice(x("commands.lint-all-files.success-message"),Xt);else{let r=i===1?x("commands.lint-all-files.errors-message-singular"):x("commands.lint-all-files.errors-message-plural").replace("{NUM}",i.toString());new X.Notice(r,Xt)}}async runLinterAllFilesInFolder(t){vt(x("logs.folder-lint")+t.name);let i=0,r=0,a=this.getAllFilesInFolder(t);if(await Promise.all(a.map(async o=>{if(!this.shouldIgnoreFile(o)){try{await this.runLinterFile(o)}catch(s){this.handleLintError(o,s,x("commands.lint-all-files-in-folder.error-message")+" '{FILE_PATH}'"),i+=1}r++}})),i===0)new X.Notice(x("commands.lint-all-files-in-folder.success-message").replace("{NUM}",r.toString()).replace("{FOLDER_NAME}",t.name),Xt);else{let o=i===1?x("commands.lint-all-files-in-folder.message-singular").replace("{NUM}",r.toString()).replace("{FOLDER_NAME}",t.name):x("commands.lint-all-files-in-folder.message-plural").replace("{FILE_COUNT}",r.toString()).replace("{FOLDER_NAME}",t.name).replace("{ERROR_COUNT}",i.toString());new X.Notice(o,Xt)}}createFolderLintModal(t){let i=x("commands.lint-all-files-in-folder.start-message").replace("{FOLDER_NAME}",t.name),r=x("commands.lint-all-files-in-folder.submit-button-text").replace("{FOLDER_NAME}",t.name),a=x("commands.lint-all-files-in-folder.submit-button-notice-text").replace("{FOLDER_NAME}",t.name);new Ha(this.app,i,r,a,()=>this.runLinterAllFilesInFolder(t),this.settings.lintCommands&&this.settings.lintCommands.length>0).open()}async runLinterEditor(t){fl(this.settings.recordLintOnSaveLogs),Xu(),vt(x("logs.linter-run"));let i=this.app.workspace.getActiveFile(),r=t.getValue(),a;try{a=this.rulesRunner.lintText(ki(r,i,this.momentLocale,this.settings,this.defaultAutoCorrectMisspellings))}catch(c){this.handleLintError(i,c,x("commands.lint-file.error-message")+" '{FILE_PATH}'",!1);return}let o=this.updateEditor(r,a,t),s=o.map(c=>c[0]==tr.default.DIFF_INSERT?c[1].length:0).reduce((c,u)=>c+u,0),l=o.map(c=>c[0]==tr.default.DIFF_DELETE?c[1].length:0).reduce((c,u)=>c+u,0);this.displayChangedMessage(s,l),!s&&!l?this.runCustomCommands(i):this.editorLintFiles.push(i),this.updateFileDebouncerText(i,a),fl(!1)}async setOrUpdateMomentInstance(){let t=localStorage.getItem("language")||"en",i=navigator.language?.toLowerCase(),r=UA[t];this.settings.linterLocale!=="system-default"?r=this.settings.linterLocale:i.startsWith(t)&&(r=i),this.momentLocale=r;let a=js.moment.locale(),o=js.moment.locale(r);nt(x("logs.moment-locale-not-found").replace("{MOMENT_LOCALE}",r).replace("{CURRENT_LOCALE}",o)),js.moment.locale(a)}async makeSureSettingsFilledInAndCleanupSettings(){let t=!1;this.settings.settingsConvertedToConfigKeyValues||(t=await this.moveConfigValuesToKeyBasedFormat()),"lintOnFileContentChangeDelay"in this.settings&&(this.settings.ruleConfigs["yaml-timestamp"]["update-on-file-contents-updated"]=this.settings.lintOnFileContentChangeDelay,delete this.settings.lintOnFileContentChangeDelay,t=!0);let i="Obsidian Linter:",r=!1;this.settings.ruleConfigs["header-increment"]&&this.settings.ruleConfigs["header-increment"].enabled&&this.settings.ruleConfigs["header-increment"]["start-at-h2"]&&this.settings.ruleConfigs["file-name-heading"]&&this.settings.ruleConfigs["file-name-heading"].enabled&&(this.settings.ruleConfigs["header-increment"]["start-at-h2"]=!1,t=!0,r=!0,i+=` +`+x("disabled-conflicting-rule-notice").replace("{NAME_1}",x("rules.header-increment.start-at-h2.name")).replace("{NAME_2}",x("rules.file-name-heading.name"))),this.settings.ruleConfigs["paragraph-blank-lines"]&&this.settings.ruleConfigs["paragraph-blank-lines"].enabled&&this.settings.ruleConfigs["two-spaces-between-lines-with-content"]&&this.settings.ruleConfigs["two-spaces-between-lines-with-content"].enabled&&(this.settings.ruleConfigs["paragraph-blank-lines"].enabled=!1,t=!0,r&&(i+=` +`),r=!0,i+=` +`+x("disabled-conflicting-rule-notice").replace("{NAME_1}",x("rules.paragraph-blank-lines.name")).replace("{NAME_2}",x("rules.two-spaces-between-lines-with-content.name"))),r&&new X.Notice(i,Xt);for(let a of Bt){let o=a.getDefaultOptions();if(!this.settings.ruleConfigs[a.alias]){this.settings.ruleConfigs[a.alias]=o,t=!0;continue}if(a.alias=="space-between-chinese-japanese-or-korean-and-english-or-numbers")"english-symbols-punctuation-before"in this.settings.ruleConfigs[a.alias]||(this.settings.ruleConfigs[a.alias]["english-symbols-punctuation-before"]=o["english-symbols-punctuation-before"],t=!0),"english-symbols-punctuation-after"in this.settings.ruleConfigs[a.alias]||(this.settings.ruleConfigs[a.alias]["english-symbols-punctuation-after"]=o["english-symbols-punctuation-after"],t=!0);else if(a.alias=="yaml-timestamp"){let s=a.getDefaultOptions();"force-retention-of-create-value"in this.settings.ruleConfigs[a.alias]&&("date-created-source-of-truth"in this.settings.ruleConfigs[a.alias]||(this.settings.ruleConfigs[a.alias]["force-retention-of-create-value"]?this.settings.ruleConfigs[a.alias]["date-created-source-of-truth"]="frontmatter":this.settings.ruleConfigs[a.alias]["date-created-source-of-truth"]=s["date-created-source-of-truth"]),delete this.settings.ruleConfigs[a.alias]["force-retention-of-create-value"],t=!0),"date-modified-source-of-truth"in this.settings.ruleConfigs[a.alias]||(this.settings.ruleConfigs[a.alias]["date-modified-source-of-truth"]=s["date-modified-source-of-truth"],t=!0)}for(let s of Object.keys(o))Object.hasOwn(this.settings.ruleConfigs[a.alias],s)||(this.settings.ruleConfigs[a.alias][s]=o[s],t=!0)}for(let a of this.settings.customRegexes)Object.hasOwn(a,"enabled")||(a.enabled=!0,t=!0);for(let a of this.settings.lintCommands)Object.hasOwn(a,"enabled")||(a.enabled=!0,t=!0);t&&await this.saveSettings()}createDebouncedFileUpdate(){let t=5e3;switch(this.settings.ruleConfigs["yaml-timestamp"]["update-on-file-contents-updated"]??"never"){case"after 10 seconds":t=1e4;break;case"after 15 seconds":t=15e3;break;case"after 30 seconds":t=3e4;break;case"after 1 minute":t=6e4;break}return(0,X.debounce)(async(i,r)=>{if(!this.activeFileChangeDebouncer.has(i.path)){pt(x("logs.file-change-yaml-lint-warning"));return}let a=this.activeFileChangeDebouncer.get(i.path);a.isRunning=!0;let o=r.getValue(),s=await this.app.vault.cachedRead(i),l=o===s,c="";if(l){c=o;let u=c;if(c!=a.originalText){vt(x("logs.file-change-yaml-lint-run"));try{u=this.rulesRunner.runYAMLTimestampByItself(ki(c,i,this.momentLocale,this.settings,null))}catch(d){this.handleLintError(i,d,x("commands.lint-file.error-message")+" '{FILE_PATH}'",!1);return}this.updateEditor(c,u,r)}else vt(x("logs.file-change-yaml-lint-skipped"))}else c=s,c!=a.originalText?(vt(x("logs.file-change-yaml-lint-run")),await this.app.vault.process(i,u=>{vt(x("logs.file-change-yaml-lint-run"));try{return this.rulesRunner.runYAMLTimestampByItself(ki(c,i,this.momentLocale,this.settings,null))}catch(d){return this.handleLintError(i,d,x("commands.lint-file.error-message")+" '{FILE_PATH}'",!1),u}})):vt(x("logs.file-change-yaml-lint-skipped"));this.activeFileChangeDebouncer.delete(i.path),a.isRunning=!1},t,!0)}updateEditor(t,i,r){let o=new tr.default.diff_match_patch().diff_main(t,i),s="";return o.forEach(l=>{let[c,u]=l;if(c==tr.default.DIFF_INSERT)r.cm.dispatch({changes:[{from:r.posToOffset(this.endOfDocument(s)),insert:u}],filter:!1}),s+=u;else if(c==tr.default.DIFF_DELETE){let d=this.endOfDocument(s),m=s;m+=u;let p=this.endOfDocument(m);r.cm.dispatch({changes:[{from:r.posToOffset(d),to:r.posToOffset(p),insert:""}],filter:!1})}else s+=u}),o}displayChangedMessage(t,i){if(this.settings.displayChanged){let r=Fm` + ${t} ${x("notice-text.characters-added")} + ${i} ${x("notice-text.characters-removed")} + `;new X.Notice(r)}}handleLintError(t,i,r,a=!0){let o=r.replace("{FILE_PATH}",t.path),s=x("logs.see-console");i instanceof Vi?a?new X.Notice(`${o} ${i.message}. +${s}`,Xt):new X.Notice(`${i.message}. +${s}`,Xt):new X.Notice(`${x("logs.unknown-error")} ${s}`,Xt),uo(o,i)}async modifyPasteEvent(t,i){if(!i)return;let r=t.clipboardData.getData("text/plain");if(!r)return;let a=r.trim();if(zn.test(a)){pt(x("logs.paste-link-warning"));return}if(t.stopPropagation(),t.preventDefault(),!t.defaultPrevented)return;let o=this.app.vault.getConfig("autoConvertHtml"),s=t.clipboardData.getData("text/html"),l=s&&o?(0,X.htmlToMarkdown)(s):r,c=i.listSelections();if(c.length===1){let u=c[0];l=this.rulesRunner.runPasteLint(this.getLineContent(i,u),i.getSelection()??"",ki(l,null,this.momentLocale,this.settings,null)),i.replaceSelection(l)}else this.handleMultiCursorPaste(i,c,l)}handleMultiCursorPaste(t,i,r){let a=this.convertContentIntoProperPasteContent(i,r),o=[];i.forEach((s,l)=>{r=this.rulesRunner.runPasteLint(this.getLineContent(t,s),t.getRange(s.anchor,s.head)??"",ki(a[l],null,this.momentLocale,this.settings,null)),o.push({text:r,from:s.anchor,to:s.head})}),t.transaction({changes:o})}convertContentIntoProperPasteContent(t,i){let r=i.split(` +`),a=[];if(r.length%t.length!==0)for(let o=0;o{this.currentlyOpeningSidebar=!0,await i.openFile(t),this.rulesRunner.runCustomCommands(this.settings.lintCommands,this.app.commands),this.customCommandsCallback&&await this.customCommandsCallback(t)}),i.detach(),r&&r.focus(),this.currentlyOpeningSidebar=!1}async runCustomCommands(t){!this.settings.lintCommands||this.settings.lintCommands.length==0||!this.hasCustomCommands||(await this.customCommandsLock.acquire("command",async()=>{try{this.rulesRunner.runCustomCommands(this.settings.lintCommands,this.app.commands)}catch(i){this.handleLintError(t,i,x("commands.lint-file.error-message")+" '{FILE_PATH}'",!1)}this.customCommandsCallback&&await this.customCommandsCallback(t)}),this.updateFileDebouncerText(t,an(await this.app.vault.read(t))))}getEditor(){let t=this.app.workspace.getActiveViewOfType(X.MarkdownView);return t?t.editor:null}getLineContent(t,i){return t.getLine(i.anchor.line)}async moveConfigValuesToKeyBasedFormat(){go("en");let t=!1;for(let i of Bt){let r=x("rules."+i.alias+".name"),a=this.settings.ruleConfigs[r];if(a!=null){let o=x("rules."+i.alias+".description"),s={enabled:a[o]??!1};for(let l of i.options){if(l.configKey==="enabled")continue;let c=x("rules."+i.alias+"."+l.configKey+".name");s[l.configKey]=a[c]??l.defaultValue}this.settings.ruleConfigs[i.alias]=s,delete this.settings.ruleConfigs[r],t=!0}}return this.settings.settingsConvertedToConfigKeyValues=!0,await this.saveSettings(),go(window.localStorage.getItem("language")),t}getAllFilesInFolder(t){let i=[],r=[t];for(let a of r)for(let o of a.children)o instanceof X.TFile&&this.isMarkdownFile(o)?i.push(o):o instanceof X.TFolder&&r.push(o);return i}updatePasteOverrideStatus(){for(let t of $n.get("Paste"))if(t.getOptions(this.settings)?.enabled){this.overridePaste=!0;return}this.overridePaste=!1}updateHasCustomCommandStatus(){for(let t of this.settings.lintCommands)if(t.id&&t.id.trim()!=""&&t.enabled){this.hasCustomCommands=!0;return}this.hasCustomCommands=!1}endOfDocument(t){let i=t.split(` +`);return{line:i.length-1,ch:i[i.length-1].length}}getFileFromPath(t){let i=this.app.vault.getAbstractFileByPath((0,X.normalizePath)(t));return i instanceof X.TFile?i:null}updateFileDebouncerText(t,i){this.activeFileChangeDebouncer.has(t.path)&&(this.activeFileChangeDebouncer.get(t.path).originalText=i)}}; +/*! Bundled license information: + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) +*/ + +/* nosourcemap */ \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/obsidian-linter/manifest.json b/content/notes/.obsidian/plugins/obsidian-linter/manifest.json new file mode 100644 index 0000000..18b34d4 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-linter/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "obsidian-linter", + "name": "Linter", + "version": "1.28.0", + "minAppVersion": "1.5.7", + "description": "Formats and styles your notes. It can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular markdown contents like list, italics, and bold styles; and more with the use of custom rule options as well.", + "author": "Victor Tao", + "authorUrl": "https://github.com/platers", + "helpUrl": "https://platers.github.io/obsidian-linter/", + "isDesktopOnly": false +} diff --git a/content/notes/.obsidian/plugins/obsidian-linter/styles.css b/content/notes/.obsidian/plugins/obsidian-linter/styles.css new file mode 100644 index 0000000..ffbfc22 --- /dev/null +++ b/content/notes/.obsidian/plugins/obsidian-linter/styles.css @@ -0,0 +1 @@ +.linter-navigation-item{align-items:center;background-color:var(--background-primary-secondary-alt);border:1px solid var(--background-modifier-border);border-radius:100px;border-radius:8px 8px 2px 2px;cursor:pointer;display:flex;flex-direction:row;font-size:16px;font-weight:700;gap:4px;height:32px;overflow:hidden;padding:4px 6px;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .35s cubic-bezier(.57,.04,.58,1);white-space:nowrap}@media screen and (max-width:1325px){.linter-navigation-item.linter-desktop{max-width:32px}}@media screen and (max-width:800px){.linter-navigation-item.linter-mobile{max-width:32px}}.linter-navigation-item-icon,.linter-warning{padding-top:5px}.linter-navigation-item:hover{border-color:var(--interactive-accent-hover);border-bottom:0}.linter-navigation-item-selected{background-color:var(--interactive-accent)!important;border:1px solid var(--background-modifier-border);border-bottom:0;border-radius:8px 8px 2px 2px;color:var(--text-on-accent);max-width:100%!important;padding:4px 9px!important;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .45s cubic-bezier(.57,.04,.58,1) .2s}.linter{transition:transform .4s 0s}.linter-setting-title{align-items:baseline;display:flex;gap:30px;justify-content:space-between}.linter-setting-title.linter-mobile{justify-content:space-around}.linter-setting-title h1{font-weight:900;margin-bottom:12px;margin-top:6px}.linter-setting-header{margin-bottom:24px;overflow-x:auto;overflow-y:hidden}.linter-setting-header .linter-setting-tab-group{align-items:flex-end;display:flex;flex-wrap:wrap;width:100%}.linter-setting-tab-group{border-bottom:2px solid var(--background-modifier-border);margin-top:6px;padding-left:2px;padding-right:2px}.linter-setting-header .linter-tab-settings{border-left:2px solid transparent;border-right:2px solid transparent;cursor:pointer;font-weight:600;padding:6px 12px;white-space:nowrap}.linter-setting-header .linter-tab-settings:first-child{margin-left:6px}.linter-setting-header .linter-tab-settings.linter-tab-settings-active{border:2px solid var(--background-modifier-border);border-bottom-color:var(--background-primary);border-radius:2px;transform:translateY(2px)}.linter-navigation-item:not(.linter-navigation-item-selected)>span:nth-child(2),.linter-visually-hidden{border:0;clip:rect(0 0 0 0);clip-path:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}textarea.full-width{margin-bottom:.8em;margin-top:.8em;min-height:10em;width:100%}.full-width-textbox-input-wrapper{position:relative}.settings-copy-button{margin:0 0 0 auto;padding:4px;position:absolute;right:.8em;top:.8em}.settings-copy-button svg.linter-clipboard path{fill:var(--text-faint)}.settings-copy-button svg.linter-success path{fill:var(--interactive-success)}.settings-copy-button:active,.settings-copy-button:hover{cursor:pointer}.settings-copy-button:active svg path,.settings-copy-button:hover svg path{fill:var(--text-accent-hover);transition:all .3s ease}.settings-copy-button:focus{outline:0}.linter-custom-regex-replacement-container div:last-child{border:none}.linter-custom-regex-replacement{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-custom-regex-replacement-row2{flex-wrap:wrap}.linter-custom-regex-replacement-normal-input{width:40%}.linter-custom-regex-replacement-flags{width:15%}.linter-custom-regex-replacement-label{flex-direction:row-reverse}.linter-custom-regex-replacement-label-input{width:50%}.linter-files-to-ignore-container div:last-child{border:none}.linter-files-to-ignore{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-files-to-ignore-normal-input{width:40%}.linter-files-to-ignore-flags{width:15%}.linter-no-border{border:none}.linter-border-bottom{border-bottom:1px solid var(--background-modifier-border);border-top:0;margin-bottom:.75em}.linter-no-padding-top{padding-top:0}.custom-row-description{margin-top:0}.modal-warn,.search-zero-state{font-weight:700}.modal-heading,.search-zero-state{text-align:center} \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/table-editor-obsidian/data.json b/content/notes/.obsidian/plugins/table-editor-obsidian/data.json new file mode 100644 index 0000000..9009465 --- /dev/null +++ b/content/notes/.obsidian/plugins/table-editor-obsidian/data.json @@ -0,0 +1,6 @@ +{ + "formatType": "normal", + "showRibbonIcon": true, + "bindEnter": true, + "bindTab": true +} \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/table-editor-obsidian/main.js b/content/notes/.obsidian/plugins/table-editor-obsidian/main.js new file mode 100644 index 0000000..9c205fc --- /dev/null +++ b/content/notes/.obsidian/plugins/table-editor-obsidian/main.js @@ -0,0 +1,236 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var c9=Object.create;var x1=Object.defineProperty;var f9=Object.getOwnPropertyDescriptor;var h9=Object.getOwnPropertyNames;var d9=Object.getPrototypeOf,g9=Object.prototype.hasOwnProperty;var we=(s,r)=>()=>(r||s((r={exports:{}}).exports,r),r.exports),p9=(s,r)=>{for(var l in r)x1(s,l,{get:r[l],enumerable:!0})},wl=(s,r,l,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let d of h9(r))!g9.call(s,d)&&d!==l&&x1(s,d,{get:()=>r[d],enumerable:!(c=f9(r,d))||c.enumerable});return s};var y1=(s,r,l)=>(l=s!=null?c9(d9(s)):{},wl(r||!s||!s.__esModule?x1(l,"default",{value:s,enumerable:!0}):l,s)),m9=s=>wl(x1({},"__esModule",{value:!0}),s);var O1=we(L1=>{"use strict";Object.defineProperty(L1,"__esModule",{value:!0});L1.Point=void 0;var s3=class{constructor(r,l){this.row=r,this.column=l}equals(r){return this.row===r.row&&this.column===r.column}};L1.Point=s3});var P1=we(S1=>{"use strict";Object.defineProperty(S1,"__esModule",{value:!0});S1.Range=void 0;var l3=class{constructor(r,l){this.start=r,this.end=l}};S1.Range=l3});var W1=we(I1=>{"use strict";Object.defineProperty(I1,"__esModule",{value:!0});I1.Focus=void 0;var u3=class s{constructor(r,l,c){this.row=r,this.column=l,this.offset=c}posEquals(r){return this.row===r.row&&this.column===r.column}setRow(r){return new s(r,this.column,this.offset)}setColumn(r){return new s(this.row,r,this.offset)}setOffset(r){return new s(this.row,this.column,r)}};I1.Focus=u3});var vi=we(Dn=>{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0});Dn.HeaderAlignment=Dn.DefaultAlignment=Dn.Alignment=void 0;var _l;(function(s){s.NONE="none",s.LEFT="left",s.RIGHT="right",s.CENTER="center"})(_l||(Dn.Alignment=_l={}));var bl;(function(s){s.LEFT="left",s.RIGHT="right",s.CENTER="center"})(bl||(Dn.DefaultAlignment=bl={}));var El;(function(s){s.FOLLOW="follow",s.LEFT="left",s.RIGHT="right",s.CENTER="center"})(El||(Dn.HeaderAlignment=El={}))});var Pr=we(D1=>{"use strict";Object.defineProperty(D1,"__esModule",{value:!0});D1.TableCell=void 0;var M1=vi(),a3=class{constructor(r){this.rawContent=r,this.content=r.trim(),this.paddingLeft=this.content===""?this.rawContent===""?0:1:this.rawContent.length-this.rawContent.trimLeft().length,this.paddingRight=this.rawContent.length-this.content.length-this.paddingLeft}toText(){return this.rawContent}isDelimiter(){return/^\s*:?-+:?\s*$/.test(this.rawContent)}getAlignment(){if(this.isDelimiter())return this.content[0]===":"?this.content[this.content.length-1]===":"?M1.Alignment.CENTER:M1.Alignment.LEFT:this.content[this.content.length-1]===":"?M1.Alignment.RIGHT:M1.Alignment.NONE}computeContentOffset(r){return this.content===""||r{"use strict";Object.defineProperty(F1,"__esModule",{value:!0});F1.TableRow=void 0;var w9=Pr(),c3=class s{constructor(r,l,c){this._cells=r.slice(),this.marginLeft=l,this.marginRight=c}getWidth(){return this._cells.length}getCells(){return this._cells.slice()}getCellAt(r){return this._cells[r]}setCellAt(r,l){let c=this.getCells();return c[r]=new w9.TableCell(l),new s(c,this.marginLeft,this.marginRight)}toText(){if(this._cells.length===0)return this.marginLeft;let r=this._cells.map(l=>l.toText()).join("|");return`${this.marginLeft}|${r}|${this.marginRight}`}isDelimiter(){return this._cells.every(r=>r.isDelimiter())}};F1.TableRow=c3});var Xt=we(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.Err=ct.Ok=ct.err=ct.ok=void 0;var C9=s=>new k1(s);ct.ok=C9;var v9=s=>new U1(s);ct.err=v9;var k1=class{constructor(r){this.value=r,this.match=(l,c)=>l(this.value)}isOk(){return!0}isErr(){return!this.isOk()}map(r){return(0,ct.ok)(r(this.value))}mapErr(r){return(0,ct.ok)(this.value)}andThen(r){return r(this.value)}unwrapOr(r){return this.value}_unsafeUnwrap(){return this.value}_unsafeUnwrapErr(){throw new Error("Called `_unsafeUnwrapErr` on an Ok")}};ct.Ok=k1;var U1=class{constructor(r){this.error=r,this.match=(l,c)=>c(this.error)}isOk(){return!1}isErr(){return!this.isOk()}map(r){return(0,ct.err)(this.error)}mapErr(r){return(0,ct.err)(r(this.error))}andThen(r){return(0,ct.err)(this.error)}unwrapOr(r){return r}_unsafeUnwrap(){throw new Error("Called `_unsafeUnwrap` on an Err")}_unsafeUnwrapErr(){return this.error}};ct.Err=U1});var $t=we(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.prettyPrintAST=St.checkChildLength=St.checkType=St.errRelativeReferenceIndex=St.errIndex0=void 0;St.errIndex0=new Error("Index 0 used to create a reference");St.errRelativeReferenceIndex=new Error("Can not use relative reference where absolute reference is required");var _9=(s,...r)=>{if(!(r.indexOf(s.type)>=0))return new Error(`Formula element '${s.text}' is a ${s.type} but expected one of ${r} in this position.`)};St.checkType=_9;var b9=(s,r)=>{if(s.children.length!==r)return new Error(`Formula element '${s.text}' was expected to have ${r} elements, but had ${s.children.length}`)};St.checkChildLength=b9;var E9=(s,r=0)=>{console.log(" ".repeat(r)+`|-${s.type}${s.children.length===0?"="+s.text:""}`),s.children&&s.children.forEach(l=>{(0,St.prettyPrintAST)(l,r+1)})};St.prettyPrintAST=E9});var f3=we((Al,q1)=>{(function(s){"use strict";var r=9e15,l=1e9,c="0123456789abcdef",d="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",C="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",_={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-r,maxE:r,crypto:!1},m,A,P,y,S=!0,V="[DecimalError] ",M=V+"Invalid argument: ",Y=V+"Precision limit exceeded",se=V+"crypto unavailable",ge="[object Decimal]",D=Math.floor,$=Math.pow,U=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,K=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,te=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,J=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,G=7,Ce=9007199254740991,Pe=d.length-1,ot=C.length-1,B={toStringTag:ge};B.absoluteValue=B.abs=function(){var o=new this.constructor(this);return o.s<0&&(o.s=1),j(o)},B.ceil=function(){return j(new this.constructor(this),this.e+1,2)},B.clampedTo=B.clamp=function(o,u){var a,f=this,g=f.constructor;if(o=new g(o),u=new g(u),!o.s||!u.s)return new g(NaN);if(o.gt(u))throw Error(M+u);return a=f.cmp(o),a<0?o:f.cmp(u)>0?u:new g(f)},B.comparedTo=B.cmp=function(o){var u,a,f,g,p=this,E=p.d,T=(o=new p.constructor(o)).d,L=p.s,x=o.s;if(!E||!T)return!L||!x?NaN:L!==x?L:E===T?0:!E^L<0?1:-1;if(!E[0]||!T[0])return E[0]?L:T[0]?-x:0;if(L!==x)return L;if(p.e!==o.e)return p.e>o.e^L<0?1:-1;for(f=E.length,g=T.length,u=0,a=fT[u]^L<0?1:-1;return f===g?0:f>g^L<0?1:-1},B.cosine=B.cos=function(){var o,u,a=this,f=a.constructor;return a.d?a.d[0]?(o=f.precision,u=f.rounding,f.precision=o+Math.max(a.e,a.sd())+G,f.rounding=1,a=Lo(f,Fi(f,a)),f.precision=o,f.rounding=u,j(y==2||y==3?a.neg():a,o,u,!0)):new f(1):new f(NaN)},B.cubeRoot=B.cbrt=function(){var o,u,a,f,g,p,E,T,L,x,I=this,F=I.constructor;if(!I.isFinite()||I.isZero())return new F(I);for(S=!1,p=I.s*$(I.s*I,1/3),!p||Math.abs(p)==1/0?(a=Oe(I.d),o=I.e,(p=(o-a.length+1)%3)&&(a+=p==1||p==-2?"0":"00"),p=$(a,1/3),o=D((o+1)/3)-(o%3==(o<0?-1:2)),p==1/0?a="5e"+o:(a=p.toExponential(),a=a.slice(0,a.indexOf("e")+1)+o),f=new F(a),f.s=I.s):f=new F(p.toString()),E=(o=F.precision)+3;;)if(T=f,L=T.times(T).times(T),x=L.plus(I),f=Ae(x.plus(I).times(T),x.plus(L),E+2,1),Oe(T.d).slice(0,E)===(a=Oe(f.d)).slice(0,E))if(a=a.slice(E-3,E+1),a=="9999"||!g&&a=="4999"){if(!g&&(j(T,o+1,0),T.times(T).times(T).eq(I))){f=T;break}E+=4,g=1}else{(!+a||!+a.slice(1)&&a.charAt(0)=="5")&&(j(f,o+1,1),u=!f.times(f).times(f).eq(I));break}return S=!0,j(f,o,F.rounding,u)},B.decimalPlaces=B.dp=function(){var o,u=this.d,a=NaN;if(u){if(o=u.length-1,a=(o-D(this.e/G))*G,o=u[o],o)for(;o%10==0;o/=10)a--;a<0&&(a=0)}return a},B.dividedBy=B.div=function(o){return Ae(this,new this.constructor(o))},B.dividedToIntegerBy=B.divToInt=function(o){var u=this,a=u.constructor;return j(Ae(u,new a(o),0,1,1),a.precision,a.rounding)},B.equals=B.eq=function(o){return this.cmp(o)===0},B.floor=function(){return j(new this.constructor(this),this.e+1,3)},B.greaterThan=B.gt=function(o){return this.cmp(o)>0},B.greaterThanOrEqualTo=B.gte=function(o){var u=this.cmp(o);return u==1||u===0},B.hyperbolicCosine=B.cosh=function(){var o,u,a,f,g,p=this,E=p.constructor,T=new E(1);if(!p.isFinite())return new E(p.s?1/0:NaN);if(p.isZero())return T;a=E.precision,f=E.rounding,E.precision=a+Math.max(p.e,p.sd())+4,E.rounding=1,g=p.d.length,g<32?(o=Math.ceil(g/3),u=(1/Zn(4,o)).toString()):(o=16,u="2.3283064365386962890625e-10"),p=et(E,1,p.times(u),new E(1),!0);for(var L,x=o,I=new E(8);x--;)L=p.times(p),p=T.minus(L.times(I.minus(L.times(I))));return j(p,E.precision=a,E.rounding=f,!0)},B.hyperbolicSine=B.sinh=function(){var o,u,a,f,g=this,p=g.constructor;if(!g.isFinite()||g.isZero())return new p(g);if(u=p.precision,a=p.rounding,p.precision=u+Math.max(g.e,g.sd())+4,p.rounding=1,f=g.d.length,f<3)g=et(p,2,g,g,!0);else{o=1.4*Math.sqrt(f),o=o>16?16:o|0,g=g.times(1/Zn(5,o)),g=et(p,2,g,g,!0);for(var E,T=new p(5),L=new p(16),x=new p(20);o--;)E=g.times(g),g=g.times(T.plus(E.times(L.times(E).plus(x))))}return p.precision=u,p.rounding=a,j(g,u,a,!0)},B.hyperbolicTangent=B.tanh=function(){var o,u,a=this,f=a.constructor;return a.isFinite()?a.isZero()?new f(a):(o=f.precision,u=f.rounding,f.precision=o+7,f.rounding=1,Ae(a.sinh(),a.cosh(),f.precision=o,f.rounding=u)):new f(a.s)},B.inverseCosine=B.acos=function(){var o,u=this,a=u.constructor,f=u.abs().cmp(1),g=a.precision,p=a.rounding;return f!==-1?f===0?u.isNeg()?Ze(a,g,p):new a(0):new a(NaN):u.isZero()?Ze(a,g+4,p).times(.5):(a.precision=g+6,a.rounding=1,u=u.asin(),o=Ze(a,g+4,p).times(.5),a.precision=g,a.rounding=p,o.minus(u))},B.inverseHyperbolicCosine=B.acosh=function(){var o,u,a=this,f=a.constructor;return a.lte(1)?new f(a.eq(1)?0:NaN):a.isFinite()?(o=f.precision,u=f.rounding,f.precision=o+Math.max(Math.abs(a.e),a.sd())+4,f.rounding=1,S=!1,a=a.times(a).minus(1).sqrt().plus(a),S=!0,f.precision=o,f.rounding=u,a.ln()):new f(a)},B.inverseHyperbolicSine=B.asinh=function(){var o,u,a=this,f=a.constructor;return!a.isFinite()||a.isZero()?new f(a):(o=f.precision,u=f.rounding,f.precision=o+2*Math.max(Math.abs(a.e),a.sd())+6,f.rounding=1,S=!1,a=a.times(a).plus(1).sqrt().plus(a),S=!0,f.precision=o,f.rounding=u,a.ln())},B.inverseHyperbolicTangent=B.atanh=function(){var o,u,a,f,g=this,p=g.constructor;return g.isFinite()?g.e>=0?new p(g.abs().eq(1)?g.s/0:g.isZero()?g:NaN):(o=p.precision,u=p.rounding,f=g.sd(),Math.max(f,o)<2*-g.e-1?j(new p(g),o,u,!0):(p.precision=a=f-g.e,g=Ae(g.plus(1),new p(1).minus(g),a+o,1),p.precision=o+4,p.rounding=1,g=g.ln(),p.precision=o,p.rounding=u,g.times(.5))):new p(NaN)},B.inverseSine=B.asin=function(){var o,u,a,f,g=this,p=g.constructor;return g.isZero()?new p(g):(u=g.abs().cmp(1),a=p.precision,f=p.rounding,u!==-1?u===0?(o=Ze(p,a+4,f).times(.5),o.s=g.s,o):new p(NaN):(p.precision=a+6,p.rounding=1,g=g.div(new p(1).minus(g.times(g)).sqrt().plus(1)).atan(),p.precision=a,p.rounding=f,g.times(2)))},B.inverseTangent=B.atan=function(){var o,u,a,f,g,p,E,T,L,x=this,I=x.constructor,F=I.precision,z=I.rounding;if(x.isFinite()){if(x.isZero())return new I(x);if(x.abs().eq(1)&&F+4<=ot)return E=Ze(I,F+4,z).times(.25),E.s=x.s,E}else{if(!x.s)return new I(NaN);if(F+4<=ot)return E=Ze(I,F+4,z).times(.5),E.s=x.s,E}for(I.precision=T=F+10,I.rounding=1,a=Math.min(28,T/G+2|0),o=a;o;--o)x=x.div(x.times(x).plus(1).sqrt().plus(1));for(S=!1,u=Math.ceil(T/G),f=1,L=x.times(x),E=new I(x),g=x;o!==-1;)if(g=g.times(L),p=E.minus(g.div(f+=2)),g=g.times(L),E=p.plus(g.div(f+=2)),E.d[u]!==void 0)for(o=u;E.d[o]===p.d[o]&&o--;);return a&&(E=E.times(2<this.d.length-2},B.isNaN=function(){return!this.s},B.isNegative=B.isNeg=function(){return this.s<0},B.isPositive=B.isPos=function(){return this.s>0},B.isZero=function(){return!!this.d&&this.d[0]===0},B.lessThan=B.lt=function(o){return this.cmp(o)<0},B.lessThanOrEqualTo=B.lte=function(o){return this.cmp(o)<1},B.logarithm=B.log=function(o){var u,a,f,g,p,E,T,L,x=this,I=x.constructor,F=I.precision,z=I.rounding,ie=5;if(o==null)o=new I(10),u=!0;else{if(o=new I(o),a=o.d,o.s<0||!a||!a[0]||o.eq(1))return new I(NaN);u=o.eq(10)}if(a=x.d,x.s<0||!a||!a[0]||x.eq(1))return new I(a&&!a[0]?-1/0:x.s!=1?NaN:a?0:1/0);if(u)if(a.length>1)p=!0;else{for(g=a[0];g%10===0;)g/=10;p=g!==1}if(S=!1,T=F+ie,E=bt(x,T),f=u?pr(I,T+10):bt(o,T),L=Ae(E,f,T,1),vt(L.d,g=F,z))do if(T+=10,E=bt(x,T),f=u?pr(I,T+10):bt(o,T),L=Ae(E,f,T,1),!p){+Oe(L.d).slice(g+1,g+15)+1==1e14&&(L=j(L,F+1,0));break}while(vt(L.d,g+=10,z));return S=!0,j(L,F,z)},B.minus=B.sub=function(o){var u,a,f,g,p,E,T,L,x,I,F,z,ie=this,_e=ie.constructor;if(o=new _e(o),!ie.d||!o.d)return!ie.s||!o.s?o=new _e(NaN):ie.d?o.s=-o.s:o=new _e(o.d||ie.s!==o.s?ie:NaN),o;if(ie.s!=o.s)return o.s=-o.s,ie.plus(o);if(x=ie.d,z=o.d,T=_e.precision,L=_e.rounding,!x[0]||!z[0]){if(z[0])o.s=-o.s;else if(x[0])o=new _e(ie);else return new _e(L===3?-0:0);return S?j(o,T,L):o}if(a=D(o.e/G),I=D(ie.e/G),x=x.slice(),p=I-a,p){for(F=p<0,F?(u=x,p=-p,E=z.length):(u=z,a=I,E=x.length),f=Math.max(Math.ceil(T/G),E)+2,p>f&&(p=f,u.length=1),u.reverse(),f=p;f--;)u.push(0);u.reverse()}else{for(f=x.length,E=z.length,F=f0;--f)x[E++]=0;for(f=z.length;f>p;){if(x[--f]E?p+1:E+1,g>E&&(g=E,a.length=1),a.reverse();g--;)a.push(0);a.reverse()}for(E=x.length,g=I.length,E-g<0&&(g=E,a=I,I=x,x=a),u=0;g;)u=(x[--g]=x[g]+I[g]+u)/Q|0,x[g]%=Q;for(u&&(x.unshift(u),++f),E=x.length;x[--E]==0;)x.pop();return o.d=x,o.e=gr(x,f),S?j(o,T,L):o},B.precision=B.sd=function(o){var u,a=this;if(o!==void 0&&o!==!!o&&o!==1&&o!==0)throw Error(M+o);return a.d?(u=zn(a.d),o&&a.e+1>u&&(u=a.e+1)):u=NaN,u},B.round=function(){var o=this,u=o.constructor;return j(new u(o),o.e+1,u.rounding)},B.sine=B.sin=function(){var o,u,a=this,f=a.constructor;return a.isFinite()?a.isZero()?new f(a):(o=f.precision,u=f.rounding,f.precision=o+Math.max(a.e,a.sd())+G,f.rounding=1,a=Oo(f,Fi(f,a)),f.precision=o,f.rounding=u,j(y>2?a.neg():a,o,u,!0)):new f(NaN)},B.squareRoot=B.sqrt=function(){var o,u,a,f,g,p,E=this,T=E.d,L=E.e,x=E.s,I=E.constructor;if(x!==1||!T||!T[0])return new I(!x||x<0&&(!T||T[0])?NaN:T?E:1/0);for(S=!1,x=Math.sqrt(+E),x==0||x==1/0?(u=Oe(T),(u.length+L)%2==0&&(u+="0"),x=Math.sqrt(u),L=D((L+1)/2)-(L<0||L%2),x==1/0?u="5e"+L:(u=x.toExponential(),u=u.slice(0,u.indexOf("e")+1)+L),f=new I(u)):f=new I(x.toString()),a=(L=I.precision)+3;;)if(p=f,f=p.plus(Ae(E,p,a+2,1)).times(.5),Oe(p.d).slice(0,a)===(u=Oe(f.d)).slice(0,a))if(u=u.slice(a-3,a+1),u=="9999"||!g&&u=="4999"){if(!g&&(j(p,L+1,0),p.times(p).eq(E))){f=p;break}a+=4,g=1}else{(!+u||!+u.slice(1)&&u.charAt(0)=="5")&&(j(f,L+1,1),o=!f.times(f).eq(E));break}return S=!0,j(f,L,I.rounding,o)},B.tangent=B.tan=function(){var o,u,a=this,f=a.constructor;return a.isFinite()?a.isZero()?new f(a):(o=f.precision,u=f.rounding,f.precision=o+10,f.rounding=1,a=a.sin(),a.s=1,a=Ae(a,new f(1).minus(a.times(a)).sqrt(),o+10,0),f.precision=o,f.rounding=u,j(y==2||y==4?a.neg():a,o,u,!0)):new f(NaN)},B.times=B.mul=function(o){var u,a,f,g,p,E,T,L,x,I=this,F=I.constructor,z=I.d,ie=(o=new F(o)).d;if(o.s*=I.s,!z||!z[0]||!ie||!ie[0])return new F(!o.s||z&&!z[0]&&!ie||ie&&!ie[0]&&!z?NaN:!z||!ie?o.s/0:o.s*0);for(a=D(I.e/G)+D(o.e/G),L=z.length,x=ie.length,L=0;){for(u=0,g=L+f;g>f;)T=p[g]+ie[f]*z[g-f-1]+u,p[g--]=T%Q|0,u=T/Q|0;p[g]=(p[g]+u)%Q|0}for(;!p[--E];)p.pop();return u?++a:p.shift(),o.d=p,o.e=gr(p,a),S?j(o,F.precision,F.rounding):o},B.toBinary=function(o,u){return cn(this,2,o,u)},B.toDecimalPlaces=B.toDP=function(o,u){var a=this,f=a.constructor;return a=new f(a),o===void 0?a:(je(o,0,l),u===void 0?u=f.rounding:je(u,0,8),j(a,o+a.e+1,u))},B.toExponential=function(o,u){var a,f=this,g=f.constructor;return o===void 0?a=Mt(f,!0):(je(o,0,l),u===void 0?u=g.rounding:je(u,0,8),f=j(new g(f),o+1,u),a=Mt(f,!0,o+1)),f.isNeg()&&!f.isZero()?"-"+a:a},B.toFixed=function(o,u){var a,f,g=this,p=g.constructor;return o===void 0?a=Mt(g):(je(o,0,l),u===void 0?u=p.rounding:je(u,0,8),f=j(new p(g),o+g.e+1,u),a=Mt(f,!1,o+f.e+1)),g.isNeg()&&!g.isZero()?"-"+a:a},B.toFraction=function(o){var u,a,f,g,p,E,T,L,x,I,F,z,ie=this,_e=ie.d,ce=ie.constructor;if(!_e)return new ce(ie);if(x=a=new ce(1),f=L=new ce(0),u=new ce(f),p=u.e=zn(_e)-ie.e-1,E=p%G,u.d[0]=$(10,E<0?G+E:E),o==null)o=p>0?u:x;else{if(T=new ce(o),!T.isInt()||T.lt(x))throw Error(M+T);o=T.gt(u)?p>0?u:x:T}for(S=!1,T=new ce(Oe(_e)),I=ce.precision,ce.precision=p=_e.length*G*2;F=Ae(T,u,0,1,1),g=a.plus(F.times(f)),g.cmp(o)!=1;)a=f,f=g,g=x,x=L.plus(F.times(g)),L=g,g=u,u=T.minus(F.times(g)),T=g;return g=Ae(o.minus(a),f,0,1,1),L=L.plus(g.times(x)),a=a.plus(g.times(f)),L.s=x.s=ie.s,z=Ae(x,f,p,1).minus(ie).abs().cmp(Ae(L,a,p,1).minus(ie).abs())<1?[x,f]:[L,a],ce.precision=I,S=!0,z},B.toHexadecimal=B.toHex=function(o,u){return cn(this,16,o,u)},B.toNearest=function(o,u){var a=this,f=a.constructor;if(a=new f(a),o==null){if(!a.d)return a;o=new f(1),u=f.rounding}else{if(o=new f(o),u===void 0?u=f.rounding:je(u,0,8),!a.d)return o.s?a:o;if(!o.d)return o.s&&(o.s=a.s),o}return o.d[0]?(S=!1,a=Ae(a,o,0,u,1).times(o),S=!0,j(a)):(o.s=a.s,a=o),a},B.toNumber=function(){return+this},B.toOctal=function(o,u){return cn(this,8,o,u)},B.toPower=B.pow=function(o){var u,a,f,g,p,E,T=this,L=T.constructor,x=+(o=new L(o));if(!T.d||!o.d||!T.d[0]||!o.d[0])return new L($(+T,x));if(T=new L(T),T.eq(1))return T;if(f=L.precision,p=L.rounding,o.eq(1))return j(T,f,p);if(u=D(o.e/G),u>=o.d.length-1&&(a=x<0?-x:x)<=Ce)return g=En(L,T,a,f),o.s<0?new L(1).div(g):j(g,f,p);if(E=T.s,E<0){if(uL.maxE+1||u0?E/0:0):(S=!1,L.rounding=T.s=1,a=Math.min(12,(u+"").length),g=Tn(o.times(bt(T,f+a)),f),g.d&&(g=j(g,f+5,1),vt(g.d,f,p)&&(u=f+10,g=j(Tn(o.times(bt(T,u+a)),u),u+5,1),+Oe(g.d).slice(f+1,f+15)+1==1e14&&(g=j(g,f+1,0)))),g.s=E,S=!0,L.rounding=p,j(g,f,p))},B.toPrecision=function(o,u){var a,f=this,g=f.constructor;return o===void 0?a=Mt(f,f.e<=g.toExpNeg||f.e>=g.toExpPos):(je(o,1,l),u===void 0?u=g.rounding:je(u,0,8),f=j(new g(f),o,u),a=Mt(f,o<=f.e||f.e<=g.toExpNeg,o)),f.isNeg()&&!f.isZero()?"-"+a:a},B.toSignificantDigits=B.toSD=function(o,u){var a=this,f=a.constructor;return o===void 0?(o=f.precision,u=f.rounding):(je(o,1,l),u===void 0?u=f.rounding:je(u,0,8)),j(new f(a),o,u)},B.toString=function(){var o=this,u=o.constructor,a=Mt(o,o.e<=u.toExpNeg||o.e>=u.toExpPos);return o.isNeg()&&!o.isZero()?"-"+a:a},B.truncated=B.trunc=function(){return j(new this.constructor(this),this.e+1,1)},B.valueOf=B.toJSON=function(){var o=this,u=o.constructor,a=Mt(o,o.e<=u.toExpNeg||o.e>=u.toExpPos);return o.isNeg()?"-"+a:a};function Oe(o){var u,a,f,g=o.length-1,p="",E=o[0];if(g>0){for(p+=E,u=1;ua)throw Error(M+o)}function vt(o,u,a,f){var g,p,E,T;for(p=o[0];p>=10;p/=10)--u;return--u<0?(u+=G,g=0):(g=Math.ceil((u+1)/G),u%=G),p=$(10,G-u),T=o[g]%p|0,f==null?u<3?(u==0?T=T/100|0:u==1&&(T=T/10|0),E=a<4&&T==99999||a>3&&T==49999||T==5e4||T==0):E=(a<4&&T+1==p||a>3&&T+1==p/2)&&(o[g+1]/p/100|0)==$(10,u-2)-1||(T==p/2||T==0)&&(o[g+1]/p/100|0)==0:u<4?(u==0?T=T/1e3|0:u==1?T=T/100|0:u==2&&(T=T/10|0),E=(f||a<4)&&T==9999||!f&&a>3&&T==4999):E=((f||a<4)&&T+1==p||!f&&a>3&&T+1==p/2)&&(o[g+1]/p/1e3|0)==$(10,u-3)-1,E}function _t(o,u,a){for(var f,g=[0],p,E=0,T=o.length;Ea-1&&(g[f+1]===void 0&&(g[f+1]=0),g[f+1]+=g[f]/a|0,g[f]%=a)}return g.reverse()}function Lo(o,u){var a,f,g;if(u.isZero())return u;f=u.d.length,f<32?(a=Math.ceil(f/3),g=(1/Zn(4,a)).toString()):(a=16,g="2.3283064365386962890625e-10"),o.precision+=a,u=et(o,1,u.times(g),new o(1));for(var p=a;p--;){var E=u.times(u);u=E.times(E).minus(E).times(8).plus(1)}return o.precision-=a,u}var Ae=function(){function o(f,g,p){var E,T=0,L=f.length;for(f=f.slice();L--;)E=f[L]*g+T,f[L]=E%p|0,T=E/p|0;return T&&f.unshift(T),f}function u(f,g,p,E){var T,L;if(p!=E)L=p>E?1:-1;else for(T=L=0;Tg[T]?1:-1;break}return L}function a(f,g,p,E){for(var T=0;p--;)f[p]-=T,T=f[p]1;)f.shift()}return function(f,g,p,E,T,L){var x,I,F,z,ie,_e,ce,Ye,Me,Et,Re,Be,Yn,At,ri,Jn,nn,Cr,Tt,Xn,Qn=f.constructor,jn=f.s==g.s?1:-1,Ge=f.d,ye=g.d;if(!Ge||!Ge[0]||!ye||!ye[0])return new Qn(!f.s||!g.s||(Ge?ye&&Ge[0]==ye[0]:!ye)?NaN:Ge&&Ge[0]==0||!ye?jn*0:jn/0);for(L?(ie=1,I=f.e-g.e):(L=Q,ie=G,I=D(f.e/ie)-D(g.e/ie)),Tt=ye.length,nn=Ge.length,Me=new Qn(jn),Et=Me.d=[],F=0;ye[F]==(Ge[F]||0);F++);if(ye[F]>(Ge[F]||0)&&I--,p==null?(At=p=Qn.precision,E=Qn.rounding):T?At=p+(f.e-g.e)+1:At=p,At<0)Et.push(1),_e=!0;else{if(At=At/ie+2|0,F=0,Tt==1){for(z=0,ye=ye[0],At++;(F1&&(ye=o(ye,z,L),Ge=o(Ge,z,L),Tt=ye.length,nn=Ge.length),Jn=Tt,Re=Ge.slice(0,Tt),Be=Re.length;Be=L/2&&++Cr;do z=0,x=u(ye,Re,Tt,Be),x<0?(Yn=Re[0],Tt!=Be&&(Yn=Yn*L+(Re[1]||0)),z=Yn/Cr|0,z>1?(z>=L&&(z=L-1),ce=o(ye,z,L),Ye=ce.length,Be=Re.length,x=u(ce,Re,Ye,Be),x==1&&(z--,a(ce,Tt=10;z/=10)F++;Me.e=F+I*ie-1,j(Me,T?p+Me.e+1:p,E,_e)}return Me}}();function j(o,u,a,f){var g,p,E,T,L,x,I,F,z,ie=o.constructor;e:if(u!=null){if(F=o.d,!F)return o;for(g=1,T=F[0];T>=10;T/=10)g++;if(p=u-g,p<0)p+=G,E=u,I=F[z=0],L=I/$(10,g-E-1)%10|0;else if(z=Math.ceil((p+1)/G),T=F.length,z>=T)if(f){for(;T++<=z;)F.push(0);I=L=0,g=1,p%=G,E=p-G+1}else break e;else{for(I=T=F[z],g=1;T>=10;T/=10)g++;p%=G,E=p-G+g,L=E<0?0:I/$(10,g-E-1)%10|0}if(f=f||u<0||F[z+1]!==void 0||(E<0?I:I%$(10,g-E-1)),x=a<4?(L||f)&&(a==0||a==(o.s<0?3:2)):L>5||L==5&&(a==4||f||a==6&&(p>0?E>0?I/$(10,g-E):0:F[z-1])%10&1||a==(o.s<0?8:7)),u<1||!F[0])return F.length=0,x?(u-=o.e+1,F[0]=$(10,(G-u%G)%G),o.e=-u||0):F[0]=o.e=0,o;if(p==0?(F.length=z,T=1,z--):(F.length=z+1,T=$(10,G-p),F[z]=E>0?(I/$(10,g-E)%$(10,E)|0)*T:0),x)for(;;)if(z==0){for(p=1,E=F[0];E>=10;E/=10)p++;for(E=F[0]+=T,T=1;E>=10;E/=10)T++;p!=T&&(o.e++,F[0]==Q&&(F[0]=1));break}else{if(F[z]+=T,F[z]!=Q)break;F[z--]=0,T=1}for(p=F.length;F[--p]===0;)F.pop()}return S&&(o.e>ie.maxE?(o.d=null,o.e=NaN):o.e0?p=p.charAt(0)+"."+p.slice(1)+tn(f):E>1&&(p=p.charAt(0)+"."+p.slice(1)),p=p+(o.e<0?"e":"e+")+o.e):g<0?(p="0."+tn(-g-1)+p,a&&(f=a-E)>0&&(p+=tn(f))):g>=E?(p+=tn(g+1-E),a&&(f=a-g-1)>0&&(p=p+"."+tn(f))):((f=g+1)0&&(g+1===E&&(p+="."),p+=tn(f))),p}function gr(o,u){var a=o[0];for(u*=G;a>=10;a/=10)u++;return u}function pr(o,u,a){if(u>Pe)throw S=!0,a&&(o.precision=a),Error(Y);return j(new o(d),u,1,!0)}function Ze(o,u,a){if(u>ot)throw Error(Y);return j(new o(C),u,a,!0)}function zn(o){var u=o.length-1,a=u*G+1;if(u=o[u],u){for(;u%10==0;u/=10)a--;for(u=o[0];u>=10;u/=10)a++}return a}function tn(o){for(var u="";o--;)u+="0";return u}function En(o,u,a,f){var g,p=new o(1),E=Math.ceil(f/G+4);for(S=!1;;){if(a%2&&(p=p.times(u),ht(p.d,E)&&(g=!0)),a=D(a/2),a===0){a=p.d.length-1,g&&p.d[a]===0&&++p.d[a];break}u=u.times(u),ht(u.d,E)}return S=!0,p}function An(o){return o.d[o.d.length-1]&1}function Di(o,u,a){for(var f,g=new o(u[0]),p=0;++p17)return new z(o.d?o.d[0]?o.s<0?0:1/0:1:o.s?o.s<0?0:o:NaN);for(u==null?(S=!1,L=_e):L=u,T=new z(.03125);o.e>-2;)o=o.times(T),F+=5;for(f=Math.log($(2,F))/Math.LN10*2+5|0,L+=f,a=p=E=new z(1),z.precision=L;;){if(p=j(p.times(o),L,1),a=a.times(++I),T=E.plus(Ae(p,a,L,1)),Oe(T.d).slice(0,L)===Oe(E.d).slice(0,L)){for(g=F;g--;)E=j(E.times(E),L,1);if(u==null)if(x<3&&vt(E.d,L-f,ie,x))z.precision=L+=10,a=p=T=new z(1),I=0,x++;else return j(E,z.precision=_e,ie,S=!0);else return z.precision=_e,E}E=T}}function bt(o,u){var a,f,g,p,E,T,L,x,I,F,z,ie=1,_e=10,ce=o,Ye=ce.d,Me=ce.constructor,Et=Me.rounding,Re=Me.precision;if(ce.s<0||!Ye||!Ye[0]||!ce.e&&Ye[0]==1&&Ye.length==1)return new Me(Ye&&!Ye[0]?-1/0:ce.s!=1?NaN:Ye?0:ce);if(u==null?(S=!1,I=Re):I=u,Me.precision=I+=_e,a=Oe(Ye),f=a.charAt(0),Math.abs(p=ce.e)<15e14){for(;f<7&&f!=1||f==1&&a.charAt(1)>3;)ce=ce.times(o),a=Oe(ce.d),f=a.charAt(0),ie++;p=ce.e,f>1?(ce=new Me("0."+a),p++):ce=new Me(f+"."+a.slice(1))}else return x=pr(Me,I+2,Re).times(p+""),ce=bt(new Me(f+"."+a.slice(1)),I-_e).plus(x),Me.precision=Re,u==null?j(ce,Re,Et,S=!0):ce;for(F=ce,L=E=ce=Ae(ce.minus(1),ce.plus(1),I,1),z=j(ce.times(ce),I,1),g=3;;){if(E=j(E.times(z),I,1),x=L.plus(Ae(E,new Me(g),I,1)),Oe(x.d).slice(0,I)===Oe(L.d).slice(0,I))if(L=L.times(2),p!==0&&(L=L.plus(pr(Me,I+2,Re).times(p+""))),L=Ae(L,new Me(ie),I,1),u==null)if(vt(L.d,I-_e,Et,T))Me.precision=I+=_e,x=E=ce=Ae(F.minus(1),F.plus(1),I,1),z=j(ce.times(ce),I,1),g=T=1;else return j(L,Me.precision=Re,Et,S=!0);else return Me.precision=Re,L;L=x,g+=2}}function Zr(o){return String(o.s*o.s/0)}function st(o,u){var a,f,g;for((a=u.indexOf("."))>-1&&(u=u.replace(".","")),(f=u.search(/e/i))>0?(a<0&&(a=f),a+=+u.slice(f+1),u=u.substring(0,f)):a<0&&(a=u.length),f=0;u.charCodeAt(f)===48;f++);for(g=u.length;u.charCodeAt(g-1)===48;--g);if(u=u.slice(f,g),u){if(g-=f,o.e=a=a-f-1,o.d=[],f=(a+1)%G,a<0&&(f+=G),fo.constructor.maxE?(o.d=null,o.e=NaN):o.e-1){if(u=u.replace(/(\d)_(?=\d)/g,"$1"),J.test(u))return st(o,u)}else if(u==="Infinity"||u==="NaN")return+u||(o.s=NaN),o.e=NaN,o.d=null,o;if(K.test(u))a=16,u=u.toLowerCase();else if(U.test(u))a=2;else if(te.test(u))a=8;else throw Error(M+u);for(p=u.search(/p/i),p>0?(L=+u.slice(p+1),u=u.substring(2,p)):u=u.slice(2),p=u.indexOf("."),E=p>=0,f=o.constructor,E&&(u=u.replace(".",""),T=u.length,p=T-p,g=En(f,new f(a),p,p*2)),x=_t(u,a,Q),I=x.length-1,p=I;x[p]===0;--p)x.pop();return p<0?new f(o.s*0):(o.e=gr(x,I),o.d=x,S=!1,E&&(o=Ae(o,g,T*4)),L&&(o=o.times(Math.abs(L)<54?$(2,L):m.pow(2,L))),S=!0,o)}function Oo(o,u){var a,f=u.d.length;if(f<3)return u.isZero()?u:et(o,2,u,u);a=1.4*Math.sqrt(f),a=a>16?16:a|0,u=u.times(1/Zn(5,a)),u=et(o,2,u,u);for(var g,p=new o(5),E=new o(16),T=new o(20);a--;)g=u.times(u),u=u.times(p.plus(g.times(E.times(g).minus(T))));return u}function et(o,u,a,f,g){var p,E,T,L,x=1,I=o.precision,F=Math.ceil(I/G);for(S=!1,L=a.times(a),T=new o(f);;){if(E=Ae(T.times(L),new o(u++*u++),I,1),T=g?f.plus(E):f.minus(E),f=Ae(E.times(L),new o(u++*u++),I,1),E=T.plus(f),E.d[F]!==void 0){for(p=F;E.d[p]===T.d[p]&&p--;);if(p==-1)break}p=T,T=f,f=E,E=p,x++}return S=!0,E.d.length=F+1,E}function Zn(o,u){for(var a=o;--u;)a*=o;return a}function Fi(o,u){var a,f=u.s<0,g=Ze(o,o.precision,1),p=g.times(.5);if(u=u.abs(),u.lte(p))return y=f?4:1,u;if(a=u.divToInt(g),a.isZero())y=f?3:2;else{if(u=u.minus(a.times(g)),u.lte(p))return y=An(a)?f?2:3:f?4:1,u;y=An(a)?f?1:4:f?3:2}return u.minus(g).abs()}function cn(o,u,a,f){var g,p,E,T,L,x,I,F,z,ie=o.constructor,_e=a!==void 0;if(_e?(je(a,1,l),f===void 0?f=ie.rounding:je(f,0,8)):(a=ie.precision,f=ie.rounding),!o.isFinite())I=Zr(o);else{for(I=Mt(o),E=I.indexOf("."),_e?(g=2,u==16?a=a*4-3:u==8&&(a=a*3-2)):g=u,E>=0&&(I=I.replace(".",""),z=new ie(1),z.e=I.length-E,z.d=_t(Mt(z),10,g),z.e=z.d.length),F=_t(I,10,g),p=L=F.length;F[--L]==0;)F.pop();if(!F[0])I=_e?"0p+0":"0";else{if(E<0?p--:(o=new ie(o),o.d=F,o.e=p,o=Ae(o,z,a,f,0,g),F=o.d,p=o.e,x=A),E=F[a],T=g/2,x=x||F[a+1]!==void 0,x=f<4?(E!==void 0||x)&&(f===0||f===(o.s<0?3:2)):E>T||E===T&&(f===4||x||f===6&&F[a-1]&1||f===(o.s<0?8:7)),F.length=a,x)for(;++F[--a]>g-1;)F[a]=0,a||(++p,F.unshift(1));for(L=F.length;!F[L-1];--L);for(E=0,I="";E1)if(u==16||u==8){for(E=u==16?4:3,--L;L%E;L++)I+="0";for(F=_t(I,g,u),L=F.length;!F[L-1];--L);for(E=1,I="1.";EL)for(p-=L;p--;)I+="0";else pu)return o.length=u,!0}function Gn(o){return new this(o).abs()}function mr(o){return new this(o).acos()}function So(o){return new this(o).acosh()}function Vn(o,u){return new this(o).plus(u)}function Po(o){return new this(o).asin()}function Kn(o){return new this(o).asinh()}function Rn(o){return new this(o).atan()}function Gr(o){return new this(o).atanh()}function Vr(o,u){o=new this(o),u=new this(u);var a,f=this.precision,g=this.rounding,p=f+4;return!o.s||!u.s?a=new this(NaN):!o.d&&!u.d?(a=Ze(this,p,1).times(u.s>0?.25:.75),a.s=o.s):!u.d||o.isZero()?(a=u.s<0?Ze(this,f,g):new this(0),a.s=o.s):!o.d||u.isZero()?(a=Ze(this,p,1).times(.5),a.s=o.s):u.s<0?(this.precision=p,this.rounding=1,a=this.atan(Ae(o,u,p,1)),u=Ze(this,p,1),this.precision=f,this.rounding=g,a=o.s<0?a.minus(u):a.plus(u)):a=this.atan(Ae(o,u,p,1)),a}function Kr(o){return new this(o).cbrt()}function Yr(o){return j(o=new this(o),o.e+1,2)}function Jr(o,u,a){return new this(o).clamp(u,a)}function Xr(o){if(!o||typeof o!="object")throw Error(V+"Object expected");var u,a,f,g=o.defaults===!0,p=["precision",1,l,"rounding",0,8,"toExpNeg",-r,0,"toExpPos",0,r,"maxE",0,r,"minE",-r,0,"modulo",0,9];for(u=0;u=p[u+1]&&f<=p[u+2])this[a]=f;else throw Error(M+a+": "+f);if(a="crypto",g&&(this[a]=_[a]),(f=o[a])!==void 0)if(f===!0||f===!1||f===0||f===1)if(f)if(typeof crypto!="undefined"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[a]=!0;else throw Error(se);else this[a]=!1;else throw Error(M+a+": "+f);return this}function Qr(o){return new this(o).cos()}function jr(o){return new this(o).cosh()}function wr(o){var u,a,f;function g(p){var E,T,L,x=this;if(!(x instanceof g))return new g(p);if(x.constructor=g,ei(p)){x.s=p.s,S?!p.d||p.e>g.maxE?(x.e=NaN,x.d=null):p.e=10;T/=10)E++;S?E>g.maxE?(x.e=NaN,x.d=null):E=429e7?u[p]=crypto.getRandomValues(new Uint32Array(1))[0]:T[p++]=g%1e7;else if(crypto.randomBytes){for(u=crypto.randomBytes(f*=4);p=214e7?crypto.randomBytes(4).copy(u,p):(T.push(g%1e7),p+=4);p=f/4}else throw Error(se);else for(;p=10;g/=10)f++;f{(function(){var s,r="4.17.21",l=200,c="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",d="Expected a function",C="Invalid `variable` option passed into `_.template`",_="__lodash_hash_undefined__",m=500,A="__lodash_placeholder__",P=1,y=2,S=4,V=1,M=2,Y=1,se=2,ge=4,D=8,$=16,U=32,K=64,te=128,J=256,Q=512,G=30,Ce="...",Pe=800,ot=16,B=1,Oe=2,je=3,vt=1/0,_t=9007199254740991,Lo=17976931348623157e292,Ae=NaN,j=4294967295,Mt=j-1,gr=j>>>1,pr=[["ary",te],["bind",Y],["bindKey",se],["curry",D],["curryRight",$],["flip",Q],["partial",U],["partialRight",K],["rearg",J]],Ze="[object Arguments]",zn="[object Array]",tn="[object AsyncFunction]",En="[object Boolean]",An="[object Date]",Di="[object DOMException]",Tn="[object Error]",bt="[object Function]",Zr="[object GeneratorFunction]",st="[object Map]",$n="[object Number]",Oo="[object Null]",et="[object Object]",Zn="[object Promise]",Fi="[object Proxy]",cn="[object RegExp]",ht="[object Set]",Gn="[object String]",mr="[object Symbol]",So="[object Undefined]",Vn="[object WeakMap]",Po="[object WeakSet]",Kn="[object ArrayBuffer]",Rn="[object DataView]",Gr="[object Float32Array]",Vr="[object Float64Array]",Kr="[object Int8Array]",Yr="[object Int16Array]",Jr="[object Int32Array]",Xr="[object Uint8Array]",Qr="[object Uint8ClampedArray]",jr="[object Uint16Array]",wr="[object Uint32Array]",Io=/\b__p \+= '';/g,Wo=/\b(__p \+=) '' \+/g,Mo=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ki=/&(?:amp|lt|gt|quot|#39);/g,ei=/[&<>"']/g,Do=RegExp(ki.source),Fo=RegExp(ei.source),ko=/<%-([\s\S]+?)%>/g,Uo=/<%([\s\S]+?)%>/g,Ui=/<%=([\s\S]+?)%>/g,qo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ho=/^\w*$/,Bo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ti=/[\\^$.*+?()[\]{}|]/g,zo=RegExp(ti.source),ni=/^\s+/,$o=/\s/,Zo=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Go=/\{\n\/\* \[wrapped with (.+)\] \*/,Vo=/,? & /,Ko=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Yo=/[()=,{}\[\]\/\s]/,Jo=/\\(\\)?/g,Xo=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,qi=/\w*$/,o=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,a=/^\[object .+?Constructor\]$/,f=/^0o[0-7]+$/i,g=/^(?:0|[1-9]\d*)$/,p=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,E=/($^)/,T=/['\n\r\u2028\u2029\\]/g,L="\\ud800-\\udfff",x="\\u0300-\\u036f",I="\\ufe20-\\ufe2f",F="\\u20d0-\\u20ff",z=x+I+F,ie="\\u2700-\\u27bf",_e="a-z\\xdf-\\xf6\\xf8-\\xff",ce="\\xac\\xb1\\xd7\\xf7",Ye="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Me="\\u2000-\\u206f",Et=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Re="A-Z\\xc0-\\xd6\\xd8-\\xde",Be="\\ufe0e\\ufe0f",Yn=ce+Ye+Me+Et,At="['\u2019]",ri="["+L+"]",Jn="["+Yn+"]",nn="["+z+"]",Cr="\\d+",Tt="["+ie+"]",Xn="["+_e+"]",Qn="[^"+L+Yn+Cr+ie+_e+Re+"]",jn="\\ud83c[\\udffb-\\udfff]",Ge="(?:"+nn+"|"+jn+")",ye="[^"+L+"]",Qo="(?:\\ud83c[\\udde6-\\uddff]){2}",jo="[\\ud800-\\udbff][\\udc00-\\udfff]",vr="["+Re+"]",r0="\\u200d",i0="(?:"+Xn+"|"+Qn+")",du="(?:"+vr+"|"+Qn+")",o0="(?:"+At+"(?:d|ll|m|re|s|t|ve))?",s0="(?:"+At+"(?:D|LL|M|RE|S|T|VE))?",l0=Ge+"?",u0="["+Be+"]?",gu="(?:"+r0+"(?:"+[ye,Qo,jo].join("|")+")"+u0+l0+")*",pu="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",mu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",a0=u0+l0+gu,wu="(?:"+[Tt,Qo,jo].join("|")+")"+a0,Cu="(?:"+[ye+nn+"?",nn,Qo,jo,ri].join("|")+")",vu=RegExp(At,"g"),_u=RegExp(nn,"g"),e2=RegExp(jn+"(?="+jn+")|"+Cu+a0,"g"),bu=RegExp([vr+"?"+Xn+"+"+o0+"(?="+[Jn,vr,"$"].join("|")+")",du+"+"+s0+"(?="+[Jn,vr+i0,"$"].join("|")+")",vr+"?"+i0+"+"+o0,vr+"+"+s0,mu,pu,Cr,wu].join("|"),"g"),Eu=RegExp("["+r0+L+z+Be+"]"),Au=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Tu=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ru=-1,De={};De[Gr]=De[Vr]=De[Kr]=De[Yr]=De[Jr]=De[Xr]=De[Qr]=De[jr]=De[wr]=!0,De[Ze]=De[zn]=De[Kn]=De[En]=De[Rn]=De[An]=De[Tn]=De[bt]=De[st]=De[$n]=De[et]=De[cn]=De[ht]=De[Gn]=De[Vn]=!1;var Ie={};Ie[Ze]=Ie[zn]=Ie[Kn]=Ie[Rn]=Ie[En]=Ie[An]=Ie[Gr]=Ie[Vr]=Ie[Kr]=Ie[Yr]=Ie[Jr]=Ie[st]=Ie[$n]=Ie[et]=Ie[cn]=Ie[ht]=Ie[Gn]=Ie[mr]=Ie[Xr]=Ie[Qr]=Ie[jr]=Ie[wr]=!0,Ie[Tn]=Ie[bt]=Ie[Vn]=!1;var xu={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},yu={"&":"&","<":"<",">":">",'"':""","'":"'"},Nu={"&":"&","<":"<",">":">",""":'"',"'":"'"},Lu={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ou=parseFloat,Su=parseInt,c0=typeof global=="object"&&global&&global.Object===Object&&global,Pu=typeof self=="object"&&self&&self.Object===Object&&self,Ve=c0||Pu||Function("return this")(),t2=typeof Ir=="object"&&Ir&&!Ir.nodeType&&Ir,er=t2&&typeof bi=="object"&&bi&&!bi.nodeType&&bi,f0=er&&er.exports===t2,n2=f0&&c0.process,Dt=function(){try{var N=er&&er.require&&er.require("util").types;return N||n2&&n2.binding&&n2.binding("util")}catch(k){}}(),h0=Dt&&Dt.isArrayBuffer,d0=Dt&&Dt.isDate,g0=Dt&&Dt.isMap,p0=Dt&&Dt.isRegExp,m0=Dt&&Dt.isSet,w0=Dt&&Dt.isTypedArray;function Rt(N,k,W){switch(W.length){case 0:return N.call(k);case 1:return N.call(k,W[0]);case 2:return N.call(k,W[0],W[1]);case 3:return N.call(k,W[0],W[1],W[2])}return N.apply(k,W)}function Iu(N,k,W,ee){for(var fe=-1,Te=N==null?0:N.length;++fe-1}function r2(N,k,W){for(var ee=-1,fe=N==null?0:N.length;++ee-1;);return W}function R0(N,k){for(var W=N.length;W--&&_r(k,N[W],0)>-1;);return W}function Bu(N,k){for(var W=N.length,ee=0;W--;)N[W]===k&&++ee;return ee}var zu=l2(xu),$u=l2(yu);function Zu(N){return"\\"+Lu[N]}function Gu(N,k){return N==null?s:N[k]}function br(N){return Eu.test(N)}function Vu(N){return Au.test(N)}function Ku(N){for(var k,W=[];!(k=N.next()).done;)W.push(k.value);return W}function f2(N){var k=-1,W=Array(N.size);return N.forEach(function(ee,fe){W[++k]=[fe,ee]}),W}function x0(N,k){return function(W){return N(k(W))}}function Nn(N,k){for(var W=-1,ee=N.length,fe=0,Te=[];++W-1}function M4(e,t){var n=this.__data__,i=i1(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}fn.prototype.clear=S4,fn.prototype.delete=P4,fn.prototype.get=I4,fn.prototype.has=W4,fn.prototype.set=M4;function hn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function qt(e,t,n,i,h,v){var b,R=t&P,O=t&y,q=t&S;if(n&&(b=h?n(e,i,h,v):n(e)),b!==s)return b;if(!ke(e))return e;var H=he(e);if(H){if(b=U6(e),!R)return dt(e,b)}else{var Z=nt(e),X=Z==bt||Z==Zr;if(Mn(e))return us(e,R);if(Z==et||Z==Ze||X&&!h){if(b=O||X?{}:ys(e),!R)return O?N6(e,X4(b,e)):y6(e,k0(b,e))}else{if(!Ie[Z])return h?e:{};b=q6(e,Z,R)}}v||(v=new Kt);var ne=v.get(e);if(ne)return ne;v.set(e,b),nl(e)?e.forEach(function(ae){b.add(qt(ae,t,n,ae,e,v))}):el(e)&&e.forEach(function(ae,ve){b.set(ve,qt(ae,t,n,ve,e,v))});var ue=q?O?F2:D2:O?pt:Ke,pe=H?s:ue(e);return Ft(pe||e,function(ae,ve){pe&&(ve=ae,ae=e[ve]),ci(b,ve,qt(ae,t,n,ve,e,v))}),b}function Q4(e){var t=Ke(e);return function(n){return U0(n,e,t)}}function U0(e,t,n){var i=n.length;if(e==null)return!i;for(e=Se(e);i--;){var h=n[i],v=t[h],b=e[h];if(b===s&&!(h in e)||!v(b))return!1}return!0}function q0(e,t,n){if(typeof e!="function")throw new kt(d);return wi(function(){e.apply(s,n)},t)}function fi(e,t,n,i){var h=-1,v=Hi,b=!0,R=e.length,O=[],q=t.length;if(!R)return O;n&&(t=Fe(t,xt(n))),i?(v=r2,b=!1):t.length>=l&&(v=ii,b=!1,t=new rr(t));e:for(;++hh?0:h+n),i=i===s||i>h?h:de(i),i<0&&(i+=h),i=n>i?0:il(i);n0&&n(R)?t>1?Je(R,t-1,n,i,h):yn(h,R):i||(h[h.length]=R)}return h}var C2=gs(),z0=gs(!0);function rn(e,t){return e&&C2(e,t,Ke)}function v2(e,t){return e&&z0(e,t,Ke)}function s1(e,t){return xn(t,function(n){return wn(e[n])})}function or(e,t){t=In(t,e);for(var n=0,i=t.length;e!=null&&nt}function t6(e,t){return e!=null&&Ne.call(e,t)}function n6(e,t){return e!=null&&t in Se(e)}function r6(e,t,n){return e>=tt(t,n)&&e<$e(t,n)}function b2(e,t,n){for(var i=n?r2:Hi,h=e[0].length,v=e.length,b=v,R=W(v),O=1/0,q=[];b--;){var H=e[b];b&&t&&(H=Fe(H,xt(t))),O=tt(H.length,O),R[b]=!n&&(t||h>=120&&H.length>=120)?new rr(b&&H):s}H=e[0];var Z=-1,X=R[0];e:for(;++Z-1;)R!==e&&Xi.call(R,O,1),Xi.call(e,O,1);return e}function es(e,t){for(var n=e?t.length:0,i=n-1;n--;){var h=t[n];if(n==i||h!==v){var v=h;mn(h)?Xi.call(e,h,1):L2(e,h)}}return e}function x2(e,t){return e+e1(W0()*(t-e+1))}function m6(e,t,n,i){for(var h=-1,v=$e(ji((t-e)/(n||1)),0),b=W(v);v--;)b[i?v:++h]=e,e+=n;return b}function y2(e,t){var n="";if(!e||t<1||t>_t)return n;do t%2&&(n+=e),t=e1(t/2),t&&(e+=e);while(t);return n}function me(e,t){return $2(Os(e,t,mt),e+"")}function w6(e){return F0(Sr(e))}function C6(e,t){var n=Sr(e);return w1(n,ir(t,0,n.length))}function gi(e,t,n,i){if(!ke(e))return e;t=In(t,e);for(var h=-1,v=t.length,b=v-1,R=e;R!=null&&++hh?0:h+t),n=n>h?h:n,n<0&&(n+=h),h=t>n?0:n-t>>>0,t>>>=0;for(var v=W(h);++i>>1,b=e[v];b!==null&&!Nt(b)&&(n?b<=t:b=l){var q=t?null:P6(e);if(q)return zi(q);b=!1,h=ii,O=new rr}else O=t?[]:R;e:for(;++i=i?e:Ht(e,t,n)}var ls=a4||function(e){return Ve.clearTimeout(e)};function us(e,t){if(t)return e.slice();var n=e.length,i=L0?L0(n):new e.constructor(n);return e.copy(i),i}function I2(e){var t=new e.constructor(e.byteLength);return new Yi(t).set(new Yi(e)),t}function A6(e,t){var n=t?I2(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function T6(e){var t=new e.constructor(e.source,qi.exec(e));return t.lastIndex=e.lastIndex,t}function R6(e){return ai?Se(ai.call(e)):{}}function as(e,t){var n=t?I2(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function cs(e,t){if(e!==t){var n=e!==s,i=e===null,h=e===e,v=Nt(e),b=t!==s,R=t===null,O=t===t,q=Nt(t);if(!R&&!q&&!v&&e>t||v&&b&&O&&!R&&!q||i&&b&&O||!n&&O||!h)return 1;if(!i&&!v&&!q&&e=R)return O;var q=n[i];return O*(q=="desc"?-1:1)}}return e.index-t.index}function fs(e,t,n,i){for(var h=-1,v=e.length,b=n.length,R=-1,O=t.length,q=$e(v-b,0),H=W(O+q),Z=!i;++R1?n[h-1]:s,b=h>2?n[2]:s;for(v=e.length>3&&typeof v=="function"?(h--,v):s,b&&ut(n[0],n[1],b)&&(v=h<3?s:v,h=1),t=Se(t);++i-1?h[v?t[b]:b]:s}}function ws(e){return pn(function(t){var n=t.length,i=n,h=Ut.prototype.thru;for(e&&t.reverse();i--;){var v=t[i];if(typeof v!="function")throw new kt(d);if(h&&!b&&p1(v)=="wrapper")var b=new Ut([],!0)}for(i=b?i:n;++i1&&Ee.reverse(),H&&OR))return!1;var q=v.get(e),H=v.get(t);if(q&&H)return q==t&&H==e;var Z=-1,X=!0,ne=n&M?new rr:s;for(v.set(e,t),v.set(t,e);++Z1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(Zo,`{ +/* [wrapped with `+t+`] */ +`)}function B6(e){return he(e)||ur(e)||!!(P0&&e&&e[P0])}function mn(e,t){var n=typeof e;return t=t==null?_t:t,!!t&&(n=="number"||n!="symbol"&&g.test(e))&&e>-1&&e%1==0&&e0){if(++t>=Pe)return arguments[0]}else t=0;return e.apply(s,arguments)}}function w1(e,t){var n=-1,i=e.length,h=i-1;for(t=t===s?i:t;++n1?e[t-1]:s;return n=typeof n=="function"?(e.pop(),n):s,Bs(e,n)});function zs(e){var t=w(e);return t.__chain__=!0,t}function ja(e,t){return t(e),e}function C1(e,t){return t(e)}var e8=pn(function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,h=function(v){return w2(v,e)};return t>1||this.__actions__.length||!(i instanceof be)||!mn(n)?this.thru(h):(i=i.slice(n,+n+(t?1:0)),i.__actions__.push({func:C1,args:[h],thisArg:s}),new Ut(i,this.__chain__).thru(function(v){return t&&!v.length&&v.push(s),v}))});function t8(){return zs(this)}function n8(){return new Ut(this.value(),this.__chain__)}function r8(){this.__values__===s&&(this.__values__=rl(this.value()));var e=this.__index__>=this.__values__.length,t=e?s:this.__values__[this.__index__++];return{done:e,value:t}}function i8(){return this}function o8(e){for(var t,n=this;n instanceof r1;){var i=Ds(n);i.__index__=0,i.__values__=s,t?h.__wrapped__=i:t=i;var h=i;n=n.__wrapped__}return h.__wrapped__=e,t}function s8(){var e=this.__wrapped__;if(e instanceof be){var t=e;return this.__actions__.length&&(t=new be(this)),t=t.reverse(),t.__actions__.push({func:C1,args:[Z2],thisArg:s}),new Ut(t,this.__chain__)}return this.thru(Z2)}function l8(){return os(this.__wrapped__,this.__actions__)}var u8=c1(function(e,t,n){Ne.call(e,n)?++e[n]:dn(e,n,1)});function a8(e,t,n){var i=he(e)?C0:j4;return n&&ut(e,t,n)&&(t=s),i(e,le(t,3))}function c8(e,t){var n=he(e)?xn:B0;return n(e,le(t,3))}var f8=ms(Fs),h8=ms(ks);function d8(e,t){return Je(v1(e,t),1)}function g8(e,t){return Je(v1(e,t),vt)}function p8(e,t,n){return n=n===s?1:de(n),Je(v1(e,t),n)}function $s(e,t){var n=he(e)?Ft:Sn;return n(e,le(t,3))}function Zs(e,t){var n=he(e)?Wu:H0;return n(e,le(t,3))}var m8=c1(function(e,t,n){Ne.call(e,n)?e[n].push(t):dn(e,n,[t])});function w8(e,t,n,i){e=gt(e)?e:Sr(e),n=n&&!i?de(n):0;var h=e.length;return n<0&&(n=$e(h+n,0)),T1(e)?n<=h&&e.indexOf(t,n)>-1:!!h&&_r(e,t,n)>-1}var C8=me(function(e,t,n){var i=-1,h=typeof t=="function",v=gt(e)?W(e.length):[];return Sn(e,function(b){v[++i]=h?Rt(t,b,n):hi(b,t,n)}),v}),v8=c1(function(e,t,n){dn(e,n,t)});function v1(e,t){var n=he(e)?Fe:K0;return n(e,le(t,3))}function _8(e,t,n,i){return e==null?[]:(he(t)||(t=t==null?[]:[t]),n=i?s:n,he(n)||(n=n==null?[]:[n]),Q0(e,t,n))}var b8=c1(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});function E8(e,t,n){var i=he(e)?i2:E0,h=arguments.length<3;return i(e,le(t,4),n,h,Sn)}function A8(e,t,n){var i=he(e)?Mu:E0,h=arguments.length<3;return i(e,le(t,4),n,h,H0)}function T8(e,t){var n=he(e)?xn:B0;return n(e,E1(le(t,3)))}function R8(e){var t=he(e)?F0:w6;return t(e)}function x8(e,t,n){(n?ut(e,t,n):t===s)?t=1:t=de(t);var i=he(e)?K4:C6;return i(e,t)}function y8(e){var t=he(e)?Y4:_6;return t(e)}function N8(e){if(e==null)return 0;if(gt(e))return T1(e)?Er(e):e.length;var t=nt(e);return t==st||t==ht?e.size:A2(e).length}function L8(e,t,n){var i=he(e)?o2:b6;return n&&ut(e,t,n)&&(t=s),i(e,le(t,3))}var O8=me(function(e,t){if(e==null)return[];var n=t.length;return n>1&&ut(e,t[0],t[1])?t=[]:n>2&&ut(t[0],t[1],t[2])&&(t=[t[0]]),Q0(e,Je(t,1),[])}),_1=c4||function(){return Ve.Date.now()};function S8(e,t){if(typeof t!="function")throw new kt(d);return e=de(e),function(){if(--e<1)return t.apply(this,arguments)}}function Gs(e,t,n){return t=n?s:t,t=e&&t==null?e.length:t,gn(e,te,s,s,s,s,t)}function Vs(e,t){var n;if(typeof t!="function")throw new kt(d);return e=de(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=s),n}}var V2=me(function(e,t,n){var i=Y;if(n.length){var h=Nn(n,Lr(V2));i|=U}return gn(e,i,t,n,h)}),Ks=me(function(e,t,n){var i=Y|se;if(n.length){var h=Nn(n,Lr(Ks));i|=U}return gn(t,i,e,n,h)});function Ys(e,t,n){t=n?s:t;var i=gn(e,D,s,s,s,s,s,t);return i.placeholder=Ys.placeholder,i}function Js(e,t,n){t=n?s:t;var i=gn(e,$,s,s,s,s,s,t);return i.placeholder=Js.placeholder,i}function Xs(e,t,n){var i,h,v,b,R,O,q=0,H=!1,Z=!1,X=!0;if(typeof e!="function")throw new kt(d);t=zt(t)||0,ke(n)&&(H=!!n.leading,Z="maxWait"in n,v=Z?$e(zt(n.maxWait)||0,t):v,X="trailing"in n?!!n.trailing:X);function ne(He){var Jt=i,vn=h;return i=h=s,q=He,b=e.apply(vn,Jt),b}function ue(He){return q=He,R=wi(ve,t),H?ne(He):b}function pe(He){var Jt=He-O,vn=He-q,ml=t-Jt;return Z?tt(ml,v-vn):ml}function ae(He){var Jt=He-O,vn=He-q;return O===s||Jt>=t||Jt<0||Z&&vn>=v}function ve(){var He=_1();if(ae(He))return Ee(He);R=wi(ve,pe(He))}function Ee(He){return R=s,X&&i?ne(He):(i=h=s,b)}function Lt(){R!==s&&ls(R),q=0,i=O=h=R=s}function at(){return R===s?b:Ee(_1())}function Ot(){var He=_1(),Jt=ae(He);if(i=arguments,h=this,O=He,Jt){if(R===s)return ue(O);if(Z)return ls(R),R=wi(ve,t),ne(O)}return R===s&&(R=wi(ve,t)),b}return Ot.cancel=Lt,Ot.flush=at,Ot}var P8=me(function(e,t){return q0(e,1,t)}),I8=me(function(e,t,n){return q0(e,zt(t)||0,n)});function W8(e){return gn(e,Q)}function b1(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new kt(d);var n=function(){var i=arguments,h=t?t.apply(this,i):i[0],v=n.cache;if(v.has(h))return v.get(h);var b=e.apply(this,i);return n.cache=v.set(h,b)||v,b};return n.cache=new(b1.Cache||hn),n}b1.Cache=hn;function E1(e){if(typeof e!="function")throw new kt(d);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function M8(e){return Vs(2,e)}var D8=E6(function(e,t){t=t.length==1&&he(t[0])?Fe(t[0],xt(le())):Fe(Je(t,1),xt(le()));var n=t.length;return me(function(i){for(var h=-1,v=tt(i.length,n);++h=t}),ur=Z0(function(){return arguments}())?Z0:function(e){return Ue(e)&&Ne.call(e,"callee")&&!S0.call(e,"callee")},he=W.isArray,X8=h0?xt(h0):o6;function gt(e){return e!=null&&A1(e.length)&&!wn(e)}function qe(e){return Ue(e)&>(e)}function Q8(e){return e===!0||e===!1||Ue(e)&<(e)==En}var Mn=h4||o3,j8=d0?xt(d0):s6;function e5(e){return Ue(e)&&e.nodeType===1&&!Ci(e)}function t5(e){if(e==null)return!0;if(gt(e)&&(he(e)||typeof e=="string"||typeof e.splice=="function"||Mn(e)||Or(e)||ur(e)))return!e.length;var t=nt(e);if(t==st||t==ht)return!e.size;if(mi(e))return!A2(e).length;for(var n in e)if(Ne.call(e,n))return!1;return!0}function n5(e,t){return di(e,t)}function r5(e,t,n){n=typeof n=="function"?n:s;var i=n?n(e,t):s;return i===s?di(e,t,s,n):!!i}function Y2(e){if(!Ue(e))return!1;var t=lt(e);return t==Tn||t==Di||typeof e.message=="string"&&typeof e.name=="string"&&!Ci(e)}function i5(e){return typeof e=="number"&&I0(e)}function wn(e){if(!ke(e))return!1;var t=lt(e);return t==bt||t==Zr||t==tn||t==Fi}function js(e){return typeof e=="number"&&e==de(e)}function A1(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=_t}function ke(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Ue(e){return e!=null&&typeof e=="object"}var el=g0?xt(g0):u6;function o5(e,t){return e===t||E2(e,t,U2(t))}function s5(e,t,n){return n=typeof n=="function"?n:s,E2(e,t,U2(t),n)}function l5(e){return tl(e)&&e!=+e}function u5(e){if(Z6(e))throw new fe(c);return G0(e)}function a5(e){return e===null}function c5(e){return e==null}function tl(e){return typeof e=="number"||Ue(e)&<(e)==$n}function Ci(e){if(!Ue(e)||lt(e)!=et)return!1;var t=Ji(e);if(t===null)return!0;var n=Ne.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Gi.call(n)==s4}var J2=p0?xt(p0):a6;function f5(e){return js(e)&&e>=-_t&&e<=_t}var nl=m0?xt(m0):c6;function T1(e){return typeof e=="string"||!he(e)&&Ue(e)&<(e)==Gn}function Nt(e){return typeof e=="symbol"||Ue(e)&<(e)==mr}var Or=w0?xt(w0):f6;function h5(e){return e===s}function d5(e){return Ue(e)&&nt(e)==Vn}function g5(e){return Ue(e)&<(e)==Po}var p5=g1(T2),m5=g1(function(e,t){return e<=t});function rl(e){if(!e)return[];if(gt(e))return T1(e)?Vt(e):dt(e);if(oi&&e[oi])return Ku(e[oi]());var t=nt(e),n=t==st?f2:t==ht?zi:Sr;return n(e)}function Cn(e){if(!e)return e===0?e:0;if(e=zt(e),e===vt||e===-vt){var t=e<0?-1:1;return t*Lo}return e===e?e:0}function de(e){var t=Cn(e),n=t%1;return t===t?n?t-n:t:0}function il(e){return e?ir(de(e),0,j):0}function zt(e){if(typeof e=="number")return e;if(Nt(e))return Ae;if(ke(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ke(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=A0(e);var n=u.test(e);return n||f.test(e)?Su(e.slice(2),n?2:8):o.test(e)?Ae:+e}function ol(e){return on(e,pt(e))}function w5(e){return e?ir(de(e),-_t,_t):e===0?e:0}function xe(e){return e==null?"":yt(e)}var C5=yr(function(e,t){if(mi(t)||gt(t)){on(t,Ke(t),e);return}for(var n in t)Ne.call(t,n)&&ci(e,n,t[n])}),sl=yr(function(e,t){on(t,pt(t),e)}),R1=yr(function(e,t,n,i){on(t,pt(t),e,i)}),v5=yr(function(e,t,n,i){on(t,Ke(t),e,i)}),_5=pn(w2);function b5(e,t){var n=xr(e);return t==null?n:k0(n,t)}var E5=me(function(e,t){e=Se(e);var n=-1,i=t.length,h=i>2?t[2]:s;for(h&&ut(t[0],t[1],h)&&(i=1);++n1),v}),on(e,F2(e),n),i&&(n=qt(n,P|y|S,I6));for(var h=t.length;h--;)L2(n,t[h]);return n});function q5(e,t){return ul(e,E1(le(t)))}var H5=pn(function(e,t){return e==null?{}:g6(e,t)});function ul(e,t){if(e==null)return{};var n=Fe(F2(e),function(i){return[i]});return t=le(t),j0(e,n,function(i,h){return t(i,h[0])})}function B5(e,t,n){t=In(t,e);var i=-1,h=t.length;for(h||(h=1,e=s);++it){var i=e;e=t,t=i}if(n||e%1||t%1){var h=W0();return tt(e+h*(t-e+Ou("1e-"+((h+"").length-1))),t)}return x2(e,t)}var j5=Nr(function(e,t,n){return t=t.toLowerCase(),e+(n?fl(t):t)});function fl(e){return j2(xe(e).toLowerCase())}function hl(e){return e=xe(e),e&&e.replace(p,zu).replace(_u,"")}function ec(e,t,n){e=xe(e),t=yt(t);var i=e.length;n=n===s?i:ir(de(n),0,i);var h=n;return n-=t.length,n>=0&&e.slice(n,h)==t}function tc(e){return e=xe(e),e&&Fo.test(e)?e.replace(ei,$u):e}function nc(e){return e=xe(e),e&&zo.test(e)?e.replace(ti,"\\$&"):e}var rc=Nr(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),ic=Nr(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),oc=ps("toLowerCase");function sc(e,t,n){e=xe(e),t=de(t);var i=t?Er(e):0;if(!t||i>=t)return e;var h=(t-i)/2;return d1(e1(h),n)+e+d1(ji(h),n)}function lc(e,t,n){e=xe(e),t=de(t);var i=t?Er(e):0;return t&&i>>0,n?(e=xe(e),e&&(typeof t=="string"||t!=null&&!J2(t))&&(t=yt(t),!t&&br(e))?Wn(Vt(e),0,n):e.split(t,n)):[]}var gc=Nr(function(e,t,n){return e+(n?" ":"")+j2(t)});function pc(e,t,n){return e=xe(e),n=n==null?0:ir(de(n),0,e.length),t=yt(t),e.slice(n,n+t.length)==t}function mc(e,t,n){var i=w.templateSettings;n&&ut(e,t,n)&&(t=s),e=xe(e),t=R1({},t,i,Es);var h=R1({},t.imports,i.imports,Es),v=Ke(h),b=c2(h,v),R,O,q=0,H=t.interpolate||E,Z="__p += '",X=h2((t.escape||E).source+"|"+H.source+"|"+(H===Ui?Xo:E).source+"|"+(t.evaluate||E).source+"|$","g"),ne="//# sourceURL="+(Ne.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ru+"]")+` +`;e.replace(X,function(ae,ve,Ee,Lt,at,Ot){return Ee||(Ee=Lt),Z+=e.slice(q,Ot).replace(T,Zu),ve&&(R=!0,Z+=`' + +__e(`+ve+`) + +'`),at&&(O=!0,Z+=`'; +`+at+`; +__p += '`),Ee&&(Z+=`' + +((__t = (`+Ee+`)) == null ? '' : __t) + +'`),q=Ot+ae.length,ae}),Z+=`'; +`;var ue=Ne.call(t,"variable")&&t.variable;if(!ue)Z=`with (obj) { +`+Z+` +} +`;else if(Yo.test(ue))throw new fe(C);Z=(O?Z.replace(Io,""):Z).replace(Wo,"$1").replace(Mo,"$1;"),Z="function("+(ue||"obj")+`) { +`+(ue?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(R?", __e = _.escape":"")+(O?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Z+`return __p +}`;var pe=gl(function(){return Te(v,ne+"return "+Z).apply(s,b)});if(pe.source=Z,Y2(pe))throw pe;return pe}function wc(e){return xe(e).toLowerCase()}function Cc(e){return xe(e).toUpperCase()}function vc(e,t,n){if(e=xe(e),e&&(n||t===s))return A0(e);if(!e||!(t=yt(t)))return e;var i=Vt(e),h=Vt(t),v=T0(i,h),b=R0(i,h)+1;return Wn(i,v,b).join("")}function _c(e,t,n){if(e=xe(e),e&&(n||t===s))return e.slice(0,y0(e)+1);if(!e||!(t=yt(t)))return e;var i=Vt(e),h=R0(i,Vt(t))+1;return Wn(i,0,h).join("")}function bc(e,t,n){if(e=xe(e),e&&(n||t===s))return e.replace(ni,"");if(!e||!(t=yt(t)))return e;var i=Vt(e),h=T0(i,Vt(t));return Wn(i,h).join("")}function Ec(e,t){var n=G,i=Ce;if(ke(t)){var h="separator"in t?t.separator:h;n="length"in t?de(t.length):n,i="omission"in t?yt(t.omission):i}e=xe(e);var v=e.length;if(br(e)){var b=Vt(e);v=b.length}if(n>=v)return e;var R=n-Er(i);if(R<1)return i;var O=b?Wn(b,0,R).join(""):e.slice(0,R);if(h===s)return O+i;if(b&&(R+=O.length-R),J2(h)){if(e.slice(R).search(h)){var q,H=O;for(h.global||(h=h2(h.source,xe(qi.exec(h))+"g")),h.lastIndex=0;q=h.exec(H);)var Z=q.index;O=O.slice(0,Z===s?R:Z)}}else if(e.indexOf(yt(h),R)!=R){var X=O.lastIndexOf(h);X>-1&&(O=O.slice(0,X))}return O+i}function Ac(e){return e=xe(e),e&&Do.test(e)?e.replace(ki,Qu):e}var Tc=Nr(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),j2=ps("toUpperCase");function dl(e,t,n){return e=xe(e),t=n?s:t,t===s?Vu(e)?t4(e):ku(e):e.match(t)||[]}var gl=me(function(e,t){try{return Rt(e,s,t)}catch(n){return Y2(n)?n:new fe(n)}}),Rc=pn(function(e,t){return Ft(t,function(n){n=sn(n),dn(e,n,V2(e[n],e))}),e});function xc(e){var t=e==null?0:e.length,n=le();return e=t?Fe(e,function(i){if(typeof i[1]!="function")throw new kt(d);return[n(i[0]),i[1]]}):[],me(function(i){for(var h=-1;++h_t)return[];var n=j,i=tt(e,j);t=le(t),e-=j;for(var h=a2(i,t);++n0||t<0)?new be(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==s&&(t=de(t),n=t<0?n.dropRight(-t):n.take(t-e)),n)},be.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},be.prototype.toArray=function(){return this.take(j)},rn(be.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),h=w[i?"take"+(t=="last"?"Right":""):t],v=i||/^find/.test(t);h&&(w.prototype[t]=function(){var b=this.__wrapped__,R=i?[1]:arguments,O=b instanceof be,q=R[0],H=O||he(b),Z=function(ve){var Ee=h.apply(w,yn([ve],R));return i&&X?Ee[0]:Ee};H&&n&&typeof q=="function"&&q.length!=1&&(O=H=!1);var X=this.__chain__,ne=!!this.__actions__.length,ue=v&&!X,pe=O&&!ne;if(!v&&H){b=pe?b:new be(this);var ae=e.apply(b,R);return ae.__actions__.push({func:C1,args:[Z],thisArg:s}),new Ut(ae,X)}return ue&&pe?e.apply(this,R):(ae=this.thru(Z),ue?i?ae.value()[0]:ae.value():ae)})}),Ft(["pop","push","shift","sort","splice","unshift"],function(e){var t=$i[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);w.prototype[e]=function(){var h=arguments;if(i&&!this.__chain__){var v=this.value();return t.apply(he(v)?v:[],h)}return this[n](function(b){return t.apply(he(b)?b:[],h)})}}),rn(be.prototype,function(e,t){var n=w[t];if(n){var i=n.name+"";Ne.call(Rr,i)||(Rr[i]=[]),Rr[i].push({name:t,func:n})}}),Rr[f1(s,se).name]=[{name:"wrapper",func:s}],be.prototype.clone=A4,be.prototype.reverse=T4,be.prototype.value=R4,w.prototype.at=e8,w.prototype.chain=t8,w.prototype.commit=n8,w.prototype.next=r8,w.prototype.plant=o8,w.prototype.reverse=s8,w.prototype.toJSON=w.prototype.valueOf=w.prototype.value=l8,w.prototype.first=w.prototype.head,oi&&(w.prototype[oi]=i8),w},Ln=n4();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Ve._=Ln,define(function(){return Ln})):er?((er.exports=Ln)._=Ln,t2._=Ln):Ve._=Ln}).call(Ir)});var Fn=we(Qt=>{"use strict";var A9=Qt&&Qt.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Qt,"__esModule",{value:!0});Qt.Value=Qt.Arity=Qt.FloatOrMilliseconds=void 0;var Ei=A9(f3()),T9=Wr(),R9=new RegExp("[1-9][0-9]{3}-[01][0-9]-[0-3][0-9][T ][0-2][0-9]:[0-5][0-9]"),x9=new RegExp("^-?[0-9]+:[0-5][0-9]"),y9=s=>{let r=s.trim();if(r==="")return new Ei.default(0);if(R9.test(r))return new Ei.default(new Date(r).valueOf());if(x9.test(r)){let c=r.charAt(0)=="-",d=r.slice(c?1:0),C=parseInt(d.slice(0,-3))*60+parseInt(d.slice(-2));return new Ei.default((c?-1:1)*C*6e4)}let l=new Ei.default(r);return l.isNaN()?new Ei.default(0):l};Qt.FloatOrMilliseconds=y9;var H1=class{constructor(r,l){this.isRow=()=>this.rows>1&&this.cols===1,this.isColumn=()=>this.rows===1&&this.cols>1,this.isCell=()=>this.rows===1&&this.cols===1,this.rows=r,this.cols=l}};Qt.Arity=H1;var h3=class{constructor(r){this.get=(l,c)=>this.val[l][c],this.getAsNumber=(l,c)=>{let d=this.get(l,c);return(0,Qt.FloatOrMilliseconds)(d)},this.getArity=()=>{let l=this.val.reduce((c,d)=>Math.max(c,d.length),0);return new H1(this.val.length,l)},this.toString=()=>this.getArity().isCell()?this.get(0,0):`[${(0,T9.flatten)(this.val).map(l=>l.trim()).filter(l=>l!=="").join(", ")}]`,this.val=r}};Qt.Value=h3});var Rl=we($1=>{"use strict";Object.defineProperty($1,"__esModule",{value:!0});$1.AlgebraicOperation=void 0;var ar=Xt(),d3=$t(),Tl=Ai(),B1=Fn(),z1=Wr(),g3=class{constructor(r,l){this.getValue=(_,m)=>{switch(this.operator){case"+":return this.add(_,m);case"-":return this.subtract(_,m);case"*":return this.multiply(_,m);case"/":return this.divide(_,m);default:return(0,ar.err)(Error("Invalid algbraic operator: "+this.operator))}},this.withCellAndRange=(_,m,A,P,y)=>{let S=this.leftSource.getValue(_,m);if(S.isErr())return(0,ar.err)(S.error);let V=this.rightSource.getValue(_,m);if(V.isErr())return(0,ar.err)(V.error);let M=S.value.getArity(),Y=V.value.getArity();if(!Y.isCell()&&!M.isCell())return(0,ar.err)(Error(`At least one operand in algebraic "${A}" must be a single cell.`));if(!Y.isCell()&&!P)return(0,ar.err)(Error(`Right operand in algebraic "${A}" must be a single cell.`));if(Y.isCell()){let D=V.value.getAsNumber(0,0),$=(0,z1.map)(S.value.val,U=>(0,z1.map)(U,K=>{let te=(0,B1.FloatOrMilliseconds)(K);return y(te,D).toString()}));return(0,ar.ok)(new B1.Value($))}let se=S.value.getAsNumber(0,0),ge=(0,z1.map)(V.value.val,D=>(0,z1.map)(D,$=>{let U=(0,B1.FloatOrMilliseconds)($);return y(se,U).toString()}));return(0,ar.ok)(new B1.Value(ge))},this.add=(_,m)=>this.withCellAndRange(_,m,"add",!0,(A,P)=>A.plus(P)),this.subtract=(_,m)=>this.withCellAndRange(_,m,"subtract",!0,(A,P)=>A.minus(P)),this.multiply=(_,m)=>this.withCellAndRange(_,m,"multiply",!0,(A,P)=>A.times(P)),this.divide=(_,m)=>this.withCellAndRange(_,m,"divide",!1,(A,P)=>A.dividedBy(P));let c=(0,d3.checkType)(r,"algebraic_operation");if(c)throw c;let d=(0,d3.checkChildLength)(r,3);if(d)throw d;let C=(0,d3.checkType)(r.children[1],"algebraic_operator");if(C)throw C;this.operator=r.children[1].text;try{this.leftSource=new Tl.Source(r.children[0],l),this.rightSource=new Tl.Source(r.children[2],l)}catch(_){throw _}}};$1.AlgebraicOperation=g3});var xl=we(G1=>{"use strict";Object.defineProperty(G1,"__esModule",{value:!0});G1.ConditionalFunctionCall=void 0;var jt=Xt(),Ti=$t(),Z1=Ai(),p3=class{constructor(r,l){this.getValue=(C,_)=>this.predicate.eval(C,_).andThen(m=>m?this.leftSource.getValue(C,_):this.rightSource.getValue(C,_));let c=(0,Ti.checkType)(r,"conditional_function_call");if(c)throw c;let d=(0,Ti.checkChildLength)(r,3);if(d)throw d;try{this.predicate=new m3(r.children[0],l),this.leftSource=new Z1.Source(r.children[1],l),this.rightSource=new Z1.Source(r.children[2],l)}catch(C){throw C}}};G1.ConditionalFunctionCall=p3;var m3=class{constructor(r,l){this.eval=(_,m)=>{let A=this.leftSource.getValue(_,m);if(A.isErr())return(0,jt.err)(A.error);let P=this.rightSource.getValue(_,m);if(P.isErr())return(0,jt.err)(P.error);let y=A.value.getArity(),S=P.value.getArity();if(!y.isCell())return(0,jt.err)(Error("Can only use comparison operator on a single cell. Left side is not a cell."));if(!S.isCell())return(0,jt.err)(Error("Can only use comparison operator on a single cell. Right side is not a cell."));let V=A.value.getAsNumber(0,0),M=P.value.getAsNumber(0,0);switch(this.operator){case">":return(0,jt.ok)(V.greaterThan(M));case">=":return(0,jt.ok)(V.greaterThanOrEqualTo(M));case"<":return(0,jt.ok)(V.lessThan(M));case"<=":return(0,jt.ok)(V.lessThanOrEqualTo(M));case"==":return(0,jt.ok)(V.equals(M));case"!=":return(0,jt.ok)(!V.equals(M));default:return(0,jt.err)(Error("Invalid conditional operator: "+this.operator))}};let c=(0,Ti.checkType)(r,"predicate");if(c)throw c;let d=(0,Ti.checkChildLength)(r,3);if(d)throw d;let C=(0,Ti.checkType)(r.children[1],"conditional_operator");if(C)throw C;this.operator=r.children[1].text;try{this.leftSource=new Z1.Source(r.children[0],l),this.rightSource=new Z1.Source(r.children[2],l)}catch(_){throw _}}}});var yl=we(V1=>{"use strict";Object.defineProperty(V1,"__esModule",{value:!0});V1.Constant=void 0;var N9=Xt(),L9=$t(),O9=Fn(),w3=class{constructor(r,l){let c=(0,L9.checkType)(r,"real","float");if(c)throw c;let d=r.text[0]==="-"?-1:1;r.type==="real"?this.value=d*parseInt(r.children[0].text):this.value=d*parseFloat(r.children[0].text+"."+r.children[1].text)}getValue(r,l){return(0,N9.ok)(new O9.Value([[this.value.toString()]]))}};V1.Constant=w3});var v3=we(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.AbsoluteColumn=Un.Column=Un.newColumn=void 0;var kn=Xt(),Ri=$t(),S9=Fn(),P9=(s,r)=>{try{switch(s.type){case"relative_column":return(0,kn.ok)(new C3(s,r));case"absolute_column":return(0,kn.ok)(new K1(s,r));default:return(0,kn.err)(new Error(`Formula element '${s.text}' is a ${s.type} but expected an relatve_column or absolute_column in this position.`))}}catch(l){return(0,kn.err)(l)}};Un.newColumn=P9;var xi=class{constructor(){this.getValue=(r,l)=>{var c;let d=((c=r.getCellAt(l.row,this.getIndex(l)))===null||c===void 0?void 0:c.toText())||"";return(0,kn.ok)(new S9.Value([[d]]))}}};Un.Column=xi;var C3=class extends xi{constructor(r,l){super(),this.getIndex=_=>_.column+this.offset,this.getAbsoluteIndex=()=>(0,kn.err)(Ri.errRelativeReferenceIndex);let c=(0,Ri.checkType)(r,"relative_column");if(c)throw c;let d=(0,Ri.checkChildLength)(r,1);if(d)throw d;let C=r.text[1]==="-"?-1:1;this.offset=C*parseInt(r.children[0].text)}},K1=class extends xi{constructor(r,l){super(),this.getIndex=C=>this.index,this.getAbsoluteIndex=()=>(0,kn.ok)(this.index);let c=-1,d="";switch(r.children.length){case 0:d=r.text[1];break;case 1:let C=(0,Ri.checkType)(r.children[0],"int");if(C)throw(0,kn.err)(C);c=parseInt(r.children[0].text);break;default:throw new Error(`Formula element '${r.text}' is a ${r.type} but expected a 'absolute_column' in this position.`)}switch(d){case"":break;case"<":c=1;break;case">":c=l.getWidth();break;default:throw new Error(`Invalid column symbol '${d}'`)}if(c===0)throw Ri.errIndex0;this.index=c-1}};Un.AbsoluteColumn=K1});var b3=we(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.AbsoluteRow=Hn.Row=Hn.newRow=void 0;var qn=Xt(),yi=$t(),I9=Fn(),W9=(s,r)=>{try{switch(s.type){case"relative_row":return(0,qn.ok)(new _3(s,r));case"absolute_row":return(0,qn.ok)(new Y1(s,r));default:return(0,qn.err)(new Error(`Formula element '${s.text}' is a ${s.type} but expected an relatve_row or absolute_row in this position.`))}}catch(l){return(0,qn.err)(l)}};Hn.newRow=W9;var Ni=class{constructor(){this.getValue=(r,l)=>{var c;let d=((c=r.getCellAt(this.getIndex(l),l.column))===null||c===void 0?void 0:c.toText())||"";return(0,qn.ok)(new I9.Value([[d]]))}}};Hn.Row=Ni;var _3=class extends Ni{constructor(r,l){super(),this.getIndex=_=>_.row+this.offset,this.getAbsoluteIndex=()=>(0,qn.err)(yi.errRelativeReferenceIndex);let c=(0,yi.checkType)(r,"relative_row");if(c)throw c;let d=(0,yi.checkChildLength)(r,1);if(d)throw d;let C=r.text[1]==="-"?-1:1;this.offset=C*parseInt(r.children[0].text)}},Y1=class extends Ni{constructor(r,l){super(),this.getIndex=C=>this.index,this.getAbsoluteIndex=()=>(0,qn.ok)(this.index);let c=-1,d="";switch(r.children.length){case 0:d=r.text[1];break;case 1:let C=(0,yi.checkType)(r.children[0],"int");if(C)throw(0,qn.err)(C);c=parseInt(r.children[0].text);break;default:throw new Error(`Formula element '${r.text}' is a ${r.type} but expected a 'absolute_row' in this position.`)}switch(d){case"":break;case"<":c=1;break;case">":c=l.getHeight()-1;break;case"I":c=2;break;default:throw new Error(`Invalid row symbol '${d}'`)}if(c===0)throw yi.errIndex0;c===1?this.index=0:this.index=c}};Hn.AbsoluteRow=Y1});var T3=we(J1=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});J1.Reference=void 0;var M9=Xt(),E3=$t(),D9=v3(),F9=Fn(),k9=b3(),A3=class{constructor(r,l){this.getValue=(d,C)=>{var _;let m={row:this.row?this.row.getIndex(C):C.row,column:this.column?this.column.getIndex(C):C.column},A=((_=d.getCellAt(m.row,m.column))===null||_===void 0?void 0:_.toText())||"";return(0,M9.ok)(new F9.Value([[A]]))};let c=(0,E3.checkType)(r,"source_reference","absolute_reference","relative_reference");if(c)throw c;for(let d=0;d{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});Q1.Range=void 0;var X1=Xt(),Mr=$t(),Nl=T3(),U9=Fn(),cr=Wr(),R3=class{constructor(r,l){this.getValue=(P,y)=>{let S=this.startColumn?this.startColumn.getIndex(y):y.column,V=this.endColumn?this.endColumn.getIndex(y):S,M=this.startRow?this.startRow.getIndex(y):y.row,Y=this.endRow?this.endRow.getIndex(y):y.row;return(0,X1.ok)(new U9.Value((0,cr.map)((0,cr.range)(M,Y+1),se=>(0,cr.map)((0,cr.range)(S,V+1),ge=>{var D;return((D=P.getCellAt(se,ge))===null||D===void 0?void 0:D.toText())||""}))))},this.asCells=()=>{if(!this.startColumn||!this.startRow||!this.endRow)return(0,X1.err)(new Error("A range used as a desintation must define rows and cells"));let P=this.endColumn;P||(P=this.startColumn);let y=this.startRow.getAbsoluteIndex(),S=this.endRow.getAbsoluteIndex(),V=this.startColumn.getAbsoluteIndex(),M=P.getAbsoluteIndex();if(y.isErr()||S.isErr()||V.isErr()||M.isErr())return(0,X1.err)(new Error("A relative range can not be used in a formula destination"));let Y=Math.min(y.value,S.value),se=Math.max(y.value,S.value),ge=Math.min(V.value,M.value),D=Math.max(V.value,M.value);return(0,X1.ok)((0,cr.flatMap)((0,cr.range)(Y,se+1),$=>(0,cr.range)(ge,D+1).map(U=>({row:$,column:U}))))};let c=(0,Mr.checkType)(r,"range");if(c)throw c;let d=(0,Mr.checkChildLength)(r,2);if(d)throw d;let C=r.children[0],_=r.children[1];if(c=(0,Mr.checkType)(C,"source_reference"),c||(c=(0,Mr.checkType)(_,"source_reference"),c))throw c;if(d=(0,Mr.checkChildLength)(C,1),d||(d=(0,Mr.checkChildLength)(_,1),d))throw d;let m=new Nl.Reference(C.children[0],l),A=new Nl.Reference(_.children[0],l);if(m.row&&!A.row||A.row&&!m.row)throw new Error("Range must use references of the same kind");if(!m.row&&!m.column)throw console.log(m),new Error("Range must have a row or a column defined");m.row&&(this.startRow=m.row),m.column&&(this.startColumn=m.column),A.row&&(this.endRow=A.row),A.column?this.endColumn=A.column:this.endColumn=m.column}};Q1.Range=R3});var Pl=we(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Zt.RangeDestination=Zt.CellDestination=Zt.ColumnDestination=Zt.RowDestination=Zt.newDestination=void 0;var Pt=Xt(),wt=$t(),Ll=v3(),q9=x3(),Ol=b3(),Sl=Wr(),H9=(s,r,l)=>{let c=(0,wt.checkType)(s,"destination");if(c)return(0,Pt.err)(c);let d=(0,wt.checkChildLength)(s,1);if(d)return(0,Pt.err)(d);let C=s.children[0];if(C.type==="range")return(0,Pt.ok)(new no(C,r,l));try{switch(C.children.length){case 2:return(0,Pt.ok)(new to(C,r,l));case 1:let _=C.children[0];if(_.type==="absolute_row")return(0,Pt.ok)(new j1(C,r,l));if(_.type==="absolute_column")return(0,Pt.ok)(new eo(C,r,l));default:return(0,Pt.err)(new Error("Unexpected destination type "+C.type))}}catch(_){return _===wt.errIndex0?(0,Pt.err)(new Error("Index 0 may not be used in a destination")):(0,Pt.err)(_)}};Zt.newDestination=H9;var j1=class{constructor(r,l,c){this.merge=(m,A)=>{let P=(0,Sl.range)(0,A.getWidth()).map(y=>({row:this.row.index,column:y}));return ro(m,A,P,this.formatter)},this.formatter=c;let d=(0,wt.checkType)(r,"absolute_reference");if(d)throw d;let C=(0,wt.checkChildLength)(r,1);if(C)throw C;let _=r.children[0];try{this.row=new Ol.AbsoluteRow(_,l)}catch(m){throw m}}};Zt.RowDestination=j1;var eo=class{constructor(r,l,c){this.merge=(m,A)=>{let P=(0,Sl.range)(2,A.getHeight()).map(y=>({row:y,column:this.column.index}));return ro(m,A,P,this.formatter)},this.formatter=c;let d=(0,wt.checkType)(r,"absolute_reference");if(d)throw d;let C=(0,wt.checkChildLength)(r,1);if(C)throw C;let _=r.children[0];try{this.column=new Ll.AbsoluteColumn(_,l)}catch(m){throw m}}};Zt.ColumnDestination=eo;var to=class{constructor(r,l,c){this.merge=(A,P)=>{let y={row:this.row.index,column:this.column.index};return ro(A,P,[y],this.formatter)},this.formatter=c;let d=(0,wt.checkType)(r,"absolute_reference");if(d)throw d;let C=(0,wt.checkChildLength)(r,2);if(C)throw C;let _=r.children[0],m=r.children[1];try{this.row=new Ol.AbsoluteRow(_,l),this.column=new Ll.AbsoluteColumn(m,l)}catch(A){throw A}}};Zt.CellDestination=to;var no=class{constructor(r,l,c){this.merge=(_,m)=>this.range.asCells().andThen(A=>ro(_,m,A,this.formatter)),this.formatter=c;let d=(0,wt.checkType)(r,"range");if(d)throw d;let C=(0,wt.checkChildLength)(r,2);if(C)throw C;r.children.forEach(_=>{let m=(0,wt.checkType)(_,"source_reference");if(m)throw m;let A=(0,wt.checkChildLength)(_,1);if(A)throw A;if(m=(0,wt.checkType)(_.children[0],"absolute_reference"),m)throw m}),this.range=new q9.Range(r,l)}};Zt.RangeDestination=no;var ro=(s,r,l,c)=>l.reduce((d,C)=>d.andThen(_=>s.getValue(_,C).andThen(m=>(0,Pt.ok)(m.toString())).andThen(m=>(0,Pt.ok)(m.trim()===""?"0":m)).andThen(m=>(0,Pt.ok)(_.setCellAt(C.row,C.column,c.format(m))))),(0,Pt.ok)(r))});var Il=we(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.DisplayDirective=Dr.DefaultFormatter=void 0;var fr=$t(),y3=class{constructor(){this.format=r=>typeof r=="string"?r:r.toString()}};Dr.DefaultFormatter=y3;var N3=class{constructor(r){this.format=m=>{let A=typeof m=="string"?parseFloat(m):m;if(this.displayAsDatetime){let P=new Date(A),y=ge=>`0${ge}`.slice(-2),S=P.getFullYear(),V=y(P.getMonth()+1),M=y(P.getDate()),Y=y(P.getHours()),se=y(P.getMinutes());return`${S}-${V}-${M} ${Y}:${se}`}if(this.displayAsHourMinute){let P=A<0?"-":"",y=Math.floor(Math.abs(A)/6e4),S=Y=>`0${Y}`.slice(-2),V=S(Math.floor(y/60)),M=S(y%60);return`${P}${V}:${M}`}return A.toFixed(this.decimalLength)};let l=(0,fr.checkType)(r,"display_directive");if(l)throw l;let c=(0,fr.checkChildLength)(r,1);if(c)throw c;let d=r.children[0];if(l=(0,fr.checkType)(d,"display_directive_option"),l)throw l;if(c=(0,fr.checkChildLength)(d,1),c)throw c;let C=d.children[0];if(l=(0,fr.checkType)(C,"formatting_directive","datetime_directive","hourminute_directive"),l)throw l;if(this.displayAsDatetime=C.type==="datetime_directive",this.displayAsHourMinute=C.type==="hourminute_directive",this.displayAsDatetime||this.displayAsHourMinute){this.decimalLength=-1;return}if(c=(0,fr.checkChildLength)(C,1),c)throw c;let _=C.children[0];if(l=(0,fr.checkType)(_,"int"),l)throw l;this.decimalLength=parseInt(_.text)}};Dr.DisplayDirective=N3});var Wl=we(Fr=>{"use strict";var B9=Fr&&Fr.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Fr,"__esModule",{value:!0});Fr.SingleParamFunctionCall=void 0;var z9=Xt(),L3=$t(),$9=Ai(),O3=Fn(),Z9=B9(f3()),S3=class{constructor(r,l){this.getValue=(m,A)=>this.param.getValue(m,A).andThen(P=>(0,z9.ok)(this.op(P)));let c=(0,L3.checkType)(r,"single_param_function_call");if(c)throw c;let d=(0,L3.checkChildLength)(r,2);if(d)throw d;let C=(0,L3.checkType)(r.children[0],"single_param_function");if(C)throw C;let _=r.children[0].text;switch(_){case"sum":this.op=G9;break;case"mean":this.op=V9;break;default:throw Error("Unknown single param function call: "+_)}this.param=new $9.Source(r.children[1],l)}};Fr.SingleParamFunctionCall=S3;var G9=s=>{let r=s.val.reduce((l,c)=>c.reduce((d,C)=>(0,O3.FloatOrMilliseconds)(C).add(d),l),new Z9.default(0));return new O3.Value([[r.toString()]])},V9=s=>{let{total:r,count:l}=s.val.reduce(({total:c,count:d},C)=>C.reduce(({total:_,count:m},A)=>({total:_+ +A,count:m+1}),{total:c,count:d}),{total:0,count:0});return new O3.Value([[(r/l).toString()]])}});var oo=we(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.TokenError=void 0;var P3=class extends Error{constructor(r,l){if(super(r),this.message=r,this.token=l,l&&l.errors)l.errors.push(this);else throw this}inspect(){return"SyntaxError: "+this.message}};io.TokenError=P3});var Li=we(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.Parser=It.findRuleByName=It.parseRuleName=It.escapeRegExp=It.readToken=void 0;var Ml=/^[A-Z0-9_]+$/,Dl=/(\?|\+|\*)$/,Fl=/^(@|&|!)/,so="WS",lo=oo();function I3(s,r){let l=r.exec(s);return l&&l.index==0?l[0].length==0&&r.source.length>0?null:{type:null,text:l[0],rest:s.substr(l[0].length),start:0,end:l[0].length-1,fullText:l[0],errors:[],children:[],parent:null}:null}It.readToken=I3;function kl(s){return s.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}It.escapeRegExp=kl;function Ul(s){s.rest="",s.children&&s.children.forEach(r=>Ul(r))}function ql(s,r){s.start+=r,s.end+=r,s.children&&s.children.forEach(l=>ql(l,s.start))}function Hl(s,r){r.errors&&r.errors.length&&r.errors.forEach(l=>s.push(l)),r.children&&r.children.forEach(l=>Hl(s,l))}function hr(s){let r=Dl.exec(s),l=Fl.exec(s),c=r&&r[0]||"",d=l&&l[0]||"",C={raw:s,name:s.replace(Dl,"").replace(Fl,""),isOptional:c=="?"||c=="*",allowRepetition:c=="+"||c=="*",atLeastOne:c=="+",lookupPositive:d=="&",lookupNegative:d=="!",pinned:d=="@",lookup:!1,isLiteral:!1};return C.isLiteral=C.name[0]=="'"||C.name[0]=='"',C.lookup=C.lookupNegative||C.lookupPositive,C}It.parseRuleName=hr;function Bl(s,r){let l=hr(s);return r.cachedRules[l.name]||null}It.findRuleByName=Bl;function W3(s,r){if(s.children){let l=s.children.filter(c=>c.type&&r.test(c.type));for(let c=0;cW3(c,r))}}var K9=["EOF"],uo=class{constructor(r,l){this.grammarRules=r,this.options=l,this.cachedRules={},this.debug=l?l.debug===!0:!1;let c=[],d=[];if(r.forEach(C=>{let _=hr(C.name);if(_.name in this.cachedRules){c.push("Duplicated rule "+_.name);return}else this.cachedRules[_.name]=C;if(!C.bnf||!C.bnf.length){let m="Missing rule content, rule: "+C.name;c.indexOf(m)==-1&&c.push(m)}else C.bnf.forEach(m=>{if(typeof m[0]=="string"&&hr(m[0]).name==C.name){let P="Left recursion is not allowed, rule: "+C.name;c.indexOf(P)==-1&&c.push(P)}m.forEach(A=>{if(typeof A=="string"){let P=hr(A);!P.isLiteral&&d.indexOf(P.name)==-1&&K9.indexOf(P.name)==-1&&d.push(P.name)}})});so==C.name&&(C.implicitWs=!1),C.implicitWs&&d.indexOf(so)==-1&&d.push(so),C.recover&&d.indexOf(C.recover)==-1&&d.push(C.recover)}),d.forEach(C=>{C in this.cachedRules||c.push("Missing rule "+C)}),c.length)throw new Error(c.join(` +`))}getAST(r,l){l||(l=this.grammarRules.filter(d=>!d.fragment&&d.name.indexOf("%")!=0)[0].name);let c=this.parse(r,l);if(c){Hl(c.errors,c),ql(c,0),W3(c,/^%/),(!this.options||!this.options.keepUpperRules)&&W3(c,Ml);let d=c.rest;d&&new lo.TokenError(`Unexpected end of input: +`+d,c),Ul(c),c.rest=d}return c}emitSource(){return"CANNOT EMIT SOURCE FROM BASE Parser"}parse(r,l,c=0){let d=null,C=hr(l),_,m=this.debug&&!Ml.test(C.name);m&&console.log(new Array(c).join("\u2502 ")+"Trying to get "+l+" from "+JSON.stringify(r.split(` +`)[0]));let A=C.name,P=Bl(C.name,this);if(C.name=="EOF"){if(r.length)return null;if(r.length==0)return{type:"EOF",text:"",rest:"",start:0,end:0,fullText:"",errors:[],children:[],parent:null}}try{if(!P&&C.isLiteral){let y=C.name.trim();if(y.startsWith('"')?y=JSON.parse(y):y.startsWith("'")&&(y=y.replace(/^'(.+)'$/,"$1").replace(/\\'/g,"'")),y==="")return{type:"%%EMPTY%%",text:"",rest:r,start:0,end:0,fullText:"",errors:[],children:[],parent:null};_=new RegExp(kl(y)),A=null}}catch(y){return y instanceof ReferenceError&&console.error(y),null}if(_){let y=I3(r,_);if(y)return y.type=A,y}else{let y=P.bnf;y instanceof Array&&y.forEach(S=>{if(d)return;let V=null,M={type:C.name,text:"",children:[],end:0,errors:[],fullText:"",parent:null,start:0,rest:r};P.fragment&&(M.fragment=!0);let Y=r,se=0,ge=S.length>0,D=!1;for(let $=0;${J.start+=se,J.end+=se,J.parent=M,M.children.push(J)}):(K.parent=M,M.children.push(K))),U.lookup&&(K.lookup=!0),m&&console.log(new Array(c+1).join("\u2502 ")+"\u2514\u2500 "+K.type+" "+JSON.stringify(K.text)),!U.lookup&&!K.lookup&&(M.text=M.text+K.text,M.end=M.text.length,Y=Y.substr(K.text.length),se+=K.text.length),M.rest=Y}while(K&&U.allowRepetition&&Y.length&&!K.lookup)}else{let U=I3(Y,S[$]);if(!U)return;m&&console.log(new Array(c+1).join("\u2502 ")+"\u2514> "+JSON.stringify(U.text)+S[$].source),D=!0,U.start+=se,U.end+=se,M.text=M.text+U.text,M.end=M.text.length,Y=Y.substr(U.text.length),se+=U.text.length,M.rest=Y}D&&(d=M,m&&console.log(new Array(c).join("\u2502 ")+"\u251C<\u2500\u2534< PUSHING "+d.type+" "+JSON.stringify(d.text)))}),d&&P.simplifyWhenOneChildren&&d.children.length==1&&(d=d.children[0])}return d||m&&console.log(l+" NOT RESOLVED FROM "+r),d}parseRecovery(r,l,c){if(r.recover&&l.length){let d=this.debug;d&&console.log(new Array(c+1).join("\u2502 ")+"Trying to recover until token "+r.recover+" from "+JSON.stringify(l.split(` +`)[0]+l.split(` +`)[1]));let C={type:"SyntaxError",text:"",children:[],end:0,errors:[],fullText:"",parent:null,start:0,rest:""},_;do if(_=this.parse(l,r.recover,c+1),_){new lo.TokenError('Unexpected input: "'+C.text+`" Expecting: ${r.name}`,C);break}else C.text=C.text+l[0],C.end=C.text.length,l=l.substr(1);while(!_&&l.length>0);if(C.text.length>0&&_)return d&&console.log(new Array(c+1).join("\u2502 ")+"Recovered text: "+JSON.stringify(C.text)),C}return null}};It.Parser=uo;It.default=uo});var zl=we(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.findChildrenByType=void 0;function Y9(s,r){return s.children?s.children.filter(l=>l.type==r):[]}ao.findChildrenByType=Y9});var $l=we(F3=>{"use strict";Object.defineProperty(F3,"__esModule",{value:!0});var Bn=zl(),M3=Li(),D3;(function(s){s.RULES=[{name:"syntax",bnf:[["RULE_EOL*","rule+"]]},{name:"rule",bnf:[['" "*','"<"',"rule-name",'">"','" "*','"::="',"firstExpression","otherExpression*",'" "*',"RULE_EOL+",'" "*']]},{name:"firstExpression",bnf:[['" "*',"list"]]},{name:"otherExpression",bnf:[['" "*','"|"','" "*',"list"]]},{name:"RULE_EOL",bnf:[['"\\r"'],['"\\n"']]},{name:"list",bnf:[["term",'" "*',"list"],["term"]]},{name:"term",bnf:[["literal"],['"<"',"rule-name",'">"']]},{name:"literal",bnf:[[`'"'`,"RULE_CHARACTER1*",`'"'`],[`"'"`,"RULE_CHARACTER2*",`"'"`]]},{name:"RULE_CHARACTER",bnf:[['" "'],["RULE_LETTER"],["RULE_DIGIT"],["RULE_SYMBOL"]]},{name:"RULE_LETTER",bnf:[['"A"'],['"B"'],['"C"'],['"D"'],['"E"'],['"F"'],['"G"'],['"H"'],['"I"'],['"J"'],['"K"'],['"L"'],['"M"'],['"N"'],['"O"'],['"P"'],['"Q"'],['"R"'],['"S"'],['"T"'],['"U"'],['"V"'],['"W"'],['"X"'],['"Y"'],['"Z"'],['"a"'],['"b"'],['"c"'],['"d"'],['"e"'],['"f"'],['"g"'],['"h"'],['"i"'],['"j"'],['"k"'],['"l"'],['"m"'],['"n"'],['"o"'],['"p"'],['"q"'],['"r"'],['"s"'],['"t"'],['"u"'],['"v"'],['"w"'],['"x"'],['"y"'],['"z"']]},{name:"RULE_DIGIT",bnf:[['"0"'],['"1"'],['"2"'],['"3"'],['"4"'],['"5"'],['"6"'],['"7"'],['"8"'],['"9"']]},{name:"RULE_SYMBOL",bnf:[['"-"'],['"_"'],['"!"'],['"#"'],['"$"'],['"%"'],['"&"'],['"("'],['")"'],['"*"'],['"+"'],['","'],['"-"'],['"."'],['"/"'],['":"'],['";"'],['"<"'],['"="'],['">"'],['"?"'],['"@"'],['"["'],['"\\"'],['"]"'],['"^"'],['"_"'],['"`"'],['"{"'],['"|"'],['"}"'],['"~"']]},{name:"RULE_CHARACTER1",bnf:[["RULE_CHARACTER"],[`"'"`]]},{name:"RULE_CHARACTER2",bnf:[["RULE_CHARACTER"],[`'"'`]]},{name:"rule-name",bnf:[["RULE_LETTER","RULE_CHAR*"]]},{name:"RULE_CHAR",bnf:[["RULE_LETTER"],["RULE_DIGIT"],['"_"'],['"-"']]}],s.defaultParser=new M3.Parser(s.RULES,{debug:!1});function r(C){let _=Bn.findChildrenByType(C,"term").map(m=>Bn.findChildrenByType(m,"literal").concat(Bn.findChildrenByType(m,"rule-name"))[0].text);return Bn.findChildrenByType(C,"list").forEach(m=>{_=_.concat(r(m))}),_}function l(C,_=s.defaultParser){let m=_.getAST(C);if(!m)throw new Error("Could not parse "+C);if(m.errors&&m.errors.length)throw m.errors[0];let P=Bn.findChildrenByType(m,"rule").map(y=>{let S=Bn.findChildrenByType(y,"rule-name")[0].text,V=Bn.findChildrenByType(y,"firstExpression").concat(Bn.findChildrenByType(y,"otherExpression")),M=[];return V.forEach(Y=>{M.push(r(Y))}),{name:S,bnf:M}});return P.some(y=>y.name=="EOL")||P.push({name:"EOL",bnf:[['"\\r\\n"','"\\r"','"\\n"']]}),P}s.getRules=l;function c(C,_=s.defaultParser){return l(C.join(""),_)}s.Transform=c;class d extends M3.Parser{constructor(_,m){let A=m&&m.debugRulesParser===!0?new M3.Parser(s.RULES,{debug:!0}):s.defaultParser;super(l(_,A),m),this.source=_}emitSource(){return this.source}}s.Parser=d})(D3||(D3={}));F3.default=D3});var Zl=we(U3=>{"use strict";Object.defineProperty(U3,"__esModule",{value:!0});var Oi=Li(),k3;(function(s){s.RULES=[{name:"Grammar",bnf:[["RULE_S*","%Atomic*","EOF"]]},{name:"%Atomic",bnf:[["Production","RULE_S*"]],fragment:!0},{name:"Production",bnf:[["NCName","RULE_S*",'"::="',"RULE_WHITESPACE*","Choice","RULE_WHITESPACE*","RULE_EOL+","RULE_S*"]]},{name:"NCName",bnf:[[/[a-zA-Z][a-zA-Z_0-9]*/]]},{name:"Choice",bnf:[["SequenceOrDifference","%_Choice_1*"]],fragment:!0},{name:"%_Choice_1",bnf:[["RULE_WHITESPACE*",'"|"',"RULE_WHITESPACE*","SequenceOrDifference"]],fragment:!0},{name:"SequenceOrDifference",bnf:[["Item","RULE_WHITESPACE*","%_Item_1?"]]},{name:"%_Item_1",bnf:[["Minus","Item"],["Item*"]],fragment:!0},{name:"Minus",bnf:[['"-"']]},{name:"Item",bnf:[["RULE_WHITESPACE*","%Primary","PrimaryDecoration?"]],fragment:!0},{name:"PrimaryDecoration",bnf:[['"?"'],['"*"'],['"+"']]},{name:"DecorationName",bnf:[['"ebnf://"',/[^\x5D#]+/]]},{name:"%Primary",bnf:[["NCName"],["StringLiteral"],["CharCode"],["CharClass"],["SubItem"]],fragment:!0},{name:"SubItem",bnf:[['"("',"RULE_WHITESPACE*","Choice","RULE_WHITESPACE*",'")"']]},{name:"StringLiteral",bnf:[[`'"'`,/[^"]*/,`'"'`],[`"'"`,/[^']*/,`"'"`]],pinned:1},{name:"CharCode",bnf:[['"#x"',/[0-9a-zA-Z]+/]]},{name:"CharClass",bnf:[["'['","'^'?","%RULE_CharClass_1+",'"]"']]},{name:"%RULE_CharClass_1",bnf:[["CharCodeRange"],["CharRange"],["CharCode"],["RULE_Char"]],fragment:!0},{name:"RULE_Char",bnf:[[/\x09/],[/\x0A/],[/\x0D/],[/[\x20-\x5c]/],[/[\x5e-\uD7FF]/],[/[\uE000-\uFFFD]/]]},{name:"CharRange",bnf:[["RULE_Char",'"-"',"RULE_Char"]]},{name:"CharCodeRange",bnf:[["CharCode",'"-"',"CharCode"]]},{name:"RULE_WHITESPACE",bnf:[["%RULE_WHITESPACE_CHAR*"],["Comment","RULE_WHITESPACE*"]]},{name:"RULE_S",bnf:[["RULE_WHITESPACE","RULE_S*"],["RULE_EOL","RULE_S*"]]},{name:"%RULE_WHITESPACE_CHAR",bnf:[[/\x09/],[/\x20/]],fragment:!0},{name:"Comment",bnf:[['"/*"',"%RULE_Comment_Body*",'"*/"']]},{name:"%RULE_Comment_Body",bnf:[['!"*/"',/[^*]/]],fragment:!0},{name:"RULE_EOL",bnf:[[/\x0D/,/\x0A/],[/\x0A/],[/\x0D/]]},{name:"Link",bnf:[["'['","Url","']'"]]},{name:"Url",bnf:[[/[^\x5D:/?#]/,'"://"',/[^\x5D#]+/,"%Url1?"]]},{name:"%Url1",bnf:[['"#"',"NCName"]],fragment:!0}],s.defaultParser=new Oi.Parser(s.RULES,{debug:!1});let r=/^(!|&)/,l=/(\?|\+|\*)$/,c=/^%/;function d(D,$){if(typeof D=="string"){if(r.test(D))return"";if(c.test(D)){let K=l.exec(D),te=K?K[0]+" ":"";return C(D,$)?m(D,$)+te:"("+m(D,$)+")"+te}return D}else return D.source.replace(/\\(?:x|u)([a-zA-Z0-9]+)/g,"#x$1").replace(/\[\\(?:x|u)([a-zA-Z0-9]+)-\\(?:x|u)([a-zA-Z0-9]+)\]/g,"[#x$1-#x$2]")}function C(D,$){let U=Oi.findRuleByName(D,$);return U&&U.bnf.length==1&&U.bnf[0].length==1&&(U.bnf[0][0]instanceof RegExp||U.bnf[0][0][0]=='"'||U.bnf[0][0][0]=="'")}function _(D,$){return D.map(U=>d(U,$)).join(" ")}function m(D,$){let U=Oi.findRuleByName(D,$);return U?U.bnf.map(K=>_(K,$)).join(" | "):"RULE_NOT_FOUND {"+D+"}"}function A(D){let $=[];return D.grammarRules.forEach(U=>{if(!/^%/.test(U.name)){let K=U.recover?" /* { recoverUntil="+U.recover+" } */":"";$.push(U.name+" ::= "+m(U.name,D)+K)}}),$.join(` +`)}s.emit=A;let P=0;function y(D,$){throw console.log("reberia restar "+$+" a "+D),new Error("Difference not supported yet")}function S(D){return new RegExp(D.replace(/#x([a-zA-Z0-9]{4})/g,"\\u$1").replace(/#x([a-zA-Z0-9]{3})/g,"\\u0$1").replace(/#x([a-zA-Z0-9]{2})/g,"\\x$1").replace(/#x([a-zA-Z0-9]{1})/g,"\\x0$1"))}function V(D,$,U){let K=null,te=[];return $.children.forEach((J,Q)=>{J.type=="Minus"&&y(K,J);let G=$.children[Q+1];G=G&&G.type=="PrimaryDecoration"&&G.text||"";let Ce="";switch(J.type){case"SubItem":let Pe="%"+(U+P++);M(D,J,Pe),te.push(Ce+Pe+G);break;case"NCName":case"StringLiteral":te.push(Ce+J.text+G);break;case"CharCode":case"CharClass":if(G||Ce){let ot={name:"%"+(U+P++),bnf:[[S(J.text)]]};D.push(ot),te.push(Ce+ot.name+G)}else te.push(S(J.text));break;case"PrimaryDecoration":break;default:throw new Error(" HOW SHOULD I PARSE THIS? "+J.type+" -> "+JSON.stringify(J.text))}K=J}),te}function M(D,$,U){let K=$.children.filter(Q=>Q.type=="SequenceOrDifference").map(Q=>V(D,Q,U)),te={name:U,bnf:K},J=null;K.forEach(Q=>{J=J||Q.recover,delete Q.recover}),U.indexOf("%")==0&&(te.fragment=!0),J&&(te.recover=J),D.push(te)}function Y(D,$=s.defaultParser){let U=$.getAST(D);if(!U)throw new Error("Could not parse "+D);if(U.errors&&U.errors.length)throw U.errors[0];let K=[];return U.children.filter(te=>te.type=="Production").map(te=>{let J=te.children.filter(Q=>Q.type=="NCName")[0].text;M(K,te,J)}),K}s.getRules=Y;function se(D,$=s.defaultParser){return Y(D.join(""),$)}s.Transform=se;class ge extends Oi.Parser{constructor($,U){let K=U&&U.debugRulesParser===!0?new Oi.Parser(s.RULES,{debug:!0}):s.defaultParser;super(Y($,K),U)}emitSource(){return A(this)}}s.Parser=ge})(k3||(k3={}));U3.default=k3});var Gl=we(H3=>{"use strict";Object.defineProperty(H3,"__esModule",{value:!0});var co=oo(),kr=Li(),q3;(function(s){s.RULES=[{name:"Grammar",bnf:[["RULE_S*","Attributes?","RULE_S*","%Atomic*","EOF"]]},{name:"%Atomic",bnf:[["Production","RULE_S*"]],fragment:!0},{name:"Production",bnf:[["NCName","RULE_S*",'"::="',"RULE_WHITESPACE*","%Choice","RULE_WHITESPACE*","Attributes?","RULE_EOL+","RULE_S*"]]},{name:"NCName",bnf:[[/[a-zA-Z][a-zA-Z_0-9]*/]]},{name:"Attributes",bnf:[['"{"',"Attribute","%Attributes*","RULE_S*",'"}"']]},{name:"%Attributes",bnf:[["RULE_S*",'","',"Attribute"]],fragment:!0},{name:"Attribute",bnf:[["RULE_S*","NCName","RULE_WHITESPACE*",'"="',"RULE_WHITESPACE*","AttributeValue"]]},{name:"AttributeValue",bnf:[["NCName"],[/[1-9][0-9]*/]]},{name:"%Choice",bnf:[["SequenceOrDifference","%_Choice_1*"]],fragment:!0},{name:"%_Choice_1",bnf:[["RULE_S*",'"|"',"RULE_S*","SequenceOrDifference"]],fragment:!0},{name:"SequenceOrDifference",bnf:[["%Item","RULE_WHITESPACE*","%_Item_1?"]]},{name:"%_Item_1",bnf:[["Minus","%Item"],["%Item*"]],fragment:!0},{name:"Minus",bnf:[['"-"']]},{name:"%Item",bnf:[["RULE_WHITESPACE*","PrimaryPreDecoration?","%Primary","PrimaryDecoration?"]],fragment:!0},{name:"PrimaryDecoration",bnf:[['"?"'],['"*"'],['"+"']]},{name:"PrimaryPreDecoration",bnf:[['"&"'],['"!"'],['"~"']]},{name:"%Primary",bnf:[["NCName"],["StringLiteral"],["CharCode"],["CharClass"],["SubItem"]],fragment:!0},{name:"SubItem",bnf:[['"("',"RULE_S*","%Choice","RULE_S*",'")"']]},{name:"StringLiteral",bnf:[[`'"'`,/[^"]*/,`'"'`],[`"'"`,/[^']*/,`"'"`]]},{name:"CharCode",bnf:[['"#x"',/[0-9a-zA-Z]+/]]},{name:"CharClass",bnf:[["'['","'^'?","%RULE_CharClass_1+",'"]"']]},{name:"%RULE_CharClass_1",bnf:[["CharCodeRange"],["CharRange"],["CharCode"],["RULE_Char"]],fragment:!0},{name:"RULE_Char",bnf:[[/\x09/],[/\x0A/],[/\x0D/],[/[\x20-\x5c]/],[/[\x5e-\uD7FF]/],[/[\uE000-\uFFFD]/]]},{name:"CharRange",bnf:[["RULE_Char",'"-"',"RULE_Char"]]},{name:"CharCodeRange",bnf:[["CharCode",'"-"',"CharCode"]]},{name:"RULE_WHITESPACE",bnf:[["%RULE_WHITESPACE_CHAR*"],["Comment","RULE_WHITESPACE*"]]},{name:"RULE_S",bnf:[["RULE_WHITESPACE","RULE_S*"],["RULE_EOL","RULE_S*"]]},{name:"%RULE_WHITESPACE_CHAR",bnf:[[/\x09/],[/\x20/]],fragment:!0},{name:"Comment",bnf:[['"/*"',"%RULE_Comment_Body*",'"*/"']]},{name:"%RULE_Comment_Body",bnf:[[/[^*]/],['"*"+',/[^/]*/]],fragment:!0},{name:"RULE_EOL",bnf:[[/\x0D/,/\x0A/],[/\x0A/],[/\x0D/]]},{name:"Link",bnf:[["'['","Url","']'"]]},{name:"Url",bnf:[[/[^\x5D:/?#]/,'"://"',/[^\x5D#]+/,"%Url1?"]]},{name:"%Url1",bnf:[['"#"',"NCName"]],fragment:!0}],s.defaultParser=new kr.Parser(s.RULES,{debug:!1});let r=/^(!|&)/,l=/(\?|\+|\*)$/,c=/^%/;function d(D,$){if(typeof D=="string"){let U=l.exec(D),K=r.exec(D),te=K?K[0]:"",J=U?U[0]+" ":"";return c.test(D)?C(D,$)?te+m(D,$)+J:te+"("+m(D,$)+")"+J:D.replace(r,te)}else return D.source.replace(/\\(?:x|u)([a-zA-Z0-9]+)/g,"#x$1").replace(/\[\\(?:x|u)([a-zA-Z0-9]+)-\\(?:x|u)([a-zA-Z0-9]+)\]/g,"[#x$1-#x$2]")}function C(D,$){let U=kr.findRuleByName(D,$);return U&&U.bnf.length==1&&U.bnf[0].length==1&&(U.bnf[0][0]instanceof RegExp||U.bnf[0][0][0]=='"'||U.bnf[0][0][0]=="'")}function _(D,$){return D.map(U=>d(U,$)).join(" ")}function m(D,$){let U=kr.findRuleByName(D,$);return U?U.bnf.map(K=>_(K,$)).join(" | "):"RULE_NOT_FOUND {"+D+"}"}function A(D){let $=[];return D.grammarRules.forEach(U=>{if(!/^%/.test(U.name)){let K=U.recover?" { recoverUntil="+U.recover+" }":"";$.push(U.name+" ::= "+m(U.name,D)+K)}}),$.join(` +`)}s.emit=A;let P=0;function y(D,$){throw console.log("reberia restar "+$+" a "+D),new Error("Difference not supported yet")}function S(D){return new RegExp(D.replace(/#x([a-zA-Z0-9]{4})/g,"\\u$1").replace(/#x([a-zA-Z0-9]{3})/g,"\\u0$1").replace(/#x([a-zA-Z0-9]{2})/g,"\\x$1").replace(/#x([a-zA-Z0-9]{1})/g,"\\x0$1"))}function V(D,$,U,K){let te=null,J=[];return $.children.forEach((Q,G)=>{Q.type=="Minus"&&y(te,Q);let Ce=$.children[G+1];Ce=Ce&&Ce.type=="PrimaryDecoration"&&Ce.text||"";let Pe="";te&&te.type=="PrimaryPreDecoration"&&(Pe=te.text);let ot=Pe=="~"?1:void 0;switch(ot&&(Pe=""),Q.type){case"SubItem":let B="%"+(U+P++);M(D,Q,B,K),J.push(Pe+B+Ce);break;case"NCName":J.push(Pe+Q.text+Ce);break;case"StringLiteral":if(Ce||Pe||!/^['"/()a-zA-Z0-9&_.:=,+*\-\^\\]+$/.test(Q.text))J.push(Pe+Q.text+Ce);else for(let Oe of Q.text.slice(1,-1))K&&K.ignoreCase=="true"&&/[a-zA-Z]/.test(Oe)?J.push(new RegExp("["+Oe.toUpperCase()+Oe.toLowerCase()+"]")):J.push(new RegExp(kr.escapeRegExp(Oe)));break;case"CharCode":case"CharClass":if(Ce||Pe){let Oe={name:"%"+(U+P++),bnf:[[S(Q.text)]],pinned:ot};D.push(Oe),J.push(Pe+Oe.name+Ce)}else J.push(S(Q.text));break;case"PrimaryPreDecoration":case"PrimaryDecoration":break;default:throw new Error(" HOW SHOULD I PARSE THIS? "+Q.type+" -> "+JSON.stringify(Q.text))}te=Q}),J}function M(D,$,U,K=void 0){let te=$.children.filter(Ce=>Ce.type=="Attributes")[0],J={};te&&te.children.forEach(Ce=>{let Pe=Ce.children.filter(ot=>ot.type=="NCName")[0].text;if(Pe in J)throw new co.TokenError("Duplicated attribute "+Pe,Ce);J[Pe]=Ce.children.filter(ot=>ot.type=="AttributeValue")[0].text});let Q=$.children.filter(Ce=>Ce.type=="SequenceOrDifference").map(Ce=>V(D,Ce,U,K||J)),G={name:U,bnf:Q};if(U.indexOf("%")==0&&(G.fragment=!0),J.recoverUntil&&(G.recover=J.recoverUntil,G.bnf.length>1))throw new co.TokenError("only one-option productions are suitable for error recovering",$);if("pin"in J){let Ce=parseInt(J.pin);if(isNaN(Ce)||(G.pinned=Ce),G.bnf.length>1)throw new co.TokenError("only one-option productions are suitable for pinning",$)}"ws"in J?G.implicitWs=J.ws!="explicit":G.implicitWs=null,G.fragment=G.fragment||J.fragment=="true",G.simplifyWhenOneChildren=J.simplifyWhenOneChildren=="true",D.push(G)}function Y(D,$=s.defaultParser){let U=$.getAST(D);if(!U)throw new Error("Could not parse "+D);if(U.errors&&U.errors.length)throw U.errors[0];let K=null,te=U.children.filter(G=>G.type=="Attributes")[0],J={};te&&te.children.forEach(G=>{let Ce=G.children.filter(Pe=>Pe.type=="NCName")[0].text;if(Ce in J)throw new co.TokenError("Duplicated attribute "+Ce,G);J[Ce]=G.children.filter(Pe=>Pe.type=="AttributeValue")[0].text}),K=J.ws=="implicit";let Q=[];return U.children.filter(G=>G.type=="Production").map(G=>{let Ce=G.children.filter(Pe=>Pe.type=="NCName")[0].text;M(Q,G,Ce)}),Q.forEach(G=>{G.implicitWs===null&&(G.implicitWs=K)}),Q}s.getRules=Y;function se(D,$=s.defaultParser){return Y(D.join(""),$)}s.Transform=se;class ge extends kr.Parser{constructor($,U){let K=U&&U.debugRulesParser===!0?new kr.Parser(s.RULES,{debug:!0}):s.defaultParser;super(Y($,K),U)}emitSource(){return A(this)}}s.Parser=ge})(q3||(q3={}));H3.default=q3});var Vl=we(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});var J9=$l();Object.defineProperty(Si,"BNF",{enumerable:!0,get:function(){return J9.default}});var X9=Zl();Object.defineProperty(Si,"W3C",{enumerable:!0,get:function(){return X9.default}});var Q9=Gl();Object.defineProperty(Si,"Custom",{enumerable:!0,get:function(){return Q9.default}})});var Kl=we(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});var j9=Li();Object.defineProperty(Pi,"Parser",{enumerable:!0,get:function(){return j9.Parser}});var e7=oo();Object.defineProperty(Pi,"TokenError",{enumerable:!0,get:function(){return e7.TokenError}});Pi.Grammars=Vl()});var Ai=we(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});en.parseFormula=en.parseAndApply=en.Source=en.Formula=void 0;var Xe=Xt(),t7=Rl(),B3=$t(),n7=xl(),Yl=yl(),r7=Pl(),Jl=Il(),i7=x3(),o7=T3(),s7=Wl(),l7=Kl(),u7=Wr(),a7=` +tblfm_line ::= "" +formula_list ::= formula ( "::" formula_list )? +formula ::= destination "=" source display_directive? + +source ::= range | source_reference | single_param_function_call | conditional_function_call | algebraic_operation | float | real +range ::= source_reference ".." source_reference +source_reference ::= absolute_reference | relative_reference +destination ::= range | absolute_reference + +relative_reference ::= (relative_row | absolute_row) (relative_column | absolute_column) | relative_row | relative_column +relative_row ::= "@" ( "-" | "+" ) int +relative_column ::= "$" ( "-" | "+" ) int + +absolute_reference ::= absolute_row absolute_column | absolute_row | absolute_column +absolute_row ::= "@" ( "I" | "<" | ">" | int ) +absolute_column ::= "$" ( "<" | ">" | int ) + +single_param_function_call ::= single_param_function "(" source ")" +single_param_function ::= "mean" | "sum" + +conditional_function_call ::= "if(" predicate "," " "? source "," " "? source ")" +predicate ::= source_without_range conditional_operator source_without_range +source_without_range ::= source_reference | single_param_function_call | conditional_function_call | algebraic_operation | float | real +conditional_operator ::= ">" | "<" | ">=" | "<=" | "==" | "!=" + +algebraic_operation ::= "(" source " "? algebraic_operator " "? source ")" +algebraic_operator ::= "+" | "-" | "*" | "/" + +display_directive ::= ";" display_directive_option +display_directive_option ::= formatting_directive | datetime_directive | hourminute_directive +formatting_directive ::= "%." int "f" +datetime_directive ::= "dt" +hourminute_directive ::= "hm" + +float ::= "-"? int "." int +real ::= "-"? int +int ::= [0-9]+ +`,fo=class{constructor(r,l){this.merge=C=>this.destination.merge(this.source,C);let c=new Jl.DefaultFormatter;r.children.length===3&&(c=new Jl.DisplayDirective(r.children[2]));let d=(0,r7.newDestination)(r.children[0],l,c);if(d.isErr())throw d.error;this.destination=d.value,this.source=new ho(r.children[1],l)}};en.Formula=fo;var ho=class{constructor(r,l){if(this.getValue=(C,_)=>this.locationDescriptor.getValue(C,_),r.type!=="source"&&r.type!=="source_without_range")throw Error("Invalid AST token type of "+r.type);if(r.children.length!==1)throw Error("Unexpected children length in Source");let c=r.children[0],d=c7(c,l);if(d.isErr())throw d.error;this.locationDescriptor=d.value}};en.Source=ho;var c7=(s,r)=>{try{switch(s.type){case"range":return(0,Xe.ok)(new i7.Range(s,r));case"source_reference":let l=(0,B3.checkChildLength)(s,1);return l?(0,Xe.err)(l):(0,Xe.ok)(new o7.Reference(s.children[0],r));case"single_param_function_call":return(0,Xe.ok)(new s7.SingleParamFunctionCall(s,r));case"conditional_function_call":return(0,Xe.ok)(new n7.ConditionalFunctionCall(s,r));case"algebraic_operation":return(0,Xe.ok)(new t7.AlgebraicOperation(s,r));case"real":return(0,Xe.ok)(new Yl.Constant(s,r));case"float":return(0,Xe.ok)(new Yl.Constant(s,r));default:throw Error("Unrecognized valueProvider type "+s.type)}}catch(l){return(0,Xe.err)(l)}},f7=(s,r)=>s.reduce((c,d)=>c.andThen(C=>{let _=(0,en.parseFormula)(d,r);return _.isErr()?_:(0,Xe.ok)((0,u7.concat)(_.value,C))}),(0,Xe.ok)([])).andThen(c=>c.reduceRight((d,C)=>d.andThen(_=>C.merge(_)),(0,Xe.ok)(r)));en.parseAndApply=f7;var h7=(s,r)=>{let c=new l7.Grammars.W3C.Parser(a7).getAST(s);if(!c)return(0,Xe.err)(new Error(`Formula '${s}' could not be parsed`));let d=(0,B3.checkType)(c,"tblfm_line");if(d)return(0,Xe.err)(d);let C=(0,B3.checkChildLength)(c,1);if(C)return(0,Xe.err)(C);let _=c.children[0].children,m=[];try{do m.push(new fo(_[0],r)),_.length>1&&_[1].type==="formula_list"?_=_[1].children:_=[];while(_.length>0);return(0,Xe.ok)(m)}catch(A){return(0,Xe.err)(A)}};en.parseFormula=h7});var Ii=we(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.Table=void 0;var d7=Ai(),Xl=W1(),go=O1(),g7=P1(),z3=class s{constructor(r){this._rows=r.slice()}getHeight(){return this._rows.length}getWidth(){return this._rows.map(r=>r.getWidth()).reduce((r,l)=>Math.max(r,l),0)}getHeaderWidth(){return this._rows[0].getWidth()}getRows(){return this._rows.slice()}getDelimiterRow(){let r=this._rows[1];if(r!==void 0&&r.isDelimiter())return r}getCellAt(r,l){let c=this._rows[r];if(c!==void 0)return c.getCellAt(l)}getFocusedCell(r){return this.getCellAt(r.row,r.column)}toLines(){return this._rows.map(r=>r.toText())}setCellAt(r,l,c){let d=this.getRows();return d[r]=d[r].setCellAt(l,c),new s(d)}focusOfPosition(r,l){let c=r.row-l,d=this._rows[c];if(d===void 0)return;if(r.columnP.rawContent.length),_=d.marginLeft.length+1,m=0;for(;mr.column);m++)_+=C[m]+1;let A=r.column-_;return new Xl.Focus(c,m,A)}positionOfFocus(r,l){let c=this._rows[r.row];if(c===void 0)return;let d=r.row+l;if(r.column<0)return new go.Point(d,r.offset);let C=c.getCells().map(A=>A.rawContent.length),_=Math.min(r.column,C.length),m=c.marginLeft.length+1;for(let A=0;A<_;A++)m+=C[A]+1;return new go.Point(d,m+r.offset)}selectionRangeOfFocus(r,l){let c=this._rows[r.row];if(c===void 0)return;let d=c.getCellAt(r.column);if(d===void 0||d.content==="")return;let C=r.row+l,_=c.getCells().map(A=>A.rawContent.length),m=c.marginLeft.length+1;for(let A=0;A{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.readTable=rt._marginRegex=rt.marginRegexSrc=rt._readRow=rt._splitCells=void 0;var p7=Ii(),m7=Pr(),w7=_i(),C7=s=>{let r=[],l="",c=s;for(;c!=="";)switch(c[0]){case"`":{let d=c.match(/^`*/);if(d===null)break;let C=d[0],_=C,m=c.substr(C.length),A=!1;for(;m!=="";)if(m[0]==="`"){let P=m.match(/^`*/);if(P===null)break;let y=P[0];if(_+=y,m=m.substr(y.length),y.length===C.length){A=!0;break}}else _+=m[0],m=m.substr(1);A?(l+=_,c=m):(l+="`",c=c.substr(1))}break;case"\\":c.length>=2?(l+=c.substr(0,2),c=c.substr(2)):(l+="\\",c=c.substr(1));break;case"[":if(l+="[",c=c.substr(1),/\[[^\\|\]]+\|[^|\]]+]]/.test(c)){let d=c.indexOf("|");l+=c.slice(0,d),l+="\\|",c=c.substr(d+1)}break;case"|":r.push(l),l="",c=c.substr(1);break;default:l+=c[0],c=c.substr(1)}return r.push(l),r};rt._splitCells=C7;var v7=(s,r=/^\s*$/)=>{let l=(0,rt._splitCells)(s),c;l.length>0&&r.test(l[0])?(c=l[0],l=l.slice(1)):c="";let d;return l.length>1&&/^\s*$/.test(l[l.length-1])?(d=l[l.length-1],l=l.slice(0,l.length-1)):d="",new w7.TableRow(l.map(C=>new m7.TableCell(C)),c,d)};rt._readRow=v7;var _7=s=>{let r="";return s.forEach(l=>{l!=="|"&&l!=="\\"&&l!=="`"&&(r+=`\\u{${l.codePointAt(0).toString(16)}}`)}),`[\\s${r}]*`};rt.marginRegexSrc=_7;var b7=s=>new RegExp(`^${(0,rt.marginRegexSrc)(s)}$`,"u");rt._marginRegex=b7;var E7=(s,r)=>{let l=(0,rt._marginRegex)(r.leftMarginChars);return new p7.Table(s.map(c=>(0,rt._readRow)(c,l)))};rt.readTable=E7});var jl=we(Wi=>{"use strict";Object.defineProperty(Wi,"__esModule",{value:!0});var Z3=[[0,31,"N"],[32,126,"Na"],[127,160,"N"],[161,161,"A"],[162,163,"Na"],[164,164,"A"],[165,166,"Na"],[167,168,"A"],[169,169,"N"],[170,170,"A"],[171,171,"N"],[172,172,"Na"],[173,174,"A"],[175,175,"Na"],[176,180,"A"],[181,181,"N"],[182,186,"A"],[187,187,"N"],[188,191,"A"],[192,197,"N"],[198,198,"A"],[199,207,"N"],[208,208,"A"],[209,214,"N"],[215,216,"A"],[217,221,"N"],[222,225,"A"],[226,229,"N"],[230,230,"A"],[231,231,"N"],[232,234,"A"],[235,235,"N"],[236,237,"A"],[238,239,"N"],[240,240,"A"],[241,241,"N"],[242,243,"A"],[244,246,"N"],[247,250,"A"],[251,251,"N"],[252,252,"A"],[253,253,"N"],[254,254,"A"],[255,256,"N"],[257,257,"A"],[258,272,"N"],[273,273,"A"],[274,274,"N"],[275,275,"A"],[276,282,"N"],[283,283,"A"],[284,293,"N"],[294,295,"A"],[296,298,"N"],[299,299,"A"],[300,304,"N"],[305,307,"A"],[308,311,"N"],[312,312,"A"],[313,318,"N"],[319,322,"A"],[323,323,"N"],[324,324,"A"],[325,327,"N"],[328,331,"A"],[332,332,"N"],[333,333,"A"],[334,337,"N"],[338,339,"A"],[340,357,"N"],[358,359,"A"],[360,362,"N"],[363,363,"A"],[364,461,"N"],[462,462,"A"],[463,463,"N"],[464,464,"A"],[465,465,"N"],[466,466,"A"],[467,467,"N"],[468,468,"A"],[469,469,"N"],[470,470,"A"],[471,471,"N"],[472,472,"A"],[473,473,"N"],[474,474,"A"],[475,475,"N"],[476,476,"A"],[477,592,"N"],[593,593,"A"],[594,608,"N"],[609,609,"A"],[610,707,"N"],[708,708,"A"],[709,710,"N"],[711,711,"A"],[712,712,"N"],[713,715,"A"],[716,716,"N"],[717,717,"A"],[718,719,"N"],[720,720,"A"],[721,727,"N"],[728,731,"A"],[732,732,"N"],[733,733,"A"],[734,734,"N"],[735,735,"A"],[736,767,"N"],[768,879,"A"],[880,912,"N"],[913,929,"A"],[930,930,"N"],[931,937,"A"],[938,944,"N"],[945,961,"A"],[962,962,"N"],[963,969,"A"],[970,1024,"N"],[1025,1025,"A"],[1026,1039,"N"],[1040,1103,"A"],[1104,1104,"N"],[1105,1105,"A"],[1106,4351,"N"],[4352,4447,"W"],[4448,8207,"N"],[8208,8208,"A"],[8209,8210,"N"],[8211,8214,"A"],[8215,8215,"N"],[8216,8217,"A"],[8218,8219,"N"],[8220,8221,"A"],[8222,8223,"N"],[8224,8226,"A"],[8227,8227,"N"],[8228,8231,"A"],[8232,8239,"N"],[8240,8240,"A"],[8241,8241,"N"],[8242,8243,"A"],[8244,8244,"N"],[8245,8245,"A"],[8246,8250,"N"],[8251,8251,"A"],[8252,8253,"N"],[8254,8254,"A"],[8255,8307,"N"],[8308,8308,"A"],[8309,8318,"N"],[8319,8319,"A"],[8320,8320,"N"],[8321,8324,"A"],[8325,8360,"N"],[8361,8361,"H"],[8362,8363,"N"],[8364,8364,"A"],[8365,8450,"N"],[8451,8451,"A"],[8452,8452,"N"],[8453,8453,"A"],[8454,8456,"N"],[8457,8457,"A"],[8458,8466,"N"],[8467,8467,"A"],[8468,8469,"N"],[8470,8470,"A"],[8471,8480,"N"],[8481,8482,"A"],[8483,8485,"N"],[8486,8486,"A"],[8487,8490,"N"],[8491,8491,"A"],[8492,8530,"N"],[8531,8532,"A"],[8533,8538,"N"],[8539,8542,"A"],[8543,8543,"N"],[8544,8555,"A"],[8556,8559,"N"],[8560,8569,"A"],[8570,8584,"N"],[8585,8585,"A"],[8586,8591,"N"],[8592,8601,"A"],[8602,8631,"N"],[8632,8633,"A"],[8634,8657,"N"],[8658,8658,"A"],[8659,8659,"N"],[8660,8660,"A"],[8661,8678,"N"],[8679,8679,"A"],[8680,8703,"N"],[8704,8704,"A"],[8705,8705,"N"],[8706,8707,"A"],[8708,8710,"N"],[8711,8712,"A"],[8713,8714,"N"],[8715,8715,"A"],[8716,8718,"N"],[8719,8719,"A"],[8720,8720,"N"],[8721,8721,"A"],[8722,8724,"N"],[8725,8725,"A"],[8726,8729,"N"],[8730,8730,"A"],[8731,8732,"N"],[8733,8736,"A"],[8737,8738,"N"],[8739,8739,"A"],[8740,8740,"N"],[8741,8741,"A"],[8742,8742,"N"],[8743,8748,"A"],[8749,8749,"N"],[8750,8750,"A"],[8751,8755,"N"],[8756,8759,"A"],[8760,8763,"N"],[8764,8765,"A"],[8766,8775,"N"],[8776,8776,"A"],[8777,8779,"N"],[8780,8780,"A"],[8781,8785,"N"],[8786,8786,"A"],[8787,8799,"N"],[8800,8801,"A"],[8802,8803,"N"],[8804,8807,"A"],[8808,8809,"N"],[8810,8811,"A"],[8812,8813,"N"],[8814,8815,"A"],[8816,8833,"N"],[8834,8835,"A"],[8836,8837,"N"],[8838,8839,"A"],[8840,8852,"N"],[8853,8853,"A"],[8854,8856,"N"],[8857,8857,"A"],[8858,8868,"N"],[8869,8869,"A"],[8870,8894,"N"],[8895,8895,"A"],[8896,8977,"N"],[8978,8978,"A"],[8979,8985,"N"],[8986,8987,"W"],[8988,9e3,"N"],[9001,9002,"W"],[9003,9192,"N"],[9193,9196,"W"],[9197,9199,"N"],[9200,9200,"W"],[9201,9202,"N"],[9203,9203,"W"],[9204,9311,"N"],[9312,9449,"A"],[9450,9450,"N"],[9451,9547,"A"],[9548,9551,"N"],[9552,9587,"A"],[9588,9599,"N"],[9600,9615,"A"],[9616,9617,"N"],[9618,9621,"A"],[9622,9631,"N"],[9632,9633,"A"],[9634,9634,"N"],[9635,9641,"A"],[9642,9649,"N"],[9650,9651,"A"],[9652,9653,"N"],[9654,9655,"A"],[9656,9659,"N"],[9660,9661,"A"],[9662,9663,"N"],[9664,9665,"A"],[9666,9669,"N"],[9670,9672,"A"],[9673,9674,"N"],[9675,9675,"A"],[9676,9677,"N"],[9678,9681,"A"],[9682,9697,"N"],[9698,9701,"A"],[9702,9710,"N"],[9711,9711,"A"],[9712,9724,"N"],[9725,9726,"W"],[9727,9732,"N"],[9733,9734,"A"],[9735,9736,"N"],[9737,9737,"A"],[9738,9741,"N"],[9742,9743,"A"],[9744,9747,"N"],[9748,9749,"W"],[9750,9755,"N"],[9756,9756,"A"],[9757,9757,"N"],[9758,9758,"A"],[9759,9791,"N"],[9792,9792,"A"],[9793,9793,"N"],[9794,9794,"A"],[9795,9799,"N"],[9800,9811,"W"],[9812,9823,"N"],[9824,9825,"A"],[9826,9826,"N"],[9827,9829,"A"],[9830,9830,"N"],[9831,9834,"A"],[9835,9835,"N"],[9836,9837,"A"],[9838,9838,"N"],[9839,9839,"A"],[9840,9854,"N"],[9855,9855,"W"],[9856,9874,"N"],[9875,9875,"W"],[9876,9885,"N"],[9886,9887,"A"],[9888,9888,"N"],[9889,9889,"W"],[9890,9897,"N"],[9898,9899,"W"],[9900,9916,"N"],[9917,9918,"W"],[9919,9919,"A"],[9920,9923,"N"],[9924,9925,"W"],[9926,9933,"A"],[9934,9934,"W"],[9935,9939,"A"],[9940,9940,"W"],[9941,9953,"A"],[9954,9954,"N"],[9955,9955,"A"],[9956,9959,"N"],[9960,9961,"A"],[9962,9962,"W"],[9963,9969,"A"],[9970,9971,"W"],[9972,9972,"A"],[9973,9973,"W"],[9974,9977,"A"],[9978,9978,"W"],[9979,9980,"A"],[9981,9981,"W"],[9982,9983,"A"],[9984,9988,"N"],[9989,9989,"W"],[9990,9993,"N"],[9994,9995,"W"],[9996,10023,"N"],[10024,10024,"W"],[10025,10044,"N"],[10045,10045,"A"],[10046,10059,"N"],[10060,10060,"W"],[10061,10061,"N"],[10062,10062,"W"],[10063,10066,"N"],[10067,10069,"W"],[10070,10070,"N"],[10071,10071,"W"],[10072,10101,"N"],[10102,10111,"A"],[10112,10132,"N"],[10133,10135,"W"],[10136,10159,"N"],[10160,10160,"W"],[10161,10174,"N"],[10175,10175,"W"],[10176,10213,"N"],[10214,10221,"Na"],[10222,10628,"N"],[10629,10630,"Na"],[10631,11034,"N"],[11035,11036,"W"],[11037,11087,"N"],[11088,11088,"W"],[11089,11092,"N"],[11093,11093,"W"],[11094,11097,"A"],[11098,11903,"N"],[11904,11929,"W"],[11930,11930,"N"],[11931,12019,"W"],[12020,12031,"N"],[12032,12245,"W"],[12246,12271,"N"],[12272,12283,"W"],[12284,12287,"N"],[12288,12288,"F"],[12289,12350,"W"],[12351,12352,"N"],[12353,12438,"W"],[12439,12440,"N"],[12441,12543,"W"],[12544,12548,"N"],[12549,12591,"W"],[12592,12592,"N"],[12593,12686,"W"],[12687,12687,"N"],[12688,12771,"W"],[12772,12783,"N"],[12784,12830,"W"],[12831,12831,"N"],[12832,12871,"W"],[12872,12879,"A"],[12880,19903,"W"],[19904,19967,"N"],[19968,42124,"W"],[42125,42127,"N"],[42128,42182,"W"],[42183,43359,"N"],[43360,43388,"W"],[43389,44031,"N"],[44032,55203,"W"],[55204,57343,"N"],[57344,63743,"A"],[63744,64255,"W"],[64256,65023,"N"],[65024,65039,"A"],[65040,65049,"W"],[65050,65071,"N"],[65072,65106,"W"],[65107,65107,"N"],[65108,65126,"W"],[65127,65127,"N"],[65128,65131,"W"],[65132,65280,"N"],[65281,65376,"F"],[65377,65470,"H"],[65471,65473,"N"],[65474,65479,"H"],[65480,65481,"N"],[65482,65487,"H"],[65488,65489,"N"],[65490,65495,"H"],[65496,65497,"N"],[65498,65500,"H"],[65501,65503,"N"],[65504,65510,"F"],[65511,65511,"N"],[65512,65518,"H"],[65519,65532,"N"],[65533,65533,"A"],[65534,94175,"N"],[94176,94180,"W"],[94181,94191,"N"],[94192,94193,"W"],[94194,94207,"N"],[94208,100343,"W"],[100344,100351,"N"],[100352,101589,"W"],[101590,101631,"N"],[101632,101640,"W"],[101641,110591,"N"],[110592,110878,"W"],[110879,110927,"N"],[110928,110930,"W"],[110931,110947,"N"],[110948,110951,"W"],[110952,110959,"N"],[110960,111355,"W"],[111356,126979,"N"],[126980,126980,"W"],[126981,127182,"N"],[127183,127183,"W"],[127184,127231,"N"],[127232,127242,"A"],[127243,127247,"N"],[127248,127277,"A"],[127278,127279,"N"],[127280,127337,"A"],[127338,127343,"N"],[127344,127373,"A"],[127374,127374,"W"],[127375,127376,"A"],[127377,127386,"W"],[127387,127404,"A"],[127405,127487,"N"],[127488,127490,"W"],[127491,127503,"N"],[127504,127547,"W"],[127548,127551,"N"],[127552,127560,"W"],[127561,127567,"N"],[127568,127569,"W"],[127570,127583,"N"],[127584,127589,"W"],[127590,127743,"N"],[127744,127776,"W"],[127777,127788,"N"],[127789,127797,"W"],[127798,127798,"N"],[127799,127868,"W"],[127869,127869,"N"],[127870,127891,"W"],[127892,127903,"N"],[127904,127946,"W"],[127947,127950,"N"],[127951,127955,"W"],[127956,127967,"N"],[127968,127984,"W"],[127985,127987,"N"],[127988,127988,"W"],[127989,127991,"N"],[127992,128062,"W"],[128063,128063,"N"],[128064,128064,"W"],[128065,128065,"N"],[128066,128252,"W"],[128253,128254,"N"],[128255,128317,"W"],[128318,128330,"N"],[128331,128334,"W"],[128335,128335,"N"],[128336,128359,"W"],[128360,128377,"N"],[128378,128378,"W"],[128379,128404,"N"],[128405,128406,"W"],[128407,128419,"N"],[128420,128420,"W"],[128421,128506,"N"],[128507,128591,"W"],[128592,128639,"N"],[128640,128709,"W"],[128710,128715,"N"],[128716,128716,"W"],[128717,128719,"N"],[128720,128722,"W"],[128723,128724,"N"],[128725,128727,"W"],[128728,128746,"N"],[128747,128748,"W"],[128749,128755,"N"],[128756,128764,"W"],[128765,128991,"N"],[128992,129003,"W"],[129004,129291,"N"],[129292,129338,"W"],[129339,129339,"N"],[129340,129349,"W"],[129350,129350,"N"],[129351,129400,"W"],[129401,129401,"N"],[129402,129483,"W"],[129484,129484,"N"],[129485,129535,"W"],[129536,129647,"N"],[129648,129652,"W"],[129653,129655,"N"],[129656,129658,"W"],[129659,129663,"N"],[129664,129670,"W"],[129671,129679,"N"],[129680,129704,"W"],[129705,129711,"N"],[129712,129718,"W"],[129719,129727,"N"],[129728,129730,"W"],[129731,129743,"N"],[129744,129750,"W"],[129751,131071,"N"],[131072,196605,"W"],[196606,196607,"N"],[196608,262141,"W"],[262142,917759,"N"],[917760,917999,"A"],[918e3,983039,"N"],[983040,1048573,"A"],[1048574,1048575,"N"],[1048576,1114109,"A"],[1114110,1114111,"N"]],A7="13.0.0";function T7(s){for(var r=0,l=Z3.length-1;r!==l;){var c=r+(l-r>>1),d=Z3[c],C=d[0],_=d[1],m=d[2];if(s_)r=c+1;else return m}return Z3[r][2]}function Ql(s,r){r===void 0&&(r=0);var l=s.codePointAt(r);if(l!==void 0)return T7(l)}var R7={N:1,Na:1,W:2,F:2,H:1,A:1};function x7(s,r){for(var l=0,c=0,d=s;c{"use strict";Object.defineProperty(oe,"__esModule",{value:!0});oe.moveColumn=oe.deleteColumn=oe.insertColumn=oe.moveRow=oe.deleteRow=oe.insertRow=oe.alterAlignment=oe.formatTable=oe.FormatType=oe._weakFormatTable=oe._formatTable=oe._padText=oe._alignText=oe._computeTextWidth=oe.completeTable=oe._extendArray=oe._delimiterText=void 0;var ft=vi(),Gt=Ii(),Ct=Pr(),Qe=_i(),y7=jl(),N7=(s,r)=>{let l="-".repeat(r);switch(s){case ft.Alignment.NONE:return` ${l} `;case ft.Alignment.LEFT:return`:${l} `;case ft.Alignment.RIGHT:return` ${l}:`;case ft.Alignment.CENTER:return`:${l}:`;default:throw new Error("Unknown alignment: "+s)}};oe._delimiterText=N7;var L7=(s,r,l)=>{let c=s.slice();for(let d=s.length;d{let l=s.getHeight(),c=s.getWidth();if(l===0)throw new Error("Empty table");let d=s.getRows(),C=[],_=d[0],m=_.getCells();C.push(new Qe.TableRow((0,oe._extendArray)(m,c,P=>new Ct.TableCell(P===m.length?_.marginRight:"")),_.marginLeft,m.lengthnew Ct.TableCell((0,oe._delimiterText)(ft.Alignment.NONE,y===P.length?Math.max(r.minDelimiterWidth,A.marginRight.length-2):r.minDelimiterWidth))),A.marginLeft,P.lengthnew Ct.TableCell((0,oe._delimiterText)(ft.Alignment.NONE,r.minDelimiterWidth))),"",""));for(let P=A!==void 0?2:1;Pnew Ct.TableCell(V===S.length?y.marginRight:"")),y.marginLeft,S.length{let l=r.normalize?s.normalize("NFC"):s,c=0;for(let d of l){if(r.wideChars.has(d)){c+=2;continue}if(r.narrowChars.has(d)){c+=1;continue}switch((0,y7.getEAW)(d)){case"F":case"W":c+=2;break;case"A":c+=r.ambiguousAsWide?2:1;break;default:c+=1}}return c};oe._computeTextWidth=S7;var P7=(s,r,l,c)=>{let d=r-(0,oe._computeTextWidth)(s,c);if(d<0)return s;switch(l){case ft.Alignment.NONE:throw new Error("Unexpected default alignment");case ft.Alignment.LEFT:return s+" ".repeat(d);case ft.Alignment.RIGHT:return" ".repeat(d)+s;case ft.Alignment.CENTER:return" ".repeat(Math.floor(d/2))+s+" ".repeat(Math.ceil(d/2));default:throw new Error("Unknown alignment: "+l)}};oe._alignText=P7;var I7=s=>` ${s} `;oe._padText=I7;var W7=(s,r)=>{let l=s.getHeight(),c=s.getWidth();if(l===0)return{table:s,marginLeft:""};let d=s.getRows()[0].marginLeft;if(c===0){let y=new Array(l).fill(new Qe.TableRow([],d,""));return{table:new Gt.Table(y),marginLeft:d}}let C=s.getDelimiterRow(),_=new Array(c).fill(0);if(C!==void 0){let y=C.getWidth();for(let S=0;Sy.getAlignment()),c,()=>r.defaultAlignment):new Array(c).fill(r.defaultAlignment),A=[],P=s.getRows()[0];A.push(new Qe.TableRow(P.getCells().map((y,S)=>new Ct.TableCell((0,oe._padText)((0,oe._alignText)(y.content,_[S],r.headerAlignment===ft.HeaderAlignment.FOLLOW?m[S]===ft.Alignment.NONE?r.defaultAlignment:m[S]:r.headerAlignment,r.textWidthOptions)))),d,"")),C!==void 0&&A.push(new Qe.TableRow(C.getCells().map((y,S)=>new Ct.TableCell((0,oe._delimiterText)(m[S],_[S]))),d,""));for(let y=C!==void 0?2:1;ynew Ct.TableCell((0,oe._padText)((0,oe._alignText)(V.content,_[M],m[M]===ft.Alignment.NONE?r.defaultAlignment:m[M],r.textWidthOptions)))),d,""))}return{table:new Gt.Table(A),marginLeft:d}};oe._formatTable=W7;var M7=(s,r)=>{let l=s.getHeight(),c=s.getWidth();if(l===0)return{table:s,marginLeft:""};let d=s.getRows()[0].marginLeft;if(c===0){let A=new Array(l).fill(new Qe.TableRow([],d,""));return{table:new Gt.Table(A),marginLeft:d}}let C=s.getDelimiterRow(),_=[],m=s.getRows()[0];_.push(new Qe.TableRow(m.getCells().map(A=>new Ct.TableCell((0,oe._padText)(A.content))),d,"")),C!==void 0&&_.push(new Qe.TableRow(C.getCells().map(A=>new Ct.TableCell((0,oe._delimiterText)(A.getAlignment(),r.minDelimiterWidth))),d,""));for(let A=C!==void 0?2:1;Anew Ct.TableCell((0,oe._padText)(y.content))),d,""))}return{table:new Gt.Table(_),marginLeft:d}};oe._weakFormatTable=M7;var mo;(function(s){s.NORMAL="normal",s.WEAK="weak"})(mo||(oe.FormatType=mo={}));var D7=(s,r)=>{switch(r.formatType){case mo.NORMAL:return(0,oe._formatTable)(s,r);case mo.WEAK:return(0,oe._weakFormatTable)(s,r);default:throw new Error("Unknown format type: "+r.formatType)}};oe.formatTable=D7;var F7=(s,r,l,c)=>{if(s.getHeight()<1)return s;let d=s.getRows()[1];if(r<0||d.getWidth()-1{let c=s.getRows();return c.splice(Math.max(r,2),0,l),new Gt.Table(c)};oe.insertRow=k7;var U7=(s,r)=>{if(r===1)return s;let l=s.getRows();if(r===0){let c=l[0];l[0]=new Qe.TableRow(new Array(c.getWidth()).fill(new Ct.TableCell("")),c.marginLeft,c.marginRight)}else l.splice(r,1);return new Gt.Table(l)};oe.deleteRow=U7;var q7=(s,r,l)=>{if(r<=1||l<=1||r===l)return s;let c=s.getRows(),d=c[r];return c.splice(r,1),c.splice(l,0,d),new Gt.Table(c)};oe.moveRow=q7;var H7=(s,r,l,c)=>{let d=s.getRows();for(let C=0;C1?C-1:C];m.splice(r,0,A),d[C]=new Qe.TableRow(m,_.marginLeft,_.marginRight)}return new Gt.Table(d)};oe.insertColumn=H7;var B7=(s,r,l)=>{let c=s.getRows();for(let d=0;d{if(r===l)return s;let c=s.getRows();for(let d=0;d{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.shortestEditScript=Wt.applyEditScript=Wt._applyCommand=Wt.Delete=Wt.Insert=void 0;var Ur=class{constructor(r,l){this.row=r,this.line=l}};Wt.Insert=Ur;var qr=class{constructor(r){this.row=r}};Wt.Delete=qr;var $7=(s,r,l)=>{if(r instanceof Ur)s.insertLine(l+r.row,r.line);else if(r instanceof qr)s.deleteLine(l+r.row);else throw new Error("Unknown command")};Wt._applyCommand=$7;var Z7=(s,r,l)=>{for(let c of r)(0,Wt._applyCommand)(s,c,l)};Wt.applyEditScript=Z7;var Co=class{get car(){throw new Error("Not implemented")}get cdr(){throw new Error("Not implemented")}isEmpty(){throw new Error("Not implemented")}unshift(r){return new V3(r,this)}toArray(){let r=[],l=this;for(;!l.isEmpty();)r.push(l.car),l=l.cdr;return r}},G3=class extends Co{constructor(){super()}get car(){throw new Error("Empty list")}get cdr(){throw new Error("Empty list")}isEmpty(){return!0}},V3=class extends Co{constructor(r,l){super(),this._car=r,this._cdr=l}get car(){return this._car}get cdr(){return this._cdr}isEmpty(){return!1}},G7=(s,r,l=-1)=>{let c=s.length,d=r.length,C=l>=0?Math.min(l,c+d):c+d,_=new Array(Math.min(C,c)+Math.min(C,d)+1),m=Math.min(C,c);for(let A=0;A<=C;A++){let P=A<=c?-A:A-2*c,y=A<=d?A:-A+2*d;for(let S=P;S<=y;S+=2){let V,M;if(A===0)V=0,M=new G3;else if(S===-A)V=_[m+S+1].i+1,M=_[m+S+1].script.unshift(new qr(V+S));else if(S===A)V=_[m+S-1].i,M=_[m+S-1].script.unshift(new Ur(V+S-1,r[V+S-1]));else{let Y=_[m+S+1].i+1,se=_[m+S-1].i;Y>se?(V=Y,M=_[m+S+1].script.unshift(new qr(V+S))):(V=se,M=_[m+S-1].script.unshift(new Ur(V+S-1,r[V+S-1])))}for(;V{"use strict";Object.defineProperty(vo,"__esModule",{value:!0});vo.ITextEditor=void 0;var Y3=class{getCursorPosition(){throw new Error("Not implemented: getCursorPosition")}setCursorPosition(r){throw new Error("Not implemented: setCursorPosition")}setSelectionRange(r){throw new Error("Not implemented: setSelectionRange")}getLastRow(){throw new Error("Not implemented: getLastRow")}acceptsTableEdit(r){throw new Error("Not implemented: acceptsTableEdit")}getLine(r){throw new Error("Not implemented: getLine")}insertLine(r,l){throw new Error("Not implemented: insertLine")}deleteLine(r){throw new Error("Not implemented: deleteLine")}replaceLines(r,l,c){throw new Error("Not implemented: replaceLines")}transact(r){throw new Error("Not implemented: transact")}};vo.ITextEditor=Y3});var ru=we(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.defaultOptions=dr.optionsWithDefaults=void 0;var tu=vi(),V7=wo(),nu={normalize:!0,wideChars:new Set,narrowChars:new Set,ambiguousAsWide:!1},K7={leftMarginChars:new Set,formatType:V7.FormatType.NORMAL,minDelimiterWidth:3,defaultAlignment:tu.DefaultAlignment.LEFT,headerAlignment:tu.HeaderAlignment.FOLLOW,smartCursor:!1},Y7=s=>Object.assign(Object.assign(Object.assign({},K7),s),{textWidthOptions:s.textWidthOptions?Object.assign(Object.assign({},nu),s.textWidthOptions):nu});dr.optionsWithDefaults=Y7;dr.defaultOptions=(0,dr.optionsWithDefaults)({})});var su=we(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.TableEditor=We._computeNewOffset=We._createIsTableFormulaRegex=We._createIsTableRowRegex=We.SortOrder=void 0;var iu=K3(),_o=W1(),Le=wo(),Br=$3(),ln=O1(),J3=P1(),ou=Ii(),un=Pr(),Hr=_i(),X3;(function(s){s.Ascending="ascending",s.Descending="descending"})(X3||(We.SortOrder=X3={}));var J7=s=>new RegExp(`^${(0,Br.marginRegexSrc)(s)}\\|`,"u");We._createIsTableRowRegex=J7;var X7=s=>new RegExp(`^${(0,Br.marginRegexSrc)(s)}$`,"u");We._createIsTableFormulaRegex=X7;var Q7=(s,r,l,c)=>{if(c){let _=l.table.getFocusedCell(s);return _!==void 0?_.computeRawOffset(0):s.column<0?l.marginLeft.length:0}let d=r.getFocusedCell(s),C=l.table.getFocusedCell(s);if(d!==void 0&&C!==void 0){let _=Math.min(d.computeContentOffset(s.offset),C.content.length);return C.computeRawOffset(_)}return s.column<0?l.marginLeft.length:0};We._computeNewOffset=Q7;var Q3=class{constructor(r){this._textEditor=r,this._scActive=!1}resetSmartCursor(){this._scActive=!1}cursorIsInTable(r){let l=(0,We._createIsTableRowRegex)(r.leftMarginChars),c=this._textEditor.getCursorPosition();return this._textEditor.acceptsTableEdit(c.row)&&l.test(this._textEditor.getLine(c.row))}cursorIsInTableFormula(r){let l=(0,We._createIsTableFormulaRegex)(r.leftMarginChars),c=this._textEditor.getCursorPosition();return this._textEditor.acceptsTableEdit(c.row)&&l.test(this._textEditor.getLine(c.row))}_findTable(r){let l=(0,We._createIsTableRowRegex)(r.leftMarginChars),c=(0,We._createIsTableFormulaRegex)(r.leftMarginChars),d=this._textEditor.getCursorPosition(),C=this._textEditor.getLastRow(),_=[],m=[],A=d.row,P=d.row;{let M=this._textEditor.getLine(d.row);for(;c.test(M)&&d.row>=0;)d=new ln.Point(d.row-1,d.column),P--,M=this._textEditor.getLine(d.row)}{let M=this._textEditor.getLine(d.row);if(!this._textEditor.acceptsTableEdit(d.row)||!l.test(M))return;_.push(M)}for(let M=d.row-1;M>=0;M--){let Y=this._textEditor.getLine(M);if(!this._textEditor.acceptsTableEdit(M)||!l.test(Y))break;_.unshift(Y),A=M}for(let M=d.row+1;M<=C;M++){let Y=this._textEditor.getLine(M);if(!this._textEditor.acceptsTableEdit(M)||!l.test(Y))break;_.push(Y),P=M}for(let M=P+1;M<=C;M++){let Y=this._textEditor.getLine(M);if(!this._textEditor.acceptsTableEdit(M)||!c.test(Y))break;m.push(Y)}let y=new J3.Range(new ln.Point(A,0),new ln.Point(P,_[_.length-1].length)),S=(0,Br.readTable)(_,r),V=S.focusOfPosition(d,A);if(V!==void 0)return{range:y,lines:_,formulaLines:m,table:S,focus:V}}_withTable(r,l){let c=this._findTable(r);if(c!==void 0)return l(c)}_updateLines(r,l,c,d=void 0){if(d!==void 0){let C=(0,iu.shortestEditScript)(d,c,3);if(C!==void 0){(0,iu.applyEditScript)(this._textEditor,C,r);return}}this._textEditor.replaceLines(r,l,c)}_moveToFocus(r,l,c){let d=l.positionOfFocus(c,r);d!==void 0&&this._textEditor.setCursorPosition(d)}_selectFocus(r,l,c){let d=l.selectionRangeOfFocus(c,r);d!==void 0?this._textEditor.setSelectionRange(d):this._moveToFocus(r,l,c)}format(r){this.withCompletedTable(r,({range:l,lines:c,table:d,focus:C})=>{let _=C;this._textEditor.transact(()=>{this._updateLines(l.start.row,l.end.row+1,d.toLines(),c),this._moveToFocus(l.start.row,d,_)})})}escape(r){this._withTable(r,({range:l,lines:c,table:d,focus:C})=>{let _=(0,Le.completeTable)(d,r),m=(0,Le.formatTable)(_.table,r),A=l.end.row+(_.delimiterInserted?2:1);this._textEditor.transact(()=>{this._updateLines(l.start.row,l.end.row+1,m.table.toLines(),c);let P;if(A>this._textEditor.getLastRow())this._textEditor.insertLine(A,""),P=new ln.Point(A,0);else{let y=new RegExp(`^${(0,Br.marginRegexSrc)(r.leftMarginChars)}`,"u"),S=this._textEditor.getLine(A),V=y.exec(S)[0];P=new ln.Point(A,V.length)}this._textEditor.setCursorPosition(P)}),this.resetSmartCursor()})}alignColumn(r,l){this.withCompletedTable(l,({range:c,lines:d,table:C,focus:_})=>{let m=_,A=C;0<=m.column&&m.column<=A.getHeaderWidth()-1&&(A=(0,Le.alterAlignment)(C,m.column,r,l));let P=(0,Le.formatTable)(A,l);m=m.setOffset((0,We._computeNewOffset)(m,C,P,!1)),this._textEditor.transact(()=>{this._updateLines(c.start.row,c.end.row+1,P.table.toLines(),d),this._moveToFocus(c.start.row,P.table,m)})})}selectCell(r){this.withCompletedTable(r,({range:l,lines:c,table:d,focus:C})=>{let _=C;this._textEditor.transact(()=>{this._updateLines(l.start.row,l.end.row+1,d.toLines(),c),this._selectFocus(l.start.row,d,_)})})}moveFocus(r,l,c){this.withCompletedTable(c,({range:d,lines:C,table:_,focus:m})=>{let A=m,P=A;if(r!==0){let V=_.getHeight(),M=A.row<1&&A.row+r>=1?1:A.row>1&&A.row+r<=1?-1:0;A=A.setRow(Math.min(Math.max(A.row+r+M,0),V<=2?0:V-1))}if(l!==0){let V=_.getHeaderWidth();!(A.column<0&&l<0)&&!(A.column>V-1&&l>0)&&(A=A.setColumn(Math.min(Math.max(A.column+l,0),V-1)))}let y=!A.posEquals(P),S=(0,Le.formatTable)(_,c);A=A.setOffset((0,We._computeNewOffset)(A,_,S,y)),this._textEditor.transact(()=>{this._updateLines(d.start.row,d.end.row+1,S.table.toLines(),C),y?this._selectFocus(d.start.row,S.table,A):this._moveToFocus(d.start.row,S.table,A)}),y&&this.resetSmartCursor()})}nextCell(r){this._withTable(r,({range:l,lines:c,table:d,focus:C})=>{let _=this._scTablePos!==void 0&&!l.start.equals(this._scTablePos)||this._scLastFocus!==void 0&&!C.posEquals(this._scLastFocus);this._scActive&&_&&this.resetSmartCursor();let m=C,A=(0,Le.completeTable)(d,r);A.delimiterInserted&&m.row>0&&(m=m.setRow(m.row+1));let P=m,y=A.table;if(m.row===1){if(m=m.setRow(2),r.smartCursor?(m.column<0||y.getHeaderWidth()-1y.getHeight()-1){let M=new Array(y.getHeaderWidth()).fill(new un.TableCell(""));y=(0,Le.insertRow)(y,y.getHeight(),new Hr.TableRow(M,"",""))}}else{if(m.column>y.getHeaderWidth()-1){let M=new Array(y.getHeight()-1).fill(new un.TableCell(""));y=(0,Le.insertColumn)(y,y.getHeaderWidth(),M,r)}m=m.setColumn(m.column+1)}let S=(0,Le.formatTable)(y,r);m=m.setOffset((0,We._computeNewOffset)(m,y,S,!0));let V=S.table.toLines();m.column>S.table.getHeaderWidth()-1&&(V[m.row]+=" ",m=m.setOffset(1)),this._textEditor.transact(()=>{this._updateLines(l.start.row,l.end.row+1,V,c),this._selectFocus(l.start.row,S.table,m)}),r.smartCursor&&(this._scActive||(this._scActive=!0,this._scTablePos=l.start,P.column<0||S.table.getHeaderWidth()-1{let _=C,m=_;_.row===0?_.column>0&&(_=_.setColumn(_.column-1)):_.row===1?_=new _o.Focus(0,d.getHeaderWidth()-1,_.offset):_.column>0?_=_.setColumn(_.column-1):_=new _o.Focus(_.row===2?0:_.row-1,d.getHeaderWidth()-1,_.offset);let A=!_.posEquals(m),P=(0,Le.formatTable)(d,r);_=_.setOffset((0,We._computeNewOffset)(_,d,P,A)),this._textEditor.transact(()=>{this._updateLines(l.start.row,l.end.row+1,P.table.toLines(),c),A?this._selectFocus(l.start.row,P.table,_):this._moveToFocus(l.start.row,P.table,_)}),A&&this.resetSmartCursor()})}nextRow(r){this._withTable(r,({range:l,lines:c,table:d,focus:C})=>{let _=this._scTablePos!==void 0&&!l.start.equals(this._scTablePos)||this._scLastFocus!==void 0&&!C.posEquals(this._scLastFocus);this._scActive&&_&&this.resetSmartCursor();let m=C,A=(0,Le.completeTable)(d,r);A.delimiterInserted&&m.row>0&&(m=m.setRow(m.row+1));let P=m,y=A.table;if(m.row===0?m=m.setRow(2):m=m.setRow(m.row+1),r.smartCursor?this._scActive&&this._scStartFocus!==void 0?m=m.setColumn(this._scStartFocus.column):(m.column<0||y.getHeaderWidth()-1y.getHeight()-1){let V=new Array(y.getHeaderWidth()).fill(new un.TableCell(""));y=(0,Le.insertRow)(y,y.getHeight(),new Hr.TableRow(V,"",""))}let S=(0,Le.formatTable)(y,r);m=m.setOffset((0,We._computeNewOffset)(m,y,S,!0)),this._textEditor.transact(()=>{this._updateLines(l.start.row,l.end.row+1,S.table.toLines(),c),this._selectFocus(l.start.row,S.table,m)}),r.smartCursor&&(this._scActive||(this._scActive=!0,this._scTablePos=l.start,P.column<0||S.table.getHeaderWidth()-1{let m=_;m.row<=1&&(m=m.setRow(2)),m=m.setColumn(0);let A=new Array(C.getHeaderWidth()).fill(new un.TableCell("")),P=(0,Le.insertRow)(C,m.row,new Hr.TableRow(A,"",""));this.formatAndApply(r,l,c,d,P,m)})}deleteRow(r){this.withCompletedTable(r,({range:l,lines:c,formulaLines:d,table:C,focus:_})=>{let m=_,A=C,P=!1;m.row!==1&&(A=(0,Le.deleteRow)(A,m.row),P=!0,m.row>A.getHeight()-1&&(m=m.setRow(m.row===2?0:m.row-1))),this.formatAndApply(r,l,c,d,A,m,P)})}moveRow(r,l){this.withCompletedTable(l,({range:c,lines:d,formulaLines:C,table:_,focus:m})=>{let A=m,P=_;if(A.row>1){let y=Math.min(Math.max(A.row+r,2),P.getHeight()-1);P=(0,Le.moveRow)(P,A.row,y),A=A.setRow(y)}this.formatAndApply(l,c,d,C,P,A)})}evaluateFormulas(r){return this.withCompletedTable(r,({range:l,lines:c,formulaLines:d,table:C,focus:_})=>{let m=C.applyFormulas(d);if(m.isErr())return m.error;let{table:A,focus:P}=this.formatAndApply(r,l,c,d,m.value,_,!1)})}transpose(r){this.withCompletedTable(r,({range:l,lines:c,formulaLines:d,table:C,focus:_})=>{var m,A,P,y,S,V,M,Y;let se=C.getWidth(),ge=C.getHeight(),D=new Array(se+1);for(let te=0;te1){let G=(y=(P=C.getCellAt(Q,te))===null||P===void 0?void 0:P.content)!==null&&y!==void 0?y:"";J[Q-1]=new un.TableCell(G)}}D[te]=new Hr.TableRow(J,"","")}else if(te===1){let J=new Array(ge-1);for(let Q=0;Q1){let J=new Array(ge-1);for(let Q=0;Q1){let G=(Y=(M=C.getCellAt(Q,te-1))===null||M===void 0?void 0:M.content)!==null&&Y!==void 0?Y:"";J[Q-1]=new un.TableCell(G)}}D[te]=new Hr.TableRow(J,"","")}let $=new ou.Table(D),{table:U,focus:K}=this.formatAndApply(r,l,c,d,$,_,!0);this._moveToFocus(l.start.row,U,K)})}sortRows(r,l){this.withCompletedTable(l,({range:c,lines:d,formulaLines:C,table:_,focus:m})=>{let A=_.getRows().slice(2),P=se=>/^\s*[-+]?((\d+(\.\d+)?)|(\d+\.)|(\.\d+))([eE][-+]?\d+)?\s*$/.test(se),y=A.map(se=>{var ge;return(ge=se.getCellAt(m.column))===null||ge===void 0?void 0:ge.content}).some(se=>se!==void 0&&se!==""&&!P(se));A.sort((se,ge)=>{let D=se.getCellAt(m.column),$=ge.getCellAt(m.column);if(D===void 0||D.content==="")return $===void 0||$.content===""?0:-1;if($===void 0||$.content==="")return 1;let U=y?D.content.replace(/[*~_$]/g,""):parseFloat(D.content),K=y?$.content.replace(/[*~_$]/g,""):parseFloat($.content);return U===K?0:U===void 0?-1:K===void 0?1:U{let m=_;m.row===1&&(m=m.setRow(0)),m.column<0&&(m=m.setColumn(0));let A=new Array(C.getHeight()-1).fill(new un.TableCell("")),P=(0,Le.insertColumn)(C,m.column,A,r);this.formatAndApply(r,l,c,d,P,m)})}deleteColumn(r){this.withCompletedTable(r,({range:l,lines:c,formulaLines:d,table:C,focus:_})=>{let m=_;m.row===1&&(m=m.setRow(0));let A=C,P=!1;0<=m.column&&m.column<=A.getHeaderWidth()-1&&(A=(0,Le.deleteColumn)(C,m.column,r),P=!0,m.column>A.getHeaderWidth()-1&&(m=m.setColumn(A.getHeaderWidth()-1))),this.formatAndApply(r,l,c,d,A,m,P)})}moveColumn(r,l){this.withCompletedTable(l,({range:c,lines:d,formulaLines:C,table:_,focus:m})=>{let A=m,P=_;if(0<=A.column&&A.column<=P.getHeaderWidth()-1){let y=Math.min(Math.max(A.column+r,0),P.getHeaderWidth()-1);P=(0,Le.moveColumn)(P,A.column,y),A=A.setColumn(y)}this.formatAndApply(l,c,d,C,P,A)})}formatAll(r){this._textEditor.transact(()=>{let l=(0,We._createIsTableRowRegex)(r.leftMarginChars),c=this._textEditor.getCursorPosition(),d=[],C,_=this._textEditor.getLastRow();for(let m=0;m<=_;m++){let A=this._textEditor.getLine(m);if(this._textEditor.acceptsTableEdit(m)&&l.test(A))d.push(A),C===void 0&&(C=m);else if(C!==void 0){let P=m-1,y=new J3.Range(new ln.Point(C,0),new ln.Point(P,d[d.length-1].length)),S=(0,Br.readTable)(d,r),V=S.focusOfPosition(c,C),M;if(V!==void 0){let Y=V,se=(0,Le.completeTable)(S,r);se.delimiterInserted&&Y.row>0&&(Y=Y.setRow(Y.row+1));let ge=(0,Le.formatTable)(se.table,r);Y=Y.setOffset((0,We._computeNewOffset)(Y,se.table,ge,!1));let D=ge.table.toLines();this._updateLines(y.start.row,y.end.row+1,D,d),M=D.length-d.length,c=ge.table.positionOfFocus(Y,C)}else{let Y=(0,Le.completeTable)(S,r),ge=(0,Le.formatTable)(Y.table,r).table.toLines();this._updateLines(y.start.row,y.end.row+1,ge,d),M=ge.length-d.length,c.row>P&&(c=new ln.Point(c.row+M,c.column))}d=[],C=void 0,_+=M,m+=M}}if(C!==void 0){let m=_,A=new J3.Range(new ln.Point(C,0),new ln.Point(m,d[d.length-1].length)),P=(0,Br.readTable)(d,r),S=P.focusOfPosition(c,C),V=(0,Le.completeTable)(P,r);V.delimiterInserted&&S.row>0&&(S=S.setRow(S.row+1));let M=(0,Le.formatTable)(V.table,r);S=S.setOffset((0,We._computeNewOffset)(S,V.table,M,!1));let Y=M.table.toLines();this._updateLines(A.start.row,A.end.row+1,Y,d),c=M.table.positionOfFocus(S,C)}this._textEditor.setCursorPosition(c)})}exportTable(r,l){return this.withCompletedTable(l,({range:c,lines:d,formulaLines:C,table:_,focus:m})=>{let A=_.getRows();return A.length>0&&!r&&A.splice(0,2),A.map(P=>P.getCells().map(y=>y.content))})}exportCSV(r,l){let c=this.exportTable(r,l);return c?c.map(d=>d.join(" ")).join(` +`):void 0}withCompletedTable(r,l){return this._withTable(r,c=>{let d=c.focus,C=(0,Le.completeTable)(c.table,r);C.delimiterInserted&&d.row>0&&(d=d.setRow(d.row+1));let _=(0,Le.formatTable)(C.table,r);return d=d.setOffset((0,We._computeNewOffset)(d,C.table,_,!1)),c.table=_.table,c.focus=d,l(c)})}formatAndApply(r,l,c,d,C,_,m=!1){let A=(0,Le.formatTable)(C,r);return _=_.setOffset((0,We._computeNewOffset)(_,C,A,m)),this._textEditor.transact(()=>{this._updateLines(l.start.row,l.end.row+1,A.table.toLines(),c),m?this._selectFocus(l.start.row,A.table,_):this._moveToFocus(l.start.row,A.table,_)}),this.resetSmartCursor(),{range:l,lines:c,formulaLines:d,table:A.table,focus:_}}};We.TableEditor=Q3});var Mi=we(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.SortOrder=re.TableEditor=re.optionsWithDefaults=re.defaultOptions=re.ITextEditor=re.shortestEditScript=re.applyEditScript=re.Delete=re.Insert=re.moveColumn=re.deleteColumn=re.insertColumn=re.moveRow=re.deleteRow=re.insertRow=re.alterAlignment=re.formatTable=re.completeTable=re.FormatType=re.readTable=re.Table=re.TableRow=re.TableCell=re.HeaderAlignment=re.DefaultAlignment=re.Alignment=re.Focus=re.Range=re.Point=void 0;var j7=O1();Object.defineProperty(re,"Point",{enumerable:!0,get:function(){return j7.Point}});var ef=P1();Object.defineProperty(re,"Range",{enumerable:!0,get:function(){return ef.Range}});var tf=W1();Object.defineProperty(re,"Focus",{enumerable:!0,get:function(){return tf.Focus}});var j3=vi();Object.defineProperty(re,"Alignment",{enumerable:!0,get:function(){return j3.Alignment}});Object.defineProperty(re,"DefaultAlignment",{enumerable:!0,get:function(){return j3.DefaultAlignment}});Object.defineProperty(re,"HeaderAlignment",{enumerable:!0,get:function(){return j3.HeaderAlignment}});var nf=Pr();Object.defineProperty(re,"TableCell",{enumerable:!0,get:function(){return nf.TableCell}});var rf=_i();Object.defineProperty(re,"TableRow",{enumerable:!0,get:function(){return rf.TableRow}});var of=Ii();Object.defineProperty(re,"Table",{enumerable:!0,get:function(){return of.Table}});var sf=$3();Object.defineProperty(re,"readTable",{enumerable:!0,get:function(){return sf.readTable}});var an=wo();Object.defineProperty(re,"FormatType",{enumerable:!0,get:function(){return an.FormatType}});Object.defineProperty(re,"completeTable",{enumerable:!0,get:function(){return an.completeTable}});Object.defineProperty(re,"formatTable",{enumerable:!0,get:function(){return an.formatTable}});Object.defineProperty(re,"alterAlignment",{enumerable:!0,get:function(){return an.alterAlignment}});Object.defineProperty(re,"insertRow",{enumerable:!0,get:function(){return an.insertRow}});Object.defineProperty(re,"deleteRow",{enumerable:!0,get:function(){return an.deleteRow}});Object.defineProperty(re,"moveRow",{enumerable:!0,get:function(){return an.moveRow}});Object.defineProperty(re,"insertColumn",{enumerable:!0,get:function(){return an.insertColumn}});Object.defineProperty(re,"deleteColumn",{enumerable:!0,get:function(){return an.deleteColumn}});Object.defineProperty(re,"moveColumn",{enumerable:!0,get:function(){return an.moveColumn}});var bo=K3();Object.defineProperty(re,"Insert",{enumerable:!0,get:function(){return bo.Insert}});Object.defineProperty(re,"Delete",{enumerable:!0,get:function(){return bo.Delete}});Object.defineProperty(re,"applyEditScript",{enumerable:!0,get:function(){return bo.applyEditScript}});Object.defineProperty(re,"shortestEditScript",{enumerable:!0,get:function(){return bo.shortestEditScript}});var lf=eu();Object.defineProperty(re,"ITextEditor",{enumerable:!0,get:function(){return lf.ITextEditor}});var lu=ru();Object.defineProperty(re,"defaultOptions",{enumerable:!0,get:function(){return lu.defaultOptions}});Object.defineProperty(re,"optionsWithDefaults",{enumerable:!0,get:function(){return lu.optionsWithDefaults}});var uu=su();Object.defineProperty(re,"TableEditor",{enumerable:!0,get:function(){return uu.TableEditor}});Object.defineProperty(re,"SortOrder",{enumerable:!0,get:function(){return uu.SortOrder}})});var ff={};p9(ff,{default:()=>No});module.exports=m9(ff);var Cl=require("obsidian"),N1={spreadsheet:` + + +`,alignLeft:` + + + + + + + +`,alignCenter:` + + + + + + + +`,alignRight:` + + + + + +`,deleteColumn:` + + + +`,deleteRow:` + + + + +`,insertColumn:` + + + + + + + +`,insertRow:` + + + + + + + +`,moveColumnLeft:` + + + + +`,moveColumnRight:` + + + + +`,moveRowDown:` + + + + +`,moveRowUp:` + + + + +`,transpose:` + + + + +`,sortAsc:` + + + + + + + +`,sortDesc:` + + + + + + + +`,formula:` + + + +`,help:` + + + + +`,csv:` + + +`,arrowenter:` + + +`,arrowtab:` + + +`},vl=()=>{Object.keys(N1).forEach(s=>{s!=="help"&&(0,Cl.addIcon)(s,N1[s])})};var Ao=y1(Mi()),e0={formatType:Ao.FormatType.NORMAL,showRibbonIcon:!0,bindEnter:!0,bindTab:!0},Eo=class{constructor(r){let l={...e0,...r};this.formatType=l.formatType,this.showRibbonIcon=l.showRibbonIcon,this.bindEnter=l.bindEnter,this.bindTab=l.bindTab}asOptions(){return(0,Ao.optionsWithDefaults)({formatType:this.formatType})}};var au=y1(Mi()),To=class{constructor(r,l,c){this.getCursorPosition=()=>{let r=this.editor.getCursor();return new au.Point(r.line,r.ch)};this.setCursorPosition=r=>{this.editor.setCursor({line:r.row,ch:r.column})};this.setSelectionRange=r=>{this.editor.setSelection({line:r.start.row,ch:r.start.column},{line:r.end.row,ch:r.end.column})};this.getLastRow=()=>this.editor.lastLine();this.acceptsTableEdit=r=>{let l=this.app.metadataCache.getFileCache(this.file);if(!l.sections)return!0;let c=l.sections.find(C=>C.position.start.line<=r&&C.position.end.line>=r&&C.type!=="code"&&C.type!=="math");if(c===void 0)return!1;let d=c.position.start.line;return!(d>=0&&this.getLine(d)==="-tx-")};this.getLine=r=>this.editor.getLine(r);this.insertLine=(r,l)=>{r>this.getLastRow()?this.editor.replaceRange(` +`+l,{line:r,ch:0}):this.editor.replaceRange(l+` +`,{line:r,ch:0})};this.deleteLine=r=>{if(r===this.getLastRow()){let l=this.getLine(r);this.editor.replaceRange("",{line:r,ch:0},{line:r,ch:l.length})}else this.editor.replaceRange("",{line:r,ch:0},{line:r+1,ch:0})};this.replaceLines=(r,l,c)=>{let d=l-1,_=this.editor.getLine(d).length;this.editor.replaceRange(c.join(` +`),{line:r,ch:0},{line:d,ch:_})};this.transact=r=>{r()};this.app=r,this.file=l,this.editor=c}};var _n=y1(Mi()),Ro=require("obsidian"),bn=class{constructor(r,l,c,d){this.cursorIsInTableFormula=()=>this.mte.cursorIsInTableFormula(this.settings.asOptions());this.cursorIsInTable=()=>this.mte.cursorIsInTable(this.settings.asOptions());this.nextCell=()=>{this.mte.nextCell(this.settings.asOptions())};this.previousCell=()=>{this.mte.previousCell(this.settings.asOptions())};this.nextRow=()=>{this.mte.nextRow(this.settings.asOptions())};this.formatTable=()=>{this.mte.format(this.settings.asOptions())};this.formatAllTables=()=>{this.mte.formatAll(this.settings.asOptions())};this.insertColumn=()=>{this.mte.insertColumn(this.settings.asOptions())};this.insertRow=()=>{this.mte.insertRow(this.settings.asOptions())};this.leftAlignColumn=()=>{this.mte.alignColumn(_n.Alignment.LEFT,this.settings.asOptions())};this.centerAlignColumn=()=>{this.mte.alignColumn(_n.Alignment.CENTER,this.settings.asOptions())};this.rightAlignColumn=()=>{this.mte.alignColumn(_n.Alignment.RIGHT,this.settings.asOptions())};this.moveColumnLeft=()=>{this.mte.moveColumn(-1,this.settings.asOptions())};this.moveColumnRight=()=>{this.mte.moveColumn(1,this.settings.asOptions())};this.moveRowUp=()=>{this.mte.moveRow(-1,this.settings.asOptions())};this.moveRowDown=()=>{this.mte.moveRow(1,this.settings.asOptions())};this.deleteColumn=()=>{this.mte.deleteColumn(this.settings.asOptions())};this.deleteRow=()=>{this.mte.deleteRow(this.settings.asOptions())};this.sortRowsAsc=()=>{this.mte.sortRows(_n.SortOrder.Ascending,this.settings.asOptions())};this.sortRowsDesc=()=>{this.mte.sortRows(_n.SortOrder.Descending,this.settings.asOptions())};this.transpose=()=>{this.mte.transpose(this.settings.asOptions())};this.escape=()=>{this.mte.escape(this.settings.asOptions())};this.evaluateFormulas=()=>{let r=this.mte.evaluateFormulas(this.settings.asOptions());r&&new Ro.Notice(r.message)};this.exportCSVModal=()=>{new t0(this.app,this.mte,this.settings).open()};this.app=r,this.settings=d;let C=new To(r,l,c);this.mte=new _n.TableEditor(C)}},t0=class extends Ro.Modal{constructor(r,l,c){super(r),this.mte=l,this.settings=c}onOpen(){let{contentEl:r}=this,l=r.createDiv({cls:"advanced-tables-csv-export"}),c=l.createEl("textarea",{attr:{readonly:!0}});c.value=this.mte.exportCSV(!0,this.settings.asOptions()),c.onClickEvent(()=>c.select());let d=l.createEl("label"),C=d.createEl("input",{type:"checkbox",attr:{checked:!0}});d.createSpan().setText("Include table headers"),C.onClickEvent(()=>{c.value=this.mte.exportCSV(C.checked,this.settings.asOptions())})}onClose(){let{contentEl:r}=this;r.empty()}};var zr=require("obsidian"),$r="advanced-tables-toolbar",xo=class extends zr.ItemView{constructor(l,c){super(l);this.draw=()=>{let l=this.containerEl.children[1],c=document.createElement("div");c.addClass("advanced-tables-buttons"),c.createDiv().createSpan({cls:"title"}).setText("Advanced Tables");let d=c.createDiv({cls:"nav-header"}),C=d.createDiv({cls:"nav-buttons-container"});C.createSpan({cls:"advanced-tables-row-label"}).setText("Align:"),this.drawBtn(C,"alignLeft","left align column",y=>y.leftAlignColumn()),this.drawBtn(C,"alignCenter","center align column",y=>y.centerAlignColumn()),this.drawBtn(C,"alignRight","right align column",y=>y.rightAlignColumn());let _=d.createDiv({cls:"nav-buttons-container"});_.createSpan({cls:"advanced-tables-row-label"}).setText("Move:"),this.drawBtn(_,"moveRowDown","move row down",y=>y.moveRowDown()),this.drawBtn(_,"moveRowUp","move row up",y=>y.moveRowUp()),this.drawBtn(_,"moveColumnRight","move column right",y=>y.moveColumnRight()),this.drawBtn(_,"moveColumnLeft","move column left",y=>y.moveColumnLeft()),this.drawBtn(_,"transpose","transpose",y=>y.transpose());let m=d.createDiv({cls:"nav-buttons-container"});m.createSpan({cls:"advanced-tables-row-label"}).setText("Edit:"),this.drawBtn(m,"insertRow","insert row above",y=>y.insertRow()),this.drawBtn(m,"insertColumn","insert column left",y=>y.insertColumn()),this.drawBtn(m,"deleteRow","delete row",y=>y.deleteRow()),this.drawBtn(m,"deleteColumn","delete column",y=>y.deleteColumn());let A=d.createDiv({cls:"nav-buttons-container"});A.createSpan({cls:"advanced-tables-row-label"}).setText("Sort/F:"),this.drawBtn(A,"sortAsc","sort by column ascending",y=>y.sortRowsAsc()),this.drawBtn(A,"sortDesc","sort by column descending",y=>y.sortRowsDesc()),this.drawBtn(A,"formula","evaluate formulas",y=>y.evaluateFormulas());let P=d.createDiv({cls:"nav-buttons-container"});P.createSpan({cls:"advanced-tables-row-label"}).setText("Misc:"),this.drawBtn(P,"csv","export as csv",y=>y.exportCSVModal()),this.drawBtn(P,"help","help",()=>window.open("https://github.com/tgrosinger/advanced-tables-obsidian/blob/main/docs/help.md")),l.empty(),l.appendChild(c)};this.drawBtn=(l,c,d,C)=>{let _=A=>d==="evaluate formulas"?A.cursorIsInTable()||A.cursorIsInTableFormula():A.cursorIsInTable(),m=l.createDiv({cls:"advanced-tables-button nav-action-button",title:d});m.onClickEvent(()=>this.withTE(C,_)),m.appendChild(uf(N1[c]))};this.withTE=(l,c,d=!0)=>{let C,_=this.app.workspace.getMostRecentLeaf();if(_.view instanceof zr.MarkdownView)C=_.view.editor;else{console.warn("Advanced Tables: Unable to determine current editor.");return}let m=new bn(this.app,_.view.file,C,this.settings);if(!c(m)){d&&new zr.Notice("Advanced Tables: Cursor must be in a table.");return}l(m)};this.settings=c}getViewType(){return $r}getDisplayText(){return"Advanced Tables"}getIcon(){return"spreadsheet"}load(){super.load(),this.draw()}},uf=s=>new DOMParser().parseFromString(s,"text/xml").documentElement;var fu=require("@codemirror/state"),hu=require("@codemirror/view"),yo=y1(Mi()),it=require("obsidian"),No=class extends it.Plugin{constructor(){super(...arguments);this.makeEditorExtension=()=>{let l=[];return this.settings.bindEnter&&l.push({key:"Enter",run:()=>this.newPerformTableActionCM6(c=>c.nextRow())(),preventDefault:!0}),this.settings.bindTab&&l.push({key:"Tab",run:()=>this.newPerformTableActionCM6(c=>c.nextCell())(),shift:()=>this.newPerformTableActionCM6(c=>c.previousCell())(),preventDefault:!0}),fu.Prec.highest(hu.keymap.of(l))};this.newPerformTableActionCM6=l=>()=>{let c=this.app.workspace.getActiveViewOfType(it.MarkdownView);if(c){let d=c.currentMode;if("sourceMode"in d&&!d.sourceMode)return!1;let C=new bn(this.app,c.file,c.editor,this.settings);if(C.cursorIsInTable())return l(C),!0}return!1};this.newPerformTableAction=(l,c=!0)=>(d,C,_)=>{let m=new bn(this.app,_.file,C,this.settings);if(d)return m.cursorIsInTable();l(m)};this.handleKeyDown=(l,c)=>{if(["Tab","Enter"].contains(c.key)){let d=this.app.workspace.getActiveViewOfType(it.MarkdownView),C=d?d.editor:null,_=this.newPerformTableAction(m=>{switch(c.key){case"Tab":if(!this.settings.bindTab)return;c.shiftKey?m.previousCell():m.nextCell();break;case"Enter":if(!this.settings.bindEnter)return;if(c.shiftKey)m.escape();else{if(c.ctrlKey||c.metaKey||c.altKey)return;m.nextRow()}break}c.preventDefault()},!1);_(!0,C,d)&&_(!1,C,d)}};this.toggleTableControlsView=async()=>{let l=this.app.workspace.getLeavesOfType($r);if(l.length){this.app.workspace.revealLeaf(l[0]);return}await this.app.workspace.getRightLeaf(!1).setViewState({type:$r,active:!0}),this.app.workspace.revealLeaf(this.app.workspace.getLeavesOfType($r)[0])};this.isMobile=()=>this.app.isMobile}async onload(){console.log("loading markdown-table-editor plugin"),await this.loadSettings(),this.registerView($r,l=>new xo(l,this.settings)),vl(),this.settings.showRibbonIcon&&this.addRibbonIcon("spreadsheet","Advanced Tables Toolbar",()=>{this.toggleTableControlsView()}),this.registerEditorExtension(this.makeEditorExtension()),this.addCommand({id:"next-row",name:"Go to next row",icon:"arrowenter",editorCheckCallback:this.newPerformTableAction(l=>{this.settings.bindEnter&&!this.isMobile&&new it.Notice("Advanced Tables: Next row also bound to enter. Possibly producing double actions. See Advanced Tables settings."),l.nextRow()})}),this.addCommand({id:"next-cell",name:"Go to next cell",icon:"arrowtab",editorCheckCallback:this.newPerformTableAction(l=>{this.settings.bindTab&&!this.isMobile&&new it.Notice("Advanced Tables: Next cell also bound to tab. Possibly producing double actions. See Advanced Tables settings."),l.nextCell()})}),this.addCommand({id:"previous-cell",name:"Go to previous cell",editorCheckCallback:this.newPerformTableAction(l=>{this.settings.bindTab&&!this.isMobile&&new it.Notice("Advanced Tables: Previous cell also bound to shift+tab. Possibly producing double actions. See Advanced Tables settings."),l.previousCell()})}),this.addCommand({id:"format-table",name:"Format table at the cursor",editorCheckCallback:this.newPerformTableAction(l=>{l.formatTable()})}),this.addCommand({id:"format-all-tables",name:"Format all tables in this file",editorCallback:(l,c)=>{new bn(this.app,c.file,l,this.settings).formatAllTables()}}),this.addCommand({id:"insert-column",name:"Insert column before current",icon:"insertColumn",editorCheckCallback:this.newPerformTableAction(l=>{l.insertColumn()})}),this.addCommand({id:"insert-row",name:"Insert row before current",icon:"insertRow",editorCheckCallback:this.newPerformTableAction(l=>{l.insertRow()})}),this.addCommand({id:"escape-table",name:"Move cursor out of table",editorCheckCallback:this.newPerformTableAction(l=>{l.escape()})}),this.addCommand({id:"left-align-column",name:"Left align column",icon:"alignLeft",editorCheckCallback:this.newPerformTableAction(l=>{l.leftAlignColumn()})}),this.addCommand({id:"center-align-column",name:"Center align column",icon:"alignCenter",editorCheckCallback:this.newPerformTableAction(l=>{l.centerAlignColumn()})}),this.addCommand({id:"right-align-column",name:"Right align column",icon:"alignRight",editorCheckCallback:this.newPerformTableAction(l=>{l.rightAlignColumn()})}),this.addCommand({id:"move-column-left",name:"Move column left",icon:"moveColumnLeft",editorCheckCallback:this.newPerformTableAction(l=>{l.moveColumnLeft()})}),this.addCommand({id:"move-column-right",name:"Move column right",icon:"moveColumnRight",editorCheckCallback:this.newPerformTableAction(l=>{l.moveColumnRight()})}),this.addCommand({id:"move-row-up",name:"Move row up",icon:"moveRowUp",editorCheckCallback:this.newPerformTableAction(l=>{l.moveRowUp()})}),this.addCommand({id:"move-row-down",name:"Move row down",icon:"moveRowDown",editorCheckCallback:this.newPerformTableAction(l=>{l.moveRowDown()})}),this.addCommand({id:"delete-column",name:"Delete column",icon:"deleteColumn",editorCheckCallback:this.newPerformTableAction(l=>{l.deleteColumn()})}),this.addCommand({id:"delete-row",name:"Delete row",icon:"deleteRow",editorCheckCallback:this.newPerformTableAction(l=>{l.deleteRow()})}),this.addCommand({id:"sort-rows-ascending",name:"Sort rows ascending",icon:"sortAsc",editorCheckCallback:this.newPerformTableAction(l=>{l.sortRowsAsc()})}),this.addCommand({id:"sort-rows-descending",name:"Sort rows descending",icon:"sortDesc",editorCheckCallback:this.newPerformTableAction(l=>{l.sortRowsDesc()})}),this.addCommand({id:"transpose",name:"Transpose",icon:"transpose",editorCheckCallback:this.newPerformTableAction(l=>{l.transpose()})}),this.addCommand({id:"evaluate-formulas",name:"Evaluate table formulas",icon:"formula",editorCheckCallback:(l,c,d)=>{let C=new bn(this.app,d.file,c,this.settings);if(l)return C.cursorIsInTable()||C.cursorIsInTableFormula();C.evaluateFormulas()}}),this.addCommand({id:"table-control-bar",name:"Open table controls toolbar",hotkeys:[{modifiers:["Mod","Shift"],key:"d"}],callback:()=>{this.toggleTableControlsView()}}),this.addSettingTab(new n0(this.app,this))}async loadSettings(){let l=Object.assign(e0,await this.loadData());this.settings=new Eo(l),this.saveData(this.settings)}},n0=class extends it.PluginSettingTab{constructor(r,l){super(r,l),this.plugin=l}display(){let{containerEl:r}=this;r.empty(),new it.Setting(r).setName("Bind enter to table navigation").setDesc('Requires restart of Obsidian. If enabled, when the cursor is in a table, enter advances to the next row. Disabling this can help avoid conflicting with tag or CJK autocompletion. If disabling, bind "Go to ..." in the Obsidian Hotkeys settings.').addToggle(C=>C.setValue(this.plugin.settings.bindEnter).onChange(_=>{this.plugin.settings.bindEnter=_,this.plugin.saveData(this.plugin.settings),this.display()})),new it.Setting(r).setName("Bind tab to table navigation").setDesc('Requires restart of Obsidian. If enabled, when the cursor is in a table, tab/shift+tab navigate between cells. Disabling this can help avoid conflicting with tag or CJK autocompletion. If disabling, bind "Go to ..." in the Obsidian Hotkeys settings.').addToggle(C=>C.setValue(this.plugin.settings.bindTab).onChange(_=>{this.plugin.settings.bindTab=_,this.plugin.saveData(this.plugin.settings),this.display()})),new it.Setting(r).setName("Pad cell width using spaces").setDesc("If enabled, table cells will have spaces added to match the width of the longest cell in the column.").addToggle(C=>C.setValue(this.plugin.settings.formatType===yo.FormatType.NORMAL).onChange(_=>{this.plugin.settings.formatType=_?yo.FormatType.NORMAL:yo.FormatType.WEAK,this.plugin.saveData(this.plugin.settings),this.display()})),new it.Setting(r).setName("Show icon in sidebar").setDesc("If enabled, a button which opens the table controls toolbar will be added to the Obsidian sidebar. The toolbar can also be opened with a Hotkey. Changes only take effect on reload.").addToggle(C=>C.setValue(this.plugin.settings.showRibbonIcon).onChange(_=>{this.plugin.settings.showRibbonIcon=_,this.plugin.saveData(this.plugin.settings),this.display()}));let l=r.createEl("div",{cls:"advanced-tables-donation"}),c=document.createElement("p");c.appendText("If this plugin adds value for you and you would like to help support continued development, please use the buttons below:"),l.appendChild(c);let d=new DOMParser;l.appendChild(cu("https://paypal.me/tgrosinger",d.parseFromString(cf,"text/xml").documentElement)),l.appendChild(cu("https://www.buymeacoffee.com/tgrosinger",d.parseFromString(af,"text/xml").documentElement))}},cu=(s,r)=>{let l=document.createElement("a");return l.setAttribute("href",s),l.addClass("advanced-tables-donate-button"),l.appendChild(r),l},af=` + + + + + + + + + + + + + + + + + + + + + +`,cf=` + + + + + + + +`; +/*! Bundled license information: + +decimal.js/decimal.js: + (*! + * decimal.js v10.4.3 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2022 Michael Mclaughlin + * MIT Licence + *) + +lodash/lodash.js: + (** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) +*/ + +/* nosourcemap */ \ No newline at end of file diff --git a/content/notes/.obsidian/plugins/table-editor-obsidian/manifest.json b/content/notes/.obsidian/plugins/table-editor-obsidian/manifest.json new file mode 100644 index 0000000..cc84eb7 --- /dev/null +++ b/content/notes/.obsidian/plugins/table-editor-obsidian/manifest.json @@ -0,0 +1,17 @@ +{ + "id": "table-editor-obsidian", + "name": "Advanced Tables", + "author": "Tony Grosinger", + "authorUrl": "https://grosinger.net", + "description": "Improved table navigation, formatting, manipulation, and formulas", + "isDesktopOnly": false, + "minAppVersion": "1.0.0", + "version": "0.22.1", + "js": "main.js", + "fundingUrl": { + "Github Sponsor": "https://github.com/sponsors/tgrosinger", + "Buy me a Coffee": "https://buymeacoffee.com/tgrosinger", + "Paypal": "https://paypal.me/tgrosinger" + }, + "donation": "https://buymeacoffee.com/tgrosinger" +} diff --git a/content/notes/.obsidian/plugins/table-editor-obsidian/styles.css b/content/notes/.obsidian/plugins/table-editor-obsidian/styles.css new file mode 100644 index 0000000..089b8cd --- /dev/null +++ b/content/notes/.obsidian/plugins/table-editor-obsidian/styles.css @@ -0,0 +1,78 @@ +:root { + --advanced-tables-helper-size: 28px; +} + +.HyperMD-table-row span.cm-inline-code { + font-size: 100%; + padding: 0px; +} + +.advanced-tables-buttons>div>.title { + font-weight: var(--font-medium); + font-size: var(--nav-item-size); + color: var(--nav-item-color); + text-decoration: underline; +} + +[data-type="advanced-tables-toolbar"] .nav-buttons-container { + column-gap: 0.2rem; + margin: 0.2rem 0 0.2rem 0; + justify-content: start; +} + +[data-type="advanced-tables-toolbar"] .nav-buttons-container::before { + min-width: 2.6rem; + line-height: var(--advanced-tables-helper-size); + font-size: var(--nav-item-size); + font-weight: var(--nav-item-weight); + color: var(--nav-item-color); +} + +[data-type="advanced-tables-toolbar"] .nav-buttons-container>* { + height: var(--advanced-tables-helper-size); + line-height: var(--advanced-tables-helper-size); +} + +[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button { + width: var(--advanced-tables-helper-size); + height: var(--advanced-tables-helper-size); + display: flex; + justify-content: center; + align-items: center; + border-radius: var(--radius-s); +} + +[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover { + background-color: var(--nav-item-background-hover); + color: var(--nav-item-color-hover); + font-weight: var(--nav-item-weight-hover); +} + +.advanced-tables-row-label { + width: 50px; +} + +.widget-icon { + width: 20px; + height: 20px; + fill: var(--text-muted); +} + +.widget-icon:hover { + fill: var(--text-normal); +} + +.advanced-tables-csv-export textarea { + height: 200px; + width: 100%; +} + +.advanced-tables-donation { + width: 70%; + margin: 0 auto; + text-align: center; +} + +.advanced-tables-donate-button { + margin: 10px; +} \ No newline at end of file diff --git a/content/notes/.obsidian/templates.json b/content/notes/.obsidian/templates.json new file mode 100644 index 0000000..6b4528c --- /dev/null +++ b/content/notes/.obsidian/templates.json @@ -0,0 +1,3 @@ +{ + "folder": "drafts/_Templates" +} \ No newline at end of file diff --git a/content/notes/.obsidian/themes/Adwaita/manifest.json b/content/notes/.obsidian/themes/Adwaita/manifest.json new file mode 100644 index 0000000..abb2424 --- /dev/null +++ b/content/notes/.obsidian/themes/Adwaita/manifest.json @@ -0,0 +1,7 @@ +{ + "name": "Adwaita", + "version": "0.5.0", + "minAppVersion": "1.0.0", + "author": "@birneee", + "authorUrl": "https://github.com/birneee" +} diff --git a/content/notes/.obsidian/themes/Adwaita/theme.css b/content/notes/.obsidian/themes/Adwaita/theme.css new file mode 100644 index 0000000..d6e2fc5 --- /dev/null +++ b/content/notes/.obsidian/themes/Adwaita/theme.css @@ -0,0 +1,744 @@ +/* This file is generated; DO NOT EDIT. */ +/* @settings + +name: Adwaita +id: com-github-birneee-obsidian-adwaita +settings: + - + title: Window Buttons + description: Style of minimize, maximize and close window buttons + type: heading + level: 2 + collapsed: false + - + id: adwaita-mod + title: Enable + description: Whether to use the Adwaita style window buttons + type: class-select + default: adwaita-mod-linux-only + allowEmpty: false + options: + - + label: Always + value: adwaita-mod-always + - + label: Linux Only + value: adwaita-mod-linux-only + - + label: Never + value: adwaita-mod-never + - + id: adwaita-mod-scale + title: Scale + description: + type: variable-number + default: 1 + - + id: adwaita-mod-right-margin + title: Right Margin + type: variable-number + default: 8 + format: px + - + id: adwaita-window-button-minimize-hide + title: Hide minimize button + type: class-toggle + - + id: adwaita-window-button-maximize-hide + title: Hide maximize button + type: class-toggle + - + id: adwaita-window-button-close-hide + title: Hide close button + type: class-toggle + + - + title: Tabs + type: heading + level: 2 + collapsed: false + - + id: adwaita-tabs + title: Enable + description: Whether to use the Adwaita style tabs + type: class-select + default: adwaita-tabs-linux-only + allowEmpty: false + options: + - + label: Always + value: adwaita-tabs-always + - + label: Linux Only + value: adwaita-tabs-linux-only + - + label: Never + value: adwaita-tabs-never + - + id: adwaita-tabs-short + title: Short + type: class-toggle + + - + title: Colors + type: heading + level: 2 + collapsed: false + - + id: adwaita-colors + title: Enable + description: Whether to use the Adwaita colors + type: class-select + default: adwaita-colors-linux-only + allowEmpty: false + options: + - + label: Always + value: adwaita-colors-always + - + label: Linux Only + value: adwaita-colors-linux-only + - + label: Never + value: adwaita-colors-never + + - + title: Font + type: heading + level: 2 + collapsed: false + - + id: adwaita-font + title: Enable + description: Whether to use the Cantarell font (must be installed on system) + type: class-select + default: adwaita-font-linux-only + allowEmpty: false + options: + - + label: Always + value: adwaita-font-always + - + label: Linux Only + value: adwaita-font-linux-only + - + label: Never + value: adwaita-font-never + + - + title: Icons + type: heading + level: 2 + collapsed: false + - + id: adwaita-icon + title: Enable + description: Whether to use the Adwaita icons + type: class-select + default: adwaita-icons-linux-only + allowEmpty: false + options: + - + label: Always + value: adwaita-icons-always + - + label: Linux Only + value: adwaita-icons-linux-only + - + label: Never + value: adwaita-icons-never +*/ +:root { + --adwaita-mod-scale: 1; + --adwaita-mod-right-margin: 8px; + /* TODO window radius */ } + +:root { + --adwaita-icon-folder-saved-search-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJtIDYuNjA1NDY5IDAuMDU4NTkzOCBjIC0zLjU3ODEyNSAwIC02LjUgMi45MjE4NzUyIC02LjUgNi41MDAwMDAyIHMgMi45MjE4NzUgNi40OTYwOTQgNi41IDYuNDk2MDk0IGMgMS40Mjk2ODcgMCAyLjc1MzkwNiAtMC40NjQ4NDQgMy44MjgxMjUgLTEuMjUzOTA3IGwgMi45NzI2NTYgMi45NzI2NTcgYyAwLjk1NzAzMSAwLjk0MTQwNiAyLjM2MzI4MSAtMC40OTYwOTQgMS40MDYyNSAtMS40Mzc1IGwgLTIuOTU3MDMxIC0yLjk1NzAzMiBjIDAuNzgxMjUgLTEuMDc0MjE4IDEuMjUgLTIuMzk0NTMxIDEuMjUgLTMuODIwMzEyIGMgMCAtMy41NzgxMjUgLTIuOTI1NzgxIC02LjUwMDAwMDIgLTYuNSAtNi41MDAwMDAyIHogbSAwIDIuMDAwMDAwMiBjIDIuNDk2MDkzIDAgNC41IDIuMDAzOTA2IDQuNSA0LjUgcyAtMi4wMDM5MDcgNC40OTYwOTQgLTQuNSA0LjQ5NjA5NCBjIC0yLjUgMCAtNC41IC0yIC00LjUgLTQuNDk2MDk0IHMgMiAtNC41IDQuNSAtNC41IHogbSAwIDAiIGZpbGw9IiMyZTM0MzYiLz4KPC9zdmc+Cg=="); + --adwaita-icon-folder-visiting-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJtIDMgMSBjIC0xLjY0NDUzMSAwIC0zIDEuMzU1NDY5IC0zIDMgdiA4IGMgMCAxLjY0NDUzMSAxLjM1NTQ2OSAzIDMgMyBoIDEwIGMgMS42NDQ1MzEgMCAzIC0xLjM1NTQ2OSAzIC0zIHYgLTYgYyAwIC0xLjY0NDUzMSAtMS4zNTU0NjkgLTMgLTMgLTMgaCAtMy41ODU5MzggbCAtMS43MDcwMzEgLTEuNzA3MDMxIGMgLTAuMTg3NSAtMC4xODc1IC0wLjQ0MTQwNiAtMC4yOTI5NjkgLTAuNzA3MDMxIC0wLjI5Mjk2OSB6IG0gMCAyIGggMy41ODU5MzggbCAxLjcwNzAzMSAxLjcwNzAzMSBjIDAuMTg3NSAwLjE4NzUgMC40NDE0MDYgMC4yOTI5NjkgMC43MDcwMzEgMC4yOTI5NjkgaCA0IGMgMC41NjI1IDAgMSAwLjQzNzUgMSAxIHYgNiBjIDAgMC41NjY0MDYgLTAuNDM3NSAxIC0xIDEgaCAtMTAgYyAtMC41NjI1IDAgLTEgLTAuNDMzNTk0IC0xIC0xIHYgLTggYyAwIC0wLjU2MjUgMC40Mzc1IC0xIDEgLTEgeiBtIDAgMCIgZmlsbD0iIzJlMzQzNiIvPgo8L3N2Zz4K"); + --adwaita-icon-go-down-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJtIDEgNSBjIDAgLTAuMjY1NjI1IDAuMTA1NDY5IC0wLjUxOTUzMSAwLjI5Mjk2OSAtMC43MDcwMzEgYyAwLjM5MDYyNSAtMC4zOTA2MjUgMS4wMjM0MzcgLTAuMzkwNjI1IDEuNDE0MDYyIDAgbCA1LjI5Mjk2OSA1LjI5Mjk2OSBsIDUuMjkyOTY5IC01LjI5Mjk2OSBjIDAuMzkwNjI1IC0wLjM5MDYyNSAxLjAyMzQzNyAtMC4zOTA2MjUgMS40MTQwNjIgMCBjIDAuMTg3NSAwLjE4NzUgMC4yOTI5NjkgMC40NDE0MDYgMC4yOTI5NjkgMC43MDcwMzEgcyAtMC4xMDU0NjkgMC41MTk1MzEgLTAuMjkyOTY5IDAuNzA3MDMxIGwgLTYgNiBjIC0wLjM5MDYyNSAwLjM5MDYyNSAtMS4wMjM0MzcgMC4zOTA2MjUgLTEuNDE0MDYyIDAgbCAtNiAtNiBjIC0wLjE4NzUgLTAuMTg3NSAtMC4yOTI5NjkgLTAuNDQxNDA2IC0wLjI5Mjk2OSAtMC43MDcwMzEgeiBtIDAgMCIgZmlsbD0iIzJlMzQzNiIvPgo8L3N2Zz4K"); + --adwaita-icon-sidebar-show-right-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSIjMmUzNDM2Ij4KICAgICAgICA8cGF0aCBkPSJtIDkuNSAxNCB2IC0xMiBoIDUgdiAxMiB6IG0gMCAwIiBmaWxsLW9wYWNpdHk9IjAuMzQ5MDIiLz4KICAgICAgICA8cGF0aCBkPSJtIDEzIDEgYyAxLjY0NDUzMSAwIDMgMS4zNTU0NjkgMyAzIHYgOCBjIDAgMS42NDQ1MzEgLTEuMzU1NDY5IDMgLTMgMyBoIC0xMCBjIC0xLjY0NDUzMSAwIC0zIC0xLjM1NTQ2OSAtMyAtMyB2IC04IGMgMCAtMS42NDQ1MzEgMS4zNTU0NjkgLTMgMyAtMyB6IG0gMCAyIGggLTEwIGMgLTAuNTcwMzEyIDAgLTEgMC40Mjk2ODggLTEgMSB2IDggYyAwIDAuNTcwMzEyIDAuNDI5Njg4IDEgMSAxIGggMTAgYyAwLjU3MDMxMiAwIDEgLTAuNDI5Njg4IDEgLTEgdiAtOCBjIDAgLTAuNTcwMzEyIC0wLjQyOTY4OCAtMSAtMSAtMSB6IG0gMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibSAxMCAyIGggLTEgdiAxMiBoIDEgeiBtIDAgMCIvPgogICAgPC9nPgo8L3N2Zz4K"); + --adwaita-icon-sidebar-show-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSIjMmUzNDM2Ij4KICAgICAgICA8cGF0aCBkPSJtIDYuNSAxNCB2IC0xMiBoIC01IHYgMTIgeiBtIDAgMCIgZmlsbC1vcGFjaXR5PSIwLjM0OTAyIi8+CiAgICAgICAgPHBhdGggZD0ibSAzIDEgYyAtMS42NDQ1MzEgMCAtMyAxLjM1NTQ2OSAtMyAzIHYgOCBjIDAgMS42NDQ1MzEgMS4zNTU0NjkgMyAzIDMgaCAxMCBjIDEuNjQ0NTMxIDAgMyAtMS4zNTU0NjkgMyAtMyB2IC04IGMgMCAtMS42NDQ1MzEgLTEuMzU1NDY5IC0zIC0zIC0zIHogbSAwIDIgaCAxMCBjIDAuNTcwMzEyIDAgMSAwLjQyOTY4OCAxIDEgdiA4IGMgMCAwLjU3MDMxMiAtMC40Mjk2ODggMSAtMSAxIGggLTEwIGMgLTAuNTcwMzEyIDAgLTEgLTAuNDI5Njg4IC0xIC0xIHYgLTggYyAwIC0wLjU3MDMxMiAwLjQyOTY4OCAtMSAxIC0xIHogbSAwIDAiLz4KICAgICAgICA8cGF0aCBkPSJtIDYgMiBoIDEgdiAxMiBoIC0xIHogbSAwIDAiLz4KICAgIDwvZz4KPC9zdmc+Cg=="); + --adwaita-icon-tab-new-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSIjMmUzNDM2Ij4KICAgICAgICA8cGF0aCBkPSJtIDMgMCBjIC0xLjY0NDUzMSAwIC0zIDEuMzU1NDY5IC0zIDMgdiAxMCBjIDAgMS42NDQ1MzEgMS4zNTU0NjkgMyAzIDMgaCAxMCBjIDEuNjQ0NTMxIDAgMyAtMS4zNTU0NjkgMyAtMyB2IC0xMCBjIDAgLTEuNjQ0NTMxIC0xLjM1NTQ2OSAtMyAtMyAtMyB6IG0gMCAyIGggMTAgYyAwLjU3MDMxMiAwIDEgMC40Mjk2ODggMSAxIHYgMTAgYyAwIDAuNTcwMzEyIC0wLjQyOTY4OCAxIC0xIDEgaCAtMTAgYyAtMC41NzAzMTIgMCAtMSAtMC40Mjk2ODggLTEgLTEgdiAtMTAgYyAwIC0wLjU3MDMxMiAwLjQyOTY4OCAtMSAxIC0xIHogbSAwIDAiLz4KICAgICAgICA8cGF0aCBkPSJtIDQgNyBoIDggdiAyIGggLTggeiBtIDAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0gOSA0IHYgOCBoIC0yIHYgLTggeiBtIDAgMCIvPgogICAgPC9nPgo8L3N2Zz4K"); + --adwaita-icon-view-more-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJtIDcuOTk2MDk0IDAgYyAtMS4xMDU0NjkgMCAtMiAwLjg5NDUzMSAtMiAyIHMgMC44OTQ1MzEgMiAyIDIgYyAxLjEwMTU2MiAwIDIgLTAuODk0NTMxIDIgLTIgcyAtMC44OTg0MzggLTIgLTIgLTIgeiBtIDAgNiBjIC0xLjEwNTQ2OSAwIC0yIDAuODk0NTMxIC0yIDIgcyAwLjg5NDUzMSAyIDIgMiBjIDEuMTAxNTYyIDAgMiAtMC44OTQ1MzEgMiAtMiBzIC0wLjg5ODQzOCAtMiAtMiAtMiB6IG0gMCA2IGMgLTEuMTA1NDY5IDAgLTIgMC44OTQ1MzEgLTIgMiBzIDAuODk0NTMxIDIgMiAyIGMgMS4xMDE1NjIgMCAyIC0wLjg5NDUzMSAyIC0yIHMgLTAuODk4NDM4IC0yIC0yIC0yIHogbSAwIDAiIGZpbGw9IiMyZTM0MzYiLz4KPC9zdmc+Cg=="); + --adwaita-icon-window-close-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJtIDQgNCBoIDEgaCAwLjAzMTI1IGMgMC4yNTM5MDYgMC4wMTE3MTkgMC41MTE3MTkgMC4xMjg5MDYgMC42ODc1IDAuMzEyNSBsIDIuMjgxMjUgMi4yODEyNSBsIDIuMzEyNSAtMi4yODEyNSBjIDAuMjY1NjI1IC0wLjIzMDQ2OSAwLjQ0NTMxMiAtMC4zMDQ2ODggMC42ODc1IC0wLjMxMjUgaCAxIHYgMSBjIDAgMC4yODUxNTYgLTAuMDM1MTU2IDAuNTUwNzgxIC0wLjI1IDAuNzUgbCAtMi4yODEyNSAyLjI4MTI1IGwgMi4yNSAyLjI1IGMgMC4xODc1IDAuMTg3NSAwLjI4MTI1IDAuNDUzMTI1IDAuMjgxMjUgMC43MTg3NSB2IDEgaCAtMSBjIC0wLjI2NTYyNSAwIC0wLjUzMTI1IC0wLjA5Mzc1IC0wLjcxODc1IC0wLjI4MTI1IGwgLTIuMjgxMjUgLTIuMjgxMjUgbCAtMi4yODEyNSAyLjI4MTI1IGMgLTAuMTg3NSAwLjE4NzUgLTAuNDUzMTI1IDAuMjgxMjUgLTAuNzE4NzUgMC4yODEyNSBoIC0xIHYgLTEgYyAwIC0wLjI2NTYyNSAwLjA5Mzc1IC0wLjUzMTI1IDAuMjgxMjUgLTAuNzE4NzUgbCAyLjI4MTI1IC0yLjI1IGwgLTIuMjgxMjUgLTIuMjgxMjUgYyAtMC4yMTA5MzggLTAuMTk1MzEyIC0wLjMwNDY4OCAtMC40Njg3NSAtMC4yODEyNSAtMC43NSB6IG0gMCAwIiBmaWxsPSIjMmUzNDM2Ii8+Cjwvc3ZnPgo="); + --adwaita-icon-window-maximize-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJtIDMuOTg4MjgxIDMuOTkyMTg4IHYgOC4wMTE3MTggaCA4LjAxMTcxOSB2IC04LjAxMTcxOCB6IG0gMiAyIGggNC4wMTE3MTkgdiA0LjAxMTcxOCBoIC00LjAxMTcxOSB6IG0gMCAwIiBmaWxsPSIjMmUzNDM2Ii8+Cjwvc3ZnPgo="); + --adwaita-icon-window-minimize-symbolic: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJtIDQgMTAuMDA3ODEyIGggOCB2IDEuOTg4MjgyIGggLTggeiBtIDAgMCIgZmlsbD0iIzJlMzQzNiIvPgo8L3N2Zz4K"); } + +body { + --adwaita-blue-1: #99c1f1; + --adwaita-blue-2: #62a0ea; + --adwaita-blue-3: #3584e4; + --adwaita-blue-4: #1c71d8; + --adwaita-blue-5: #1a5fb4; + --adwaita-green-1: #8ff0a4; + --adwaita-green-2: #57e389; + --adwaita-green-3: #33d17a; + --adwaita-green-4: #2ec27e; + --adwaita-green-5: #26a269; + --adwaita-yellow-1: #f9f06b; + --adwaita-yellow-2: #f8e45c; + --adwaita-yellow-3: #f6d32d; + --adwaita-yellow-4: #f5c211; + --adwaita-yellow-5: #e5a50a; + --adwaita-orange-1: #ffbe6f; + --adwaita-orange-2: #ffa348; + --adwaita-orange-3: #ff7800; + --adwaita-orange-4: #e66100; + --adwaita-orange-5: #c64600; + --adwaita-red-1: #f66151; + --adwaita-red-2: #ed333b; + --adwaita-red-3: #e01b24; + --adwaita-red-4: #c01c28; + --adwaita-red-5: #a51d2d; + --adwaita-purple-1: #dc8add; + --adwaita-purple-2: #c061cb; + --adwaita-purple-3: #9141ac; + --adwaita-purple-4: #813d9c; + --adwaita-purple-5: #613583; + --adwaita-brown-2: #b5835a; + --adwaita-brown-1: #cdab8f; + --adwaita-brown-3: #986a44; + --adwaita-brown-4: #865e3c; + --adwaita-brown-5: #63452c; + --adwaita-light-1: #ffffff; + --adwaita-light-2: #f6f5f4; + --adwaita-light-3: #deddda; + --adwaita-light-4: #c0bfbc; + --adwaita-light-5: #9a9996; + --adwaita-dark-1: #77767b; + --adwaita-dark-2: #5e5c64; + --adwaita-dark-3: #3d3846; + --adwaita-dark-4: #241f31; + --adwaita-dark-5: #000000; } + body.theme-dark { + --adwaita-accent-color: #78aeed; + --adwaita-accent-bg-color: #3584e4; + --adwaita-accent-fg-color: #ffffff; + --adwaita-destructive-color: #ff7b63; + --adwaita-destructive-bg-color: #c01c28; + --adwaita-destructive-fg-color: #ffffff; + --adwaita-success-color: #8ff0a4; + --adwaita-success-bg-color: #26a269; + --adwaita-success-fg-color: #ffffff; + --adwaita-warning-color: #f8e45c; + --adwaita-warning-bg-color: #cd9309; + --adwaita-warning-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-error-color: #ff7b63; + --adwaita-error-bg-color: #c01c28; + --adwaita-error-fg-color: #ffffff; + --adwaita-window-bg-color: #242424; + --adwaita-window-fg-color: #ffffff; + --adwaita-view-bg-color: #1e1e1e; + --adwaita-view-fg-color: #ffffff; + --adwaita-headerbar-bg-color: #303030; + --adwaita-headerbar-fg-color: #ffffff; + --adwaita-headerbar-border-color: #ffffff; + --adwaita-headerbar-backdrop-color: #242424; + --adwaita-headerbar-shade-color: rgba(0, 0, 0, 0.36); + --adwaita-card-bg-color: rgba(255, 255, 255, 0.08); + --adwaita-card-fg-color: #ffffff; + --adwaita-card-shade-color: rgba(0, 0, 0, 0.36); + --adwaita-dialog-bg-color: #383838; + --adwaita-dialog-fg-color: #ffffff; + --adwaita-popover-bg-color: #383838; + --adwaita-popover-fg-color: #ffffff; + --adwaita-popover-shader-color: rgba(0, 0, 0, 0.36); + --adwaita-shade-color: rgba(0, 0, 0, 0.36); + --adwaita-scrollbar-outline-color: rgba(0, 0, 0, 0.5); } + body.theme-light { + --adwaita-accent-color: #1c71d8; + --adwaita-accent-bg-color: #3584e4; + --adwaita-accent-fg-color: #ffffff; + --adwaita-destructive-color: #c01c28; + --adwaita-destructive-bg-color: #e01b24; + --adwaita-destructive-fg-color: #ffffff; + --adwaita-success-color: #1b8553; + --adwaita-success-bg-color: #2ec27e; + --adwaita-success-fg-color: #ffffff; + --adwaita-warning-color: #9c6e03; + --adwaita-warning-bg-color: #e5a50a; + --adwaita-warning-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-error-color: #c01c28; + --adwaita-error-bg-color: #e01b24; + --adwaita-error-fg-color: #ffffff; + --adwaita-window-bg-color: #fafafa; + --adwaita-window-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-view-bg-color: #ffffff; + --adwaita-view-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-headerbar-bg-color: #ffffff; + --adwaita-headerbar-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-headerbar-border-color: rgba(0, 0, 0, 0.8); + --adwaita-headerbar-backdrop-color: #fafafa; + --adwaita-headerbar-shade-color: rgba(0, 0, 0, 0.12); + --adwaita-card-bg-color: #ffffff; + --adwaita-card-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-card-shade-color: rgba(0, 0, 0, 0.07); + --adwaita-dialog-bg-color: #ffffff; + --adwaita-dialog-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-popover-bg-color: #fafafa; + --adwaita-popover-fg-color: rgba(0, 0, 0, 0.8); + --adwaita-popover-shader-color: rgba(0, 0, 0, 0.07); + --adwaita-shade-color: rgba(0, 0, 0, 0.07); + --adwaita-scrollbar-outline-color: #ffffff; } + +body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux, +body.adwaita-colors-always, +body.adwaita-colors-linux-only.mod-linux { + --titlebar-background: var(--adwaita-headerbar-backdrop-color); + --titlebar-background-focused: var(--adwaita-headerbar-bg-color); + --titlebar-text-color-focused: var(--adwaita-headerbar-fg-color); + --text-normal: var(--adwaita-view-fg-color); } + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.is-focused .sidebar-toggle-button, + body.adwaita-colors-always.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body.adwaita-colors-always.is-focused .sidebar-toggle-button, + body.adwaita-colors-linux-only.mod-linux.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body.adwaita-colors-linux-only.mod-linux.is-focused .sidebar-toggle-button { + --icon-color: var(--adwaita-headerbar-fg-color); + --icon-color-hover: var(--adwaita-headerbar-fg-color); + --icon-color-focused: var(--adwaita-headerbar-fg-color); + --tab-text-color-focused: var(--adwaita-headerbar-fg-color); + --tab-text-color-focused-active-current: var(--adwaita-headerbar-fg-color); } + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.theme-dark, + body.adwaita-colors-always.theme-dark, + body.adwaita-colors-linux-only.mod-linux.theme-dark { + --titlebar-text-color: #919191; + --icon-color: #929292; + --icon-color-hover: #929292; + --icon-color-focused: #929292; + --tab-text-color: #929292; + --tab-text-color-focused: #8a8a8a; + --tab-text-color-focused-active-current: #8a8a8a; + --background-modifier-hover: #323232; } + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.theme-dark.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.theme-dark.is-focused .sidebar-toggle-button, + body.adwaita-colors-always.theme-dark.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body.adwaita-colors-always.theme-dark.is-focused .sidebar-toggle-button, + body.adwaita-colors-linux-only.mod-linux.theme-dark.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body.adwaita-colors-linux-only.mod-linux.theme-dark.is-focused .sidebar-toggle-button { + --background-modifier-hover: #464646; } + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.theme-light, + body.adwaita-colors-always.theme-light, + body.adwaita-colors-linux-only.mod-linux.theme-light { + --titlebar-text-color: #8c8c8c; + --icon-color: #939393; + --icon-color-hover: #939393; + --icon-color-focused: #939393; + --tab-text-color: #939393; + --tab-text-color-focused: #939393; + --tab-text-color-focused-active-current: #939393; + --background-modifier-hover: #f0f0f0; } + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.theme-light.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux.theme-light.is-focused .sidebar-toggle-button, + body.adwaita-colors-always.theme-light.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body.adwaita-colors-always.theme-light.is-focused .sidebar-toggle-button, + body.adwaita-colors-linux-only.mod-linux.theme-light.is-focused .workspace-tabs.mod-top .workspace-tab-header-container, + body.adwaita-colors-linux-only.mod-linux.theme-light.is-focused .sidebar-toggle-button { + --background-modifier-hover: #d8d8d8; } + body:not(.adwaita-colors-always, .adwaita-colors-linux-only, .adwaita-colors-never).mod-linux .titlebar-button.mod-logo:hover, + body.adwaita-colors-always .titlebar-button.mod-logo:hover, + body.adwaita-colors-linux-only.mod-linux .titlebar-button.mod-logo:hover { + background-color: inherit; } + +body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux, +body.adwaita-mod-always, +body.adwaita-mod-linux-only.mod-linux { + --frame-right-space: calc(var(--adwaita-mod-scale) * 120px); + --adwaita-mod-foreground-focus: var(--adwaita-headerbar-fg-color); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.theme-dark, + body.adwaita-mod-always.theme-dark, + body.adwaita-mod-linux-only.mod-linux.theme-dark { + --adwaita-mod-background: #2e2e2e; + --adwaita-mod-background-focus: #444444; + --adwaita-mod-background-hover: #4f4f4f; + --adwaita-mod-background-active: #6e6e6e; + --adwaita-mod-foreground: #929292; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.theme-light, + body.adwaita-mod-always.theme-light, + body.adwaita-mod-linux-only.mod-linux.theme-light { + --adwaita-mod-background: #efefef; + --adwaita-mod-background-focus: #d8d8d8; + --adwaita-mod-background-hover: #cfcfcf; + --adwaita-mod-background-active: #b3b3b3; + --adwaita-mod-foreground: #949494; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-minimize-hide .titlebar-button-container.mod-right .titlebar-button.mod-minimize, + body.adwaita-mod-always.adwaita-window-button-minimize-hide .titlebar-button-container.mod-right .titlebar-button.mod-minimize, + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-minimize-hide .titlebar-button-container.mod-right .titlebar-button.mod-minimize { + display: none; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-maximize-hide .titlebar-button-container.mod-right .titlebar-button.mod-maximize, + body.adwaita-mod-always.adwaita-window-button-maximize-hide .titlebar-button-container.mod-right .titlebar-button.mod-maximize, + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-maximize-hide .titlebar-button-container.mod-right .titlebar-button.mod-maximize { + display: none; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-close-hide .titlebar-button-container.mod-right .titlebar-button.mod-close, + body.adwaita-mod-always.adwaita-window-button-close-hide .titlebar-button-container.mod-right .titlebar-button.mod-close, + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-close-hide .titlebar-button-container.mod-right .titlebar-button.mod-close { + display: none; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-minimize-hide:not(.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide), body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-maximize-hide:not(.adwaita-window-button-close-hide.adwaita-window-button-minimize-hide), body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-close-hide:not(.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide), + body.adwaita-mod-always.adwaita-window-button-minimize-hide:not(.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide), + body.adwaita-mod-always.adwaita-window-button-maximize-hide:not(.adwaita-window-button-close-hide.adwaita-window-button-minimize-hide), + body.adwaita-mod-always.adwaita-window-button-close-hide:not(.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide), + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-minimize-hide:not(.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide), + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-maximize-hide:not(.adwaita-window-button-close-hide.adwaita-window-button-minimize-hide), + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-close-hide:not(.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide) { + --frame-right-space: calc(var(--adwaita-mod-scale) * (120px - 38px)); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide:not(.adwaita-window-button-close-hide), body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide:not(.adwaita-window-button-minimize-hide), body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-close-hide.adwaita-window-button-minimize-hide:not(.adwaita-window-button-maximize-hide), + body.adwaita-mod-always.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide:not(.adwaita-window-button-close-hide), + body.adwaita-mod-always.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide:not(.adwaita-window-button-minimize-hide), + body.adwaita-mod-always.adwaita-window-button-close-hide.adwaita-window-button-minimize-hide:not(.adwaita-window-button-maximize-hide), + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide:not(.adwaita-window-button-close-hide), + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide:not(.adwaita-window-button-minimize-hide), + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-close-hide.adwaita-window-button-minimize-hide:not(.adwaita-window-button-maximize-hide) { + --frame-right-space: calc(var(--adwaita-mod-scale) * (120px - 38px - 38px)); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide, + body.adwaita-mod-always.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide, + body.adwaita-mod-linux-only.mod-linux.adwaita-window-button-minimize-hide.adwaita-window-button-maximize-hide.adwaita-window-button-close-hide { + --frame-right-space: calc(var(--adwaita-mod-scale) * (120px - 38px - 38px - 38px)); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right, + body.adwaita-mod-always .titlebar-button-container.mod-right, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right { + transform: scale(var(--adwaita-mod-scale)); + margin-right: var(--adwaita-mod-right-margin); + transform-origin: right; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button { + height: 24px; + width: 24px; + border-radius: 12px; + padding: 0; + margin: auto 0 auto 14px; + background: var(--adwaita-mod-background); + color: var(--adwaita-mod-foreground); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-minimize svg, body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-maximize svg, body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-close svg, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button.mod-minimize svg, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button.mod-maximize svg, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button.mod-close svg, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-minimize svg, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-maximize svg, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-close svg { + display: none; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button::after, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button::after, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button::after { + content: ''; + background-color: currentColor; + width: 16px; + height: 16px; + margin: auto; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-minimize::after, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button.mod-minimize::after, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-minimize::after { + -webkit-mask-image: var(--adwaita-icon-window-minimize-symbolic); + mask-image: var(--adwaita-icon-window-minimize-symbolic); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-maximize::after, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button.mod-maximize::after, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-maximize::after { + -webkit-mask-image: var(--adwaita-icon-window-maximize-symbolic); + mask-image: var(--adwaita-icon-window-maximize-symbolic); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-close::after, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button.mod-close::after, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button.mod-close::after { + -webkit-mask-image: var(--adwaita-icon-window-close-symbolic); + mask-image: var(--adwaita-icon-window-close-symbolic); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button:hover, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button:hover, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button:hover { + background: var(--adwaita-mod-background) !important; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .titlebar-button-container.mod-right .titlebar-button svg, + body.adwaita-mod-always .titlebar-button-container.mod-right .titlebar-button svg, + body.adwaita-mod-linux-only.mod-linux .titlebar-button-container.mod-right .titlebar-button svg { + width: 12px; + height: 12px; + margin: auto; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.is-focused .titlebar-button-container.mod-right .titlebar-button, + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.is-focused .modal-close-button, + body.adwaita-mod-always.is-focused .titlebar-button-container.mod-right .titlebar-button, + body.adwaita-mod-always.is-focused .modal-close-button, + body.adwaita-mod-linux-only.mod-linux.is-focused .titlebar-button-container.mod-right .titlebar-button, + body.adwaita-mod-linux-only.mod-linux.is-focused .modal-close-button { + background: var(--adwaita-mod-background-focus); + color: var(--adwaita-mod-foreground-focus); } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.is-focused .titlebar-button-container.mod-right .titlebar-button:hover, + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.is-focused .modal-close-button:hover, + body.adwaita-mod-always.is-focused .titlebar-button-container.mod-right .titlebar-button:hover, + body.adwaita-mod-always.is-focused .modal-close-button:hover, + body.adwaita-mod-linux-only.mod-linux.is-focused .titlebar-button-container.mod-right .titlebar-button:hover, + body.adwaita-mod-linux-only.mod-linux.is-focused .modal-close-button:hover { + background: var(--adwaita-mod-background-hover) !important; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.is-focused .titlebar-button-container.mod-right .titlebar-button:active, + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux.is-focused .modal-close-button:active, + body.adwaita-mod-always.is-focused .titlebar-button-container.mod-right .titlebar-button:active, + body.adwaita-mod-always.is-focused .modal-close-button:active, + body.adwaita-mod-linux-only.mod-linux.is-focused .titlebar-button-container.mod-right .titlebar-button:active, + body.adwaita-mod-linux-only.mod-linux.is-focused .modal-close-button:active { + background: var(--adwaita-mod-background-active) !important; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .modal-close-button, + body.adwaita-mod-always .modal-close-button, + body.adwaita-mod-linux-only.mod-linux .modal-close-button { + height: 24px; + width: 24px; + border-radius: 12px; + color: var(--adwaita-mod-foreground); + background: var(--adwaita-mod-background); + transform: scale(var(--adwaita-mod-scale)); + transform-origin: right; } + body:not(.adwaita-mod-always, .adwaita-mod-linux-only, .adwaita-mod-never).mod-linux .modal-close-button:before, + body.adwaita-mod-always .modal-close-button:before, + body.adwaita-mod-linux-only.mod-linux .modal-close-button:before { + content: ''; + display: block; + width: 16px; + height: 16px; + margin: auto; + top: 50%; + position: absolute; + transform: translateY(-50%); + -webkit-mask-image: var(--adwaita-icon-window-close-symbolic); + mask-image: var(--adwaita-icon-window-close-symbolic); + background-color: currentColor; } + +body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux, +body.adwaita-tabs-always, +body.adwaita-tabs-linux-only.mod-linux { + --tab-radius-active: 4px; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux:not(.adwaita-tabs-short), + body.adwaita-tabs-always:not(.adwaita-tabs-short), + body.adwaita-tabs-linux-only.mod-linux:not(.adwaita-tabs-short) { + --tab-width: 10000px; + /* infinite width */ + --tab-max-width: none; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux.theme-dark, + body.adwaita-tabs-always.theme-dark, + body.adwaita-tabs-linux-only.mod-linux.theme-dark { + --tab-background-active: #323232; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux.theme-dark.is-focused, + body.adwaita-tabs-always.theme-dark.is-focused, + body.adwaita-tabs-linux-only.mod-linux.theme-dark.is-focused { + --tab-background-active: #464646; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux.theme-light, + body.adwaita-tabs-always.theme-light, + body.adwaita-tabs-linux-only.mod-linux.theme-light { + --tab-background-active: #f0f0f0; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux.theme-light.is-focused, + body.adwaita-tabs-always.theme-light.is-focused, + body.adwaita-tabs-linux-only.mod-linux.theme-light.is-focused { + --tab-background-active: #d8d8d8; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .workspace-tab-header-container .workspace-tab-header-container-inner, + body.adwaita-tabs-always .workspace-tab-header-container .workspace-tab-header-container-inner, + body.adwaita-tabs-linux-only.mod-linux .workspace-tab-header-container .workspace-tab-header-container-inner { + --tab-outline-width: 0; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .workspace-tab-header-container .workspace-tab-header-new-tab, + body.adwaita-tabs-always .workspace-tab-header-container .workspace-tab-header-new-tab, + body.adwaita-tabs-linux-only.mod-linux .workspace-tab-header-container .workspace-tab-header-new-tab { + margin-right: var(--size-4-1); } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .workspace-tab-header-new-tab, + body.adwaita-tabs-always .workspace-tab-header-new-tab, + body.adwaita-tabs-linux-only.mod-linux .workspace-tab-header-new-tab { + order: 1; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .workspace-tab-header-tab-list, + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .sidebar-toggle-button.mod-right, + body.adwaita-tabs-always .workspace-tab-header-tab-list, + body.adwaita-tabs-always .sidebar-toggle-button.mod-right, + body.adwaita-tabs-linux-only.mod-linux .workspace-tab-header-tab-list, + body.adwaita-tabs-linux-only.mod-linux .sidebar-toggle-button.mod-right { + order: 2; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header { + padding: 0; + margin: 5px 3px 5px 2px; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active { + color: var(--tab-text-color-focused); } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:before, body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:after, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:before, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:after, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:before, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:after { + content: none; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner::after, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner::after, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner::after { + right: -6px; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner-title, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner-title, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner-title { + padding-left: 20px; + text-align: center; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:last-child .workspace-tab-header-inner::after, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:last-child .workspace-tab-header-inner::after, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:last-child .workspace-tab-header-inner::after { + content: none; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner-close-button, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner-close-button, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header .workspace-tab-header-inner-close-button { + opacity: 0; + display: flex; } + body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active .workspace-tab-header-inner-close-button, body:not(.adwaita-tabs-always, .adwaita-tabs-linux-only, .adwaita-tabs-never).mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header :hover .workspace-tab-header-inner-close-button, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active .workspace-tab-header-inner-close-button, + body.adwaita-tabs-always .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header :hover .workspace-tab-header-inner-close-button, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active .workspace-tab-header-inner-close-button, + body.adwaita-tabs-linux-only.mod-linux .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header :hover .workspace-tab-header-inner-close-button { + opacity: 1; } + +body:not(.adwaita-font-always, .adwaita-font-linux-only, .adwaita-font-never).mod-linux, +body.adwaita-font-always, +body.adwaita-font-linux-only.mod-linux { + --titlebar-height: 45px; + --font-interface-theme: Cantarell; + --font-ui-small: 15px; + --h1-weight: 900; } + body:not(.adwaita-font-always, .adwaita-font-linux-only, .adwaita-font-never).mod-linux .titlebar-text, + body.adwaita-font-always .titlebar-text, + body.adwaita-font-linux-only.mod-linux .titlebar-text { + top: 10px; + height: auto; } + +body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux, +body.adwaita-icons-always, +body.adwaita-icons-linux-only.mod-linux { + --titlebar-height: 45px; + --header-height: 46px; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux svg.logo-wireframe, + body.adwaita-icons-always svg.logo-wireframe, + body.adwaita-icons-linux-only.mod-linux svg.logo-wireframe { + stroke-width: 45; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux.is-frameless:not(.is-hidden-frameless) .app-container, + body.adwaita-icons-always.is-frameless:not(.is-hidden-frameless) .app-container, + body.adwaita-icons-linux-only.mod-linux.is-frameless:not(.is-hidden-frameless) .app-container { + margin-top: -9px; + height: calc(100% + 9px); } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .sidebar-toggle-button, + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-new-tab, + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-tab-list, + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .mod-left-split .workspace-tabs .workspace-tab-header-container-inner, + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .mod-right-split .workspace-tabs .workspace-tab-header-container-inner, + body.adwaita-icons-always .sidebar-toggle-button, + body.adwaita-icons-always .workspace-tab-header-new-tab, + body.adwaita-icons-always .workspace-tab-header-tab-list, + body.adwaita-icons-always .mod-left-split .workspace-tabs .workspace-tab-header-container-inner, + body.adwaita-icons-always .mod-right-split .workspace-tabs .workspace-tab-header-container-inner, + body.adwaita-icons-linux-only.mod-linux .sidebar-toggle-button, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-new-tab, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-tab-list, + body.adwaita-icons-linux-only.mod-linux .mod-left-split .workspace-tabs .workspace-tab-header-container-inner, + body.adwaita-icons-linux-only.mod-linux .mod-right-split .workspace-tabs .workspace-tab-header-container-inner { + margin-top: 0; + padding-top: 0; + padding-bottom: 0; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .mod-left-split .workspace-tabs .workspace-tab-header, + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .mod-right-split .workspace-tabs .workspace-tab-header, + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .sidebar-toggle-button .clickable-icon, + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tabs.mod-top .workspace-tab-header-container .clickable-icon, + body.adwaita-icons-always .mod-left-split .workspace-tabs .workspace-tab-header, + body.adwaita-icons-always .mod-right-split .workspace-tabs .workspace-tab-header, + body.adwaita-icons-always .sidebar-toggle-button .clickable-icon, + body.adwaita-icons-always .workspace-tabs.mod-top .workspace-tab-header-container .clickable-icon, + body.adwaita-icons-linux-only.mod-linux .mod-left-split .workspace-tabs .workspace-tab-header, + body.adwaita-icons-linux-only.mod-linux .mod-right-split .workspace-tabs .workspace-tab-header, + body.adwaita-icons-linux-only.mod-linux .sidebar-toggle-button .clickable-icon, + body.adwaita-icons-linux-only.mod-linux .workspace-tabs.mod-top .workspace-tab-header-container .clickable-icon { + height: 34px; + min-width: 34px; + margin-top: auto; + margin-bottom: auto; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .sidebar-toggle-button.mod-left .clickable-icon svg, + body.adwaita-icons-always .sidebar-toggle-button.mod-left .clickable-icon svg, + body.adwaita-icons-linux-only.mod-linux .sidebar-toggle-button.mod-left .clickable-icon svg { + display: none; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .sidebar-toggle-button.mod-left .clickable-icon::after, + body.adwaita-icons-always .sidebar-toggle-button.mod-left .clickable-icon::after, + body.adwaita-icons-linux-only.mod-linux .sidebar-toggle-button.mod-left .clickable-icon::after { + content: ''; + background-color: currentColor !important; + -webkit-mask-image: var(--adwaita-icon-sidebar-show-symbolic); + mask-image: var(--adwaita-icon-sidebar-show-symbolic); + width: 16px; + height: 16px; + margin: auto; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .sidebar-toggle-button.mod-right .clickable-icon svg, + body.adwaita-icons-always .sidebar-toggle-button.mod-right .clickable-icon svg, + body.adwaita-icons-linux-only.mod-linux .sidebar-toggle-button.mod-right .clickable-icon svg { + display: none; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .sidebar-toggle-button.mod-right .clickable-icon::after, + body.adwaita-icons-always .sidebar-toggle-button.mod-right .clickable-icon::after, + body.adwaita-icons-linux-only.mod-linux .sidebar-toggle-button.mod-right .clickable-icon::after { + content: ''; + background-color: currentColor !important; + -webkit-mask-image: var(--adwaita-icon-sidebar-show-right-symbolic); + mask-image: var(--adwaita-icon-sidebar-show-right-symbolic); + width: 16px; + height: 16px; + margin: auto; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-new-tab .clickable-icon svg, + body.adwaita-icons-always .workspace-tab-header-new-tab .clickable-icon svg, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-new-tab .clickable-icon svg { + display: none; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-new-tab .clickable-icon::after, + body.adwaita-icons-always .workspace-tab-header-new-tab .clickable-icon::after, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-new-tab .clickable-icon::after { + content: ''; + background-color: currentColor !important; + -webkit-mask-image: var(--adwaita-icon-tab-new-symbolic); + mask-image: var(--adwaita-icon-tab-new-symbolic); + width: 16px; + height: 16px; + margin: auto; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-tab-list .clickable-icon svg, + body.adwaita-icons-always .workspace-tab-header-tab-list .clickable-icon svg, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-tab-list .clickable-icon svg { + display: none; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-tab-list .clickable-icon::after, + body.adwaita-icons-always .workspace-tab-header-tab-list .clickable-icon::after, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-tab-list .clickable-icon::after { + content: ''; + background-color: currentColor !important; + -webkit-mask-image: var(--adwaita-icon-go-down-symbolic); + mask-image: var(--adwaita-icon-go-down-symbolic); + width: 16px; + height: 16px; + margin: auto; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-inner-close-button svg, + body.adwaita-icons-always .workspace-tab-header-inner-close-button svg, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-inner-close-button svg { + display: none; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header-inner-close-button::after, + body.adwaita-icons-always .workspace-tab-header-inner-close-button::after, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header-inner-close-button::after { + content: ''; + background-color: currentColor !important; + -webkit-mask-image: var(--adwaita-icon-window-close-symbolic); + mask-image: var(--adwaita-icon-window-close-symbolic); + width: 16px; + height: 16px; + margin: auto; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header[data-type="file-explorer"] .workspace-tab-header-inner-icon svg, + body.adwaita-icons-always .workspace-tab-header[data-type="file-explorer"] .workspace-tab-header-inner-icon svg, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header[data-type="file-explorer"] .workspace-tab-header-inner-icon svg { + display: none; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header[data-type="file-explorer"] .workspace-tab-header-inner-icon::after, + body.adwaita-icons-always .workspace-tab-header[data-type="file-explorer"] .workspace-tab-header-inner-icon::after, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header[data-type="file-explorer"] .workspace-tab-header-inner-icon::after { + content: ''; + background-color: currentColor !important; + -webkit-mask-image: var(--adwaita-icon-folder-visiting-symbolic); + mask-image: var(--adwaita-icon-folder-visiting-symbolic); + width: 16px; + height: 16px; + margin: auto; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header[data-type="search"] .workspace-tab-header-inner-icon svg, + body.adwaita-icons-always .workspace-tab-header[data-type="search"] .workspace-tab-header-inner-icon svg, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header[data-type="search"] .workspace-tab-header-inner-icon svg { + display: none; } + body:not(.adwaita-icons-always, .adwaita-icons-linux-only, .adwaita-icons-never).mod-linux .workspace-tab-header[data-type="search"] .workspace-tab-header-inner-icon::after, + body.adwaita-icons-always .workspace-tab-header[data-type="search"] .workspace-tab-header-inner-icon::after, + body.adwaita-icons-linux-only.mod-linux .workspace-tab-header[data-type="search"] .workspace-tab-header-inner-icon::after { + content: ''; + background-color: currentColor !important; + -webkit-mask-image: var(--adwaita-icon-folder-saved-search-symbolic); + mask-image: var(--adwaita-icon-folder-saved-search-symbolic); + width: 16px; + height: 16px; + margin: auto; } diff --git a/content/notes/.obsidian/workspace.json b/content/notes/.obsidian/workspace.json new file mode 100644 index 0000000..e01c86c --- /dev/null +++ b/content/notes/.obsidian/workspace.json @@ -0,0 +1,199 @@ +{ + "main": { + "id": "5324373015726ba8", + "type": "split", + "children": [ + { + "id": "da1c1c5ba8d6b94f", + "type": "tabs", + "children": [ + { + "id": "ab03f7100c1ce0fb", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "drafts/hardware-tools.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "hardware-tools" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "eb9752450aad8905", + "type": "split", + "children": [ + { + "id": "4162aa8f7241215d", + "type": "tabs", + "children": [ + { + "id": "b73f137a8a755c19", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "9326f66eb4ea3558", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + }, + { + "id": "22ea3aa7ebecbacb", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "f049c1d8215eafd9", + "type": "split", + "children": [ + { + "id": "0455a82f86b09797", + "type": "tabs", + "children": [ + { + "id": "3a41ad6c5fed23f5", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "4a36bf58b19c0cce", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "adbc09def111b239", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "91a2b2f8427bd50b", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false, + "obsidian-importer:Open Importer": false, + "table-editor-obsidian:Advanced Tables Toolbar": false + } + }, + "active": "ab03f7100c1ce0fb", + "lastOpenFiles": [ + "drafts/nvim.md", + "drafts/rust.md", + "drafts/swift.md", + "drafts/TODO.md", + "drafts/Untitled.md", + "drafts/hardware-tools.md", + "drafts/macOS.md", + "ready/algorithms_and_data/index.md", + "ready/binary_operations/index.md", + "ready/cpu_architecture/index.md", + "ready/databases/index.md", + "ready/logic_gates/index.md", + "ready/memory/index.md", + "ready/tmux/index.md", + "ready/transistors/index.md", + "ready/c-language.md", + "ready/c-snippets.md", + "ready/compiling.md", + "ready/diodes.md", + "ready/encryption.md", + "ready/flask.md", + "ready/gdb.md", + "ready/git.md", + "ready/html.md", + "ready/http.md", + "ready/https-ssl-certs.md" + ] +} \ No newline at end of file diff --git a/content/notes/drafts/TODO.md b/content/notes/drafts/TODO.md new file mode 100644 index 0000000..686bae5 --- /dev/null +++ b/content/notes/drafts/TODO.md @@ -0,0 +1,16 @@ +--- +draft: true +--- +In draft folder? (checkbox) +- [x] Linux Architecture / Linux +- [x] Assembly +- [x] Rust +- [x] Swift +- [x] Lua +- [ ] JS +- [ ] CSS +- [ ] Firewall +- [x] macOS +- [ ] FreeBSD +- [x] Neovim, vim bindings, text editor +- [x] Hardware Debug/Repair Tools (maybe integrate JCionx page?) diff --git a/content/notes/drafts/_Templates/base.md b/content/notes/drafts/_Templates/base.md new file mode 100644 index 0000000..efadfda --- /dev/null +++ b/content/notes/drafts/_Templates/base.md @@ -0,0 +1,8 @@ +--- +title: "{{Title}}" +description: +draft: true +tags: +author: TrudeEH +showToc: true +--- diff --git a/content/notes/drafts/assembly.md b/content/notes/drafts/assembly.md new file mode 100644 index 0000000..77f39bc --- /dev/null +++ b/content/notes/drafts/assembly.md @@ -0,0 +1,47 @@ +--- +tags: + - computer-science + - notes +author: TrudeEH +draft: true +showToc: true +title: Assembly +--- + +#todo + +## Assembler/Compiler + +- `gcc` GNU C Compiler (The package includes `as` (assembler) and `ld` (linker)) + +```Shell +as -o # Assemble +gcc -o -nostdlib -static # Link using gcc +ld # Link using ld +``` + +## Hello World + +```Assembly +.global _start +.intel_syntax noprefix +_start: + // sys_write (Print to stdout) + mov rax, 1 + mov rdi, 1 + lea rsi, [hello_world] + // Buffer length + mov rdx, 14 + syscall + // sys_exit (safely end the program with a re turn code) + mov rax, 60 + // Exit with code 0 + mov rdi, 0 + syscall + +hello_world: + // ASCII, zero delimited + .asciz "Hello, World!\n" +``` + +To know which system calls we can execute and which values needed for the registers, refer to [this table](https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/). diff --git a/content/notes/drafts/hardware-tools.md b/content/notes/drafts/hardware-tools.md new file mode 100644 index 0000000..3453817 --- /dev/null +++ b/content/notes/drafts/hardware-tools.md @@ -0,0 +1,19 @@ +--- +title: "hardware-tools" +description: +draft: true +tags: +author: TrudeEH +showToc: true +--- + + +Scrcpy + +scrcpy —otg + +scrcpy + +ADB + +adb kill-server diff --git a/content/notes/drafts/linux/index.md b/content/notes/drafts/linux/index.md new file mode 100644 index 0000000..f0452a3 --- /dev/null +++ b/content/notes/drafts/linux/index.md @@ -0,0 +1,62 @@ +--- +tags: + - notes + - os +author: TrudeEH +draft: true +showToc: true +title: Linux +--- +#todo + +## Troubleshooting + +- Read error logs from the last session + +```Shell +sudo journalctl -b -1 -r -p err +``` + +## Disk Encryption + +### Full Disk Encryption + +The exact steps to fully encrypt a disk varies depending on the distribution, and can only be done at the install time. +On Ubuntu, for example, you can enable it in the "Advanced Features" toggle, at the disk selection stage. +![image93.png](image93.png) + +### Encrypt Home Directory + +```Bash +sudo apt install ecryptfs-utils cryptsetup # Install dependencies +# Create temporary admin account +sudo adduser temp_user # Add new user +sudo usermod -aG sudo temp_user # Give the new user sudo perms +``` + +Now, log out of the current user and switch to `temp_user`. + +> [!important] Do not "switch accounts", the current user cannot be active while its home directory is being encrypted. +On the `temp_user` account, run the following command, then, log out and return to your user. + +```Bash +sudo ecryptfs-migrate-home -u +``` + +After logging in, you might be greeted with a pop-up with the title "Update Information". Click on "Run this action now" and provide your password. +If you already closed the pop-up, run the command below, and provide your password. + +```Bash +encryptfs-unwrap-passphrase +``` + +You will receive a string of text. This will be your recovery password, needed to mount the home folder from another machine. + +### Encrypt Swap + +```Bash +swapon -s # Check if you have a swap partition +sudo ecryptfs-setup-swap # Encrypt swap +``` + +You may get an error: `swapon: cannot open /dev/mapper/cryptswap1: No such file or directory`. If you do, reboot and check if the swap partition is encrypted with the `swapon -s` command. diff --git a/content/notes/drafts/linux_architecture/EXT2.png b/content/notes/drafts/linux_architecture/EXT2.png new file mode 100644 index 0000000..9b17e16 Binary files /dev/null and b/content/notes/drafts/linux_architecture/EXT2.png differ diff --git a/content/notes/drafts/linux_architecture/EXT3.png b/content/notes/drafts/linux_architecture/EXT3.png new file mode 100644 index 0000000..96fa2e2 Binary files /dev/null and b/content/notes/drafts/linux_architecture/EXT3.png differ diff --git a/content/notes/drafts/linux_architecture/image5.png b/content/notes/drafts/linux_architecture/image5.png new file mode 100644 index 0000000..926c43d Binary files /dev/null and b/content/notes/drafts/linux_architecture/image5.png differ diff --git a/content/notes/drafts/linux_architecture/image6.png b/content/notes/drafts/linux_architecture/image6.png new file mode 100644 index 0000000..16b09e5 Binary files /dev/null and b/content/notes/drafts/linux_architecture/image6.png differ diff --git a/content/notes/drafts/linux_architecture/image7.png b/content/notes/drafts/linux_architecture/image7.png new file mode 100644 index 0000000..f0330dc Binary files /dev/null and b/content/notes/drafts/linux_architecture/image7.png differ diff --git a/content/notes/drafts/linux_architecture/index.md b/content/notes/drafts/linux_architecture/index.md new file mode 100644 index 0000000..263b860 --- /dev/null +++ b/content/notes/drafts/linux_architecture/index.md @@ -0,0 +1,197 @@ +--- +title: Linux Architecture +description: +date: 2025-02-17T08:32:33+00:00 +draft: true +tags: + - computer-science + - os +author: TrudeEH +showToc: true +--- + +## Kernel + +Linux is a kernel: the core of an operative system. OSes that use the Linux kernel are called Linux Distros (Distributions). +A Kernel does the following: +- Executes first when the computer boots up and has full access to the hardware. +- Implements drivers to control peripherals, network devices and other resources. +- Runs other programs (userland software) and allows them to communicate with each other and with the hardware. + +### Syscalls + +To "ask" the kernel to perform a hardware task, or to access the file system or other resources, a program executes a syscall. +For example (x64 assembly): + +```Assembly +// sys_write (Print to stdout) +mov rax, 1 +mov rdi, 1 +lea rsi, [hello_world] +// Buffer length +mov rdx, 14 +syscall +``` + +This snippet implements a syscall that prints text to `stdout`, usually a terminal window. + +### Processes + +A program is an executable containing machine code. When a computer executes a program, it is first loaded into memory. +![image5](image5.png) +A program loaded in memory is a process. + +> Note: For interpreted languages, the interpreter creates a process that executes the code directly. + +### Modules + +## Devices + +### Device Drivers + +Once a new device is plugged in, it attempts to call the Kernel, which identifies that device. The Kernel then loads the appropriate driver. Drivers are Kernel Modules used to interact with hardware. Once the required module is loaded, the Kernel calls the `udevadm` program, that creates a device file in the `/dev` directory. +Whenever there is a read/write operation to that device, the Kernel intercepts the request and calls the driver function instead, which implements that operation, and this is why a driver must implement all possible file operations. +Not all devices control hardware. For example, `/dev/random` generates a random number. +In the Linux Kernel, there are **Character Type Devices** and **Block Type Devices.** +A Character Device provides an endless stream or characters that can be read one at a time. This includes a keyboard and sensors, for example. Block Devices provide data as blocks of a defined size. These include disks and USB drives. +The only exceptions are Network Devices. Network data cannot be manipulated with file operations, so they are handled differently in the kernel. + +### Network Devices + +If a network card is plugged in, like any other device, it communicates with the Kernel, and the Kernel loads the appropriate Kernel Module that contains the driver. After that, the driver adds new entries to the Kernel's `NICs`, which are data structures stored in memory. The driver then creates configuration files in the `/sys/class/net/` directory. These are not device files, just configuration files. Different network cards can have multiple network interfaces, and even multiple ports to connect to an Ethernet cable, for example. Each interface gets its own folder, as they can have different configurations. Editing these files can change device configurations, but the only way to actually use these interfaces is by calling the Kernel directly. The Kernel can, in turn, create a virtual file in memory, which is then passed as an ID to the application. The application still receives it as a regular file ID (File Descriptor), like with any other device, but it works differently from the Kernel's perspective. +A GPU works similarly, and although the Kernel exposes these devices as files, they are not real files in the filesystem, as doing so would slow them down immensely. + +### GPUs + +At the startup time, a device file is generated for the GPU, like any other device. +When an application attempts to use the GPU, it first searches for a **Graphics API** to use with it. Examples include Vulkan, OpenGL and DirectX. +These APIs are code functions that forward the requests to a library such as `Mesa`. + +`Mesa` then calls the Kernel's DRM (Direct Rendering Engine), which then calls the GPU driver to provide GPU capabilities. +The GPU still has a device file, which is used by the Kernel's DRM and Mesa, but most commands are delivered to the GPU driver directly. + +## File Systems + +> This section is heavily simplified and only covers `EXT2-4`. + +### Concepts + +- An `inode` provides the following information: + - Pointer to the file + - Creation date / Modified times + - Permissions +- A `directory (table)` contains the data before the current directory, the directory itself, and every file inside that directory. +- A `block` is the standard data unit for data in a hard drive. (Same size as memory pages. Ex `x86` CPU would use `4 KB` as the block size.) + + +### EXT2 + +Uses linked lists to store and lookup data, to keep the implementation of the filesystem itself as simple as possible. A simple filesystem makes it easier to repair (or skip) broken sectors on the hard drive. + +#### Partition Layout + +![EXT2](EXT2.png) + +### EXT3 + +#### Journal + +`EXT3` implements a journal to act as a buffer after a crash. If any operation in the journal fails, because it was logged, the filesystem is able to recover and finish any pending operations quickly, and not lose data. `EXT2` had another issue, where if an opened directory were deleted, its `inode` wouldn't be deleted, leaving an orphaned, empty `inode` on the filesystem. If the program holding it was to be closed, the `inode` would be deleted, but in the event of a crash, the `inode` would be left in the filesystem, with no way to be freed. + +#### HTrees + +`EXT3` can also use a [index](ready/algorithms_and_data/index.md) instead of a linked list to store directory entries, making lookup times much faster. To build the HTree, all filenames are hashed and ordered, making the implementation more complex. This feature is disabled by default. + +#### Scalability + +Before, only one core could write to the *superblock* at a time, but `EXT3` updates `inode` and `block` count at the *block group descrip_t_or* level. The superblock is only updated through a system call: `statfs()`, or if the filesystem is unmounted. +`EXT3` also removed *big kernel locks* (deprecated feature that added the ability to freeze the kernel), and `sleep_on()`, which was replaced with `wait_event()`, preventing infinite loops. +These patches improved multicore performance by over 10x. + +#### Preallocation / Reservation + +Writing two files simultaneously can create noncontinuous space. +![image6](image6.png) +Because `EXT3` was designed to be used with HDDs, and separate portions of a file would slow down read speeds, `EXT3` implemented a preallocation/reservation system. +Inside the block bitmap, a few extra blocks were preallocated, storing both files in separate locations. +![image7](image7.png) +Instead of `EXT2`, where errors were corrected directly in the hard drive, `EXT3` reserves space for each specific `inode` in memory. In the event of a crash, all data would be stored in memory, and thus, not corrupting the HDD itself. + +#### Online Resizer + +`EXT3` also implements a protocol to support `LVM`, which allows for many disks to be used as a single partition. The largest possible space `EXT3` supports without patches is 16 GB. + +#### Partition Layout + +![EXT3](EXT3.png) + +### EXT4 + +#### Larger FS + +`EXT3` can only support up to 16 TB. This is why `EXT4` was created. +Instead of ==32 bits== capacity to count blocks, `EXT4` divides each entry in the block descriptor table in two parts: An upper, and a lower entry. This lower entry extends the upper one, and since each supports up to ==32 bits==, the total supported block count (in the block descriptor table) rises to ==64 bits== (16 TB → 1,000,000,000 TB). + +#### Extents + +Instead of using block mapping (the filesystem allocates blocks individually for each file), which can lead to fragmentation, `EXT4` uses **extents**, a range of contiguous blocks, allocated to each file. +This uses a 48 bit system, which limits the FS capacity to 1 EB (1,000,000 TB). +Each extent can point to 128 MB of data, or 1 block group. + +#### Compatibility + +The `EXT4` driver supports `EXT3` as well, and so, the Linux kernel only uses the `EXT2` and `EXT4` drivers. The `EXT3` driver was removed as the new one is more performant. + +#### HTrees + +HTrees are now enabled by default, allowing up to 10 million subdirectories. However, `EXT4` implements a Three Level HTree, which can be enabled using the `large_dir` flag, and extends this limit to 2 Billion subdirectories. + +#### Fast FS Check + +The `big_itable_unused` field was added to the block descriptor table, allowing for fast filesystem checks and error correction, as well as some other improvements. + +#### Multiblock Allocation + +Previously, each block needed one call to be allocated. `EXT4` added support for multi-block allocation, which means that only one call is needed to allocate multiple blocks. + +#### Delayed Allocation + +Every write command is delayed for as long as possible, making it so that changes can be made in memory before they affect (and possible fragment) the actual drive. + +#### Persistent PreAllocaition + +The FS can now be called to preallocate an empty extent, so, once that file is populated, it stays as a contiguous space. + +#### Metadata Checksums + +Metadata is checked often, which helps find any issues with the file system, as each data structure is now properly 'documented'. + +#### Better Times + +- A creation time was added; +- The time precision was increased to nanoseconds instead of only seconds; +- The maximum supported time was increased as well (the standard UNIX time can only go up to 2038). + +#### Extended Attributes + +The filesystem can also be customized with new entries at the end of each `inode`. + +#### Quotas + +`EXT4` also supports adding limits to the size of a file, or even multiple files spread across the filesystem. + +#### Barriers + +Some hard drives have caches, which impact the journal, sometimes causing it to be written after the cache, which would create conflicts. To fix this issue, `EXT4` creates a 'barrier', preventing the disk from writing data before the journal is written to the drive. This feature impacts performance, but is also very needed. + +#### Flexible Block Groups + +Groups blocks together, isolating chucks to write data on, which helps make data more contiguous. + +#### Meta Block Groups + +If the whole filesystem was only a single block group, it would max out at 256 TB of total data. Using meta block groups, this limit is increased to 32 bits of block group descriptor, which makes the **total capacity of the filesystem** ==**512 PB**==. + +#### Partition Layout + +[https://maplecircuit.dev/linux/fs/ext/ext4.html](https://maplecircuit.dev/linux/fs/ext/ext4.html) diff --git a/content/notes/drafts/lua.md b/content/notes/drafts/lua.md new file mode 100644 index 0000000..4d66377 --- /dev/null +++ b/content/notes/drafts/lua.md @@ -0,0 +1,191 @@ +--- +Status: Planned +Created by: Trude EH +tags: + - notes + - programming +author: TrudeEH +draft: true +searchHidden: false +showToc: true +title: Lua +--- +Embedded language. + #todo + +## Comments + +```Lua +-- One-Line comment +--[[ Multi-line + comment +--]] +``` + +## Simple Literals + +```Lua +local number = 5 +local string = "hello, world" +local single = 'same as using \"' +local multiline = [[ Multi +line +string ]] +local yes, no = true, false +local nothing = nil +``` + +## Functions + +Functions can be stored as values. + +```Lua +local function hello(name) + print("Hello", name) +end +local greet = function(name) + -- .. is string concaternation + print("Hello " .. name .. "!") +end +-- Calling a function +greet("Trude") +greet "Trude" +``` + +Functions can also return other functions. + +```Lua +local high = function(value) + return function(value2) + return value + value2 + end +end +local add_one = high(1) +print("1 + 2 -> ", add_one(2)) +``` + +Functions can return multiple values. + +```Lua +local return_four_values = function() + return 1, 2, 3, 4 +end +first, second, third = return_four_values() -- "4" was discarded. +``` + +Variable arguments. + +```Lua +local variable_arguments = function( ... ) + local arguments = { ... } + for i, v in ipairs({ ... }) do print(i, v) end +end +print(variable_arguments("this", "is", "a", "test")) +``` + +## Tables + +Lua's only data structure. (Also used for maps and lists) + +### As lists… + +```Lua +local list = { "first", 2, false, function() print("Fourth") end } +print("Lua is 1-indexed:", list[1]) +``` + +### As maps… + +```Lua +local t = { + literal_key = "a string", + ["an expression"] = "also works", + [function() end] = true +} +print("literal_key : ", t.literal_key) +print("an expression : ", t["an expression"] +print("function() end : ", t[function() end]) -- nothing will be printed here, because each function definition points to a different memory address. +``` + +### Colon Functions + +```Lua +local T = {} +function T.something(self, ... ) end +function T:something( ... ) end -- Same as the previous line +``` + +### Metatables + +```Lua +local vector_mt = {} +vector_mt.__add = function(left, right) + return setmetatable({ + left[1] + right[1], + left[2] + right[2], + left[3] + right[3] + }, vector_mt) +end +local v1 = setmetatable({ 3, 1, 5 }, vector_mt) +local v2 = setmetatable({ -3, 2, 2}, vector_mt) +local v3 = v1 + v2 -- normally would produce an error, but doesn't, since the __add keyword was used. +print(v3[1], v3[2], v3[3]) +``` + +## Control Flow + +### For + +#### Lists + +```Lua +local favs = { "ThePrimeagen", "ctt", "NoBoilerplate" } +for index = 1, \#favs do -- # is the length operator (does not work on maps!) + print(index, favs[index]) +end +for index, value in ipairs(favs) do -- ipairs return the index and values of that index + print(index, value) +end +``` + +#### Maps + +```Lua +local favs = { ThePrimeagen = 9.5, NoBoilerplate = "N/A" } +for key, value in pairs(favs) do -- pairs return the index and values of that key + print(key, value) +end +``` + +### If + +```Lua +local function action(visit_page) + if visit_page then + print("Opening new tab...") + else + print("Skipping...") + end +end +-- "falsey": nil, false +action() -- Same as: action(nil) +action(false) +-- Everything else is "truthy" +action(true) +action(0) +action({}) +``` + +## Modules + +Modules are just files. + +```Lua +-- module.lua +local M = {} +M.some_function = function() end +return M +-- main.lua +local something = require("module") +something.some_function() +``` diff --git a/content/notes/drafts/macOS.md b/content/notes/drafts/macOS.md new file mode 100644 index 0000000..64717a6 --- /dev/null +++ b/content/notes/drafts/macOS.md @@ -0,0 +1,63 @@ +--- +Status: In progress +Created by: Trude EH +tags: + - notes + - os +author: TrudeEH +draft: true +searchHidden: false +showToc: true +title: macOS +--- +#todo + +## System Data + +System data is anything in the following locations: +- `/Library` +- `/System` +- `~Library` +- `/usr` +- `.hidden_files` + +## Memory + +- Physical Memory - Total system memory +- Memory Used + - App Memory - Memory used for apps + - Wired Memory - System memory + - Compressed - Memory used by apps, but compressed as it is not immediately needed +- Cached Files - Files saved in memory for faster launching +- Swap Used - Memory stored in the SSD + +### Memory Pressure + +A measurement of how well macOS is managing the available memory. +- Green/Low: Normal function; No tricks needed. +- Yellow/Medium: There is not enough memory as-is, so macOS is actively compressing and decompressing memory as needed. +- Red/High: Aside from compression, macOS is using the swap heavily. + +## Troubleshooting + +### System and Apps + +|Description|Fix| +|---|---| +|Fix "App X is damaged and can't be opened."|`xattr -c `| +|Disable the Dock autohide delay|Fix:

    `defaults write com.apple.dock autohide-delay -float 0; defaults write com.apple.dock autohide-time-modifier -int 0;killall Dock`

    Restore defaults:

    `defaults delete com.apple.Dock autohide-delay; killall Dock`| +||| +||| + +### Gaming + +|Issue / Error / Description|Fix| +|---|---| +|Improve Terraria performance (and some other games)|Add `/gldevice:Vulkan` as a launch argument (on Steam).| +||| + +### Flash IMG File to Disk + +1. `diskutil list` → Find the path to the device (`/dev/XXX`) +2. `diskutil unmount /dev/XXX` → Unmount the disk +3. `sudo dd if=image.img of=/dev/XXX bs=1M oflag=direct,sync status=progress` diff --git a/content/notes/drafts/nvim.md b/content/notes/drafts/nvim.md new file mode 100644 index 0000000..8a966dc --- /dev/null +++ b/content/notes/drafts/nvim.md @@ -0,0 +1,14 @@ +--- +title: "nvim" +description: +draft: true +tags: +author: TrudeEH +showToc: true +--- + +## VIM Bindings + +## Using Neovim + +## Configuring Neovim diff --git a/content/notes/drafts/rust.md b/content/notes/drafts/rust.md new file mode 100644 index 0000000..539be96 --- /dev/null +++ b/content/notes/drafts/rust.md @@ -0,0 +1,315 @@ +--- +title: "rust" +description: +draft: true +tags: +author: TrudeEH +showToc: true +--- + +## Vocabulary + +|Command / Word|Action / Meaning|Example| +|---|---|---| +|Statement|Performs an action, but does not return a value.|Function definitions, code that ends with `;`.| +|Expression|Evaluate to a resultant value.|Tests, math.| + +## Tools + +- Install Rust: `curl --proto '=https' --tlsv1.2 -sSf | sh` + - `rustup` + - `rustc` + - `cargo` + +## Hello World! + +```rust +fn main() { + println!("Hello world!"); +} +``` + +## Variables + +```rust +let x: i32; // A variable can only be used if it has been initialized (contains a value) + +let y: i8 = 5; // All variables are constant by default. +let mut z = 1; // The mut keyword makes the variable mutable. (Explicit type annotation is not necessary, but recommended). + +let (k, f); //Same as "let k; let f;" + +let t = { // Initialize a variable as the result of an expression. + let squared = y * y; + squared +}; +``` + +## Data Types + +### Integer Types + +|Length|Signed|Unsigned|Unsigned Decimal Length| +|---|---|---|---| +|8-bit|`i8`|`u8`|`0..=255`| +|16-bit|`i16`|`u16`|`0..=65535`| +|32-bit (default)|`i32`|`u32`|`0..=4294967295`| +|64-bit|`i64`|`u64`|`0..=18446744073709551615`| +|128-bit|`i128`|`u128`|`0..=340282366920938463463374607431768211455`| +|arch|||| +|(Size of CPU architecture)|`isize`|`usize`|The size of a memory address.| + +```rust +let v: u16 = 32_u8 as u16; // Convert an u8 type to u16. +println!("{}", i8::MAX); // Print the largest possible value a data type can hold. +let a = 10_000; // _ is ignored, and is only used to help with readability. +let b = 1 + 0xff + 0o77 + 0b1111_1111; // Various numerical bases are supported. + +println!("{}", type_of(&v)); +``` + +### Floating Point Values + +|Length|Signed|Unsigned|Unsigned Decimal Length| +|---|---|---|---| +|8-bit|`f8`|`u8`|`0..=255`| +|16-bit|`f16`|`u16`|`0..=65535`| +|32-bit (default)|`f32`|`u32`|`0..=4294967295`| +|64-bit|`f64`|`u64`|`0..=18446744073709551615`| +|128-bit|`f128`|`u128`|`0..=340282366920938463463374607431768211455`| + +```rust +assert!(0.1 + 0.2 == 0.3); // False, floating point numbers are subject to imprecision. +assert!(0.1_f32 + 0.2 as f32 == 0.3_f32); // True. f32 is less precise. (Note: Remember that _ are optional and are ignored.) +``` + +### Boolean Logic + +|True|False| +|---|---| +|`true`|`false`| +|`1`|`0`| + +```rust +let _f: bool = false; // 1 byte + +let t = false; +if !t { println!("t became true") } +``` + +#### Boolean Operators + +- `AND` +- `OR` +- `NOT` + +#### Bitwise Operations + +Each bit is considered a unit. + +|AND|`&`| +|---|---| +|OR|`| +|XOR|`^`| +|LEFT SHIFT|`<<`| +|RIGHT SHIFT|`>>`| + +### Characters + +```rust +let c1: char = 'a'; // 4 bytes +let c2: char = 'µ'; // Unicode is supported +``` + +### Unit Type + +```rust +let _v: () = (); // () is similar to null. It means nothing. Takes up 0 bytes. +``` + +## Range + +```rust +-3..2 // -3 to 1. 2 is excluded. +'a'..='z' // a to z. z is included. +``` + +## Scope + +A scope can be created anywhere in the program. + +```rust +// Global Scope +let y = 2; + +{ + // Local Scope. x is not accessible outside this scope. + let x = 1; + println!("{} and {}", x, y); +} +``` + +If a variable inside the inner scope has the same name as one outside, the latter is shadowed. + +## Functions + +```rust +fn main() { // No output; Implicit "-> ()". + sum(3, 2); +} + +fn sum(x: i32, y: i32) -> i32 { // Takes 2 numbers as input, and outputs another. + x + y; +} + +fn never_return() -> ! { // "-> !" A function that never returns to the caller. Either panics, or loops forever. + panic!() // Error. + unimplemented!() // Use if a function is not implemented yet. + todo!() // Incomplete. +} +``` + +Type annotation is required in function definitions. + +## Ownership + +- Each value has an owner. +- There can only be one owner at a time. +- When the owner goes out of scope, the value will be dropped. + +```rust +{ + let s = "example"; + | | + Owner Value +} +// Outside this scope, s is dropped from memory. +``` + +## Borrowing + +- Access data **without taking ownership** of it. +- When borrowing, you are taking a **reference** (pointer) to the data, not the value itself. + +**Rules** + +- At any given time, you can have either **one mutable reference** or **any number** of **immutable references**. +- References must **always be valid**. + +```rust +fn main() { + let s1 = String::from("hello"); + let len = calculate_length(&s1); + + println!("The length of '{}' is {}.", s1, len); +} + +fn calculate_length(s: &String) -> usize { + s.len() // s is a pointer to s1 +} +``` + +Example mutable reference: + +```rust +fn main() { + let mut s = String::from("hello"); + change(&mut s); +} + +fn change(some_string: &mut String) { + some_string.push_str(", world"); +} +``` + +Get the address in memory: + +```rust +let x = 5; +let p: &i32 = &x; // Reference to x, reads 5 by println!. + +println!("The memory address of x is {:p}", p); // :p reads the raw reference value. +``` + +Dereference: + +```rust +let x = 5; +let p: &i32 = &x; // Reference to x +assert_eq!(5, *p) // Go to the value p points to and read it. +``` + +The `ref` keyword is an alternate syntax to create a reference: + +```rust +let c = 'T'; +let r1 = &c; +let ref r2 = c; +``` + +## Compound Types + +Data types made of other types. + +### Strings + +A `String` is mutable, and is stored on the *stack* with a pointer to the *heap,* where the value is stored. + +```rust +let s1 = String::from("hello"); + | | + Pointer Array stored on the heap + (usize) +``` + +#### Copy vs. Move + +```rust +// Copy a value +let x = 1; +let y = x; + +// Move the pointer value. +let s1 = String::from("hello"); +let s2 = s1; +``` + +Now `s2` also points to the same string as `s1`. This [is not allowed in rust](https://www.notion.so/Rust-14149cf14b4c80ed8f7be5c63490aac2?pvs=21), so `s1` will be dropped. (Passing a string pointer to a function makes the function the new owner of the string). + +```rust +// Copy a string (Deep Copy) +let s1 = String::from("hello"); +let s2 = s1.clone(); +``` + +In this example, the value in the heap is copied, so both `s1` and `s2` have their own values, and only own their own instance of the string. + +#### `String` Vs. `&str` + +|Type|Mutability|Ownership|Efficiency| +|---|---|---|---| +|`String`|Mutable; heap|Owns its contents|`-`| +|`&str` (String Slice)|Immutable; stack|Does not own data|`+`| +|`"..."` (String Literal)|Immutable; static storage (Stored inside the compiled program)|Does not own data|`+`; Same as `&str`| + +```rust +let s1: String = String::from("hello"); +let s2: &str = "Hello"; + +// Read String Slice +let read_string_slice = &s2[0..1]; // "he" + +// Move str to heap to make it mutable. +let s: Box = "hello, world".into(); // .into() converts to the variable type. +let str_again = &s; +``` + +### Tuples + +Store different data types. + +```rust +let t: (String, Int) = (String::from("hello"), 14); +``` + +Reference: [](https://youtu.be/BpPEoZW5IiY?si=1ri40iKdXR4zwp0J&t=8461)[https://youtu.be/BpPEoZW5IiY?si=WiJX41VB55S7Tx17&t=5607](https://youtu.be/BpPEoZW5IiY?si=WiJX41VB55S7Tx17&t=5607) diff --git a/content/notes/drafts/swift.md b/content/notes/drafts/swift.md new file mode 100644 index 0000000..8ac5cff --- /dev/null +++ b/content/notes/drafts/swift.md @@ -0,0 +1,491 @@ +--- +title: "swift" +description: +draft: true +tags: +author: TrudeEH +showToc: true +--- + +## Tools + +- Xcode & Xcode Command-line tools + +## Hello World + +In Swift, this line of code is a complete program. + +```swift +print("Hello, world!") +``` + +Unlike C, you don't need to import a separate library for functionality like outputting text or handling strings. + +Code written at global scope is used as the entry point for the program, so you don't need a `main()` function. + +Swift does not require a `;` at the end of every line. + +## Simple Values + +Use `let` to make a constant and `var` to make a variable. + +The value of a constant doesn't need to be known at compile time, but you must assign it a value exactly once. + +This means you can use constants to name a value that you determine once but use in many places. + +```swift +var myVariable = 42 +myVariable = 50 + +let myConstant = 42 +``` + +Data types don't always have to write the type explicitly. Providing a value when you create a constant or variable lets the compiler infer its type. In the example above, the compiler infers that `myVariable` is an integer because its initial value is an integer. + +If the initial value doesn't provide enough information (or if there isn't an initial value), specify the type by writing it after the variable, separated by a colon. + +```swift +let implicitInteger = 70 +let implicitDouble = 70.0 + +let explicitDouble: Double = 70 +``` + +Values are never implicitly converted to another type. If you need to convert a value to a different type, explicitly make an instance of the desired type. + +```swift +let label = "The width is " +let width = 94 +let widthLabel = label + String(width) +``` + +If the conversion to `String` from the last line is removed, the compiler throws an error: + +``` +Binary operator '+' cannot be applied to operands of type 'String' and 'Int' +``` + +There's also a simpler way to include values in strings: + +```swift +let apples = 3 +let oranges = 5 +let appleSummary = "I have \\(apples) apples." +let fruitSummary = "I have \\(apples + oranges) pieces of fruit." +``` + +Use three double quotation marks (`"""`) for strings that take up multiple lines. Indentation at the start of each quoted line is removed, as long as it matches the indentation of the closing quotation marks. For example: + +```swift +let quotation = """ + Even though there's whitespace to the left, + the actual lines aren't indented. + Except for this line. + Double quotes (") can appear without being escaped. + I still have \\(apples + oranges) pieces of fruit. + """ +``` + +Create arrays and dictionaries using brackets (`[]`), and access their elements by writing the index or key in brackets. A comma is allowed after the last element. + +```swift +var fruits = ["strawberries", "limes", "tangerines"] +fruits[1] = "grapes" + +var occupations = [ + "Malcolm": "Captain", + "Kaylee": "Mechanic", +] +occupations["Jayne"] = "Public Relations" +``` + +Arrays automatically grow as you add elements. + +```swift +fruits.append("blueberries") +print(fruits) +// Prints "["strawberries", "grapes", "tangerines", "blueberries"]" +``` + +You also use brackets to write an empty array or dictionary. For an array, write `[]`, and for a dictionary, write `[:]`. + +```swift +fruits = [] +occupations = [:] +``` + +If you're assigning an empty array or dictionary to a new variable, or another place where there isn't any type information, you need to specify the type. + +```swift +let emptyArray: [String] = [] +let emptyDictionary: [String: Float] = [:] +``` + +## Control Flow + +Use `if` and `switch` to make conditionals, and use `for`-`in`, `while`, and `repeat`-`while` to make loops. + +Parentheses around the condition or loop variable are optional. Braces around the body are required. + +```swift +let individualScores = [75, 43, 103, 87, 12] +var teamScore = 0 + +for score in individualScores { + if score > 50 { + teamScore += 3 + } else { + teamScore += 1 + } +} + +print(teamScore)// Prints "11" +``` + +In an `if` statement, the conditional must be a Boolean expression — this means that code such as `if score { ... }` is an error, not an implicit comparison to zero. + +You can write `if` or `switch` after the equal sign (`=`) of an assignment or after `return`, to choose a value based on the condition. + +```swift +let scoreDecoration = if teamScore > 10 { "🎉" } else {""} + +print("Score:", teamScore, scoreDecoration)// Prints "Score: 11 🎉" +``` + +You can use `if` and `let` together to work with values that might be missing. These values are represented as optionals. An optional value either contains a value or contains `nil` to indicate that a value is missing. Write a question mark (`?`) after the type of a value to mark the value as optional. + +```swift +var optionalString: String? = "Hello" +print(optionalString == nil)// Prints "false" + +var optionalName: String? = "John Appleseed" +var greeting = "Hello!" + +if let name = optionalName { + greeting = "Hello, \\(name)" +} +``` + +If the optional value is `nil`, the conditional is `false` and the code in braces is skipped. Otherwise, the optional value is unwrapped and assigned to the constant after `let`, which makes the unwrapped value available inside the block of code. + +Another way to handle optional values is to provide a default value using the `??` operator. If the optional value is missing, the default value is used instead. + +```swift +let nickname: String? = nil +let fullName: String = "John Appleseed" + +let informalGreeting = "Hi \\(nickname ?? fullName)" +``` + +You can use a shorter spelling to unwrap a value, using the same name for that unwrapped value. + +```swift +if let nickname { + print("Hey, \\(nickname)") +}// Doesn't print anything, because nickname is nil. +``` + +Switches support any kind of data and a wide variety of comparison operations — they aren't limited to integers and tests for equality. + +```swift +let vegetable = "red pepper" + +switch vegetable { + case "celery": + print("Add some raisins and make ants on a log.") + case "cucumber", "watercress": + print("That would make a good tea sandwich.") + case let x where x.hasSuffix("pepper"): + print("Is it a spicy \\(x)?") + default: + print("Everything tastes good in soup.") +}// Prints "Is it a spicy red pepper?" +``` + +Notice how `let` can be used in a pattern to assign the value that matched the pattern to a constant. + +After executing the code inside the switch case that matched, the program exits from the switch statement. Execution doesn't continue to the next case, so you don't need to explicitly break out of the switch at the end of each case's code. + +You use `for`-`in` to iterate over items in a dictionary by providing a pair of names to use for each key-value pair. Dictionaries are an unordered collection, so their keys and values are iterated over in an arbitrary order. + +```swift +let interestingNumbers = [ + "Prime": [2, 3, 5, 7, 11, 13], + "Fibonacci": [1, 1, 2, 3, 5, 8], + "Square": [1, 4, 9, 16, 25], +] + +var largest = 0 +for (_, numbers) in interestingNumbers { + for number in numbers { + if number > largest { largest = number } + } +} +print(largest)// Prints "25" +``` + +The `_` character is a placeholder; It can be useful when it is not necessary to keep track of the loop iterations. It could be omitted in this example. + +Use `while` to repeat a block of code until a condition changes. The condition of a loop can be at the end instead, ensuring that the loop is run at least once. + +```swift +var n = 2 +while n < 100 { + n *= 2 +} +print(n)// Prints "128" + +var m = 2 +repeat { + m *= 2 +} while m < 100 +print(m)// Prints "128" +``` + +If you change the condition from `m < 100` to `m < 0`, `while` and `repeat`-`while` behave differently, as `repeat`-`while` would still execute once, even if the condition was already false. + +You can keep an index in a loop by using `..<` to make a range of indexes. + +```swift +var total = 0 +for i in 0..<4 { total += i} +print(total)// Prints "6" +``` + +Use `..<` to make a range that omits its upper value, and use `...` to make a range that includes both values. + +--- + +### [Functions and Closures](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/#Functions-and-Closures) + +Use `func` to declare a function. Call a function by following its name with a list of arguments in parentheses. Use `->` to separate the parameter names and types from the function's return type. + +`func greet(person: String, day: String) -> String { return "Hello \\(person), today is \\(day)."}greet(person: "Bob", day: "Tuesday")` + +**Experiment** Remove the `day` parameter. Add a parameter to include today's lunch special in the greeting. + +By default, functions use their parameter names as labels for their arguments. Write a custom argument label before the parameter name, or write `_` to use no argument label. + +`func greet(_ person: String, on day: String) -> String { return "Hello \\(person), today is \\(day)."}greet("John", on: "Wednesday")` + +Use a tuple to make a compound value — for example, to return multiple values from a function. The elements of a tuple can be referred to either by name or by number. + +`func calculateStatistics(scores: [Int]) -> (min: Int, max: Int, sum: Int) { var min = scores[0] var max = scores[0] var sum = 0 for score in scores { if score > max { max = score } else if score < min { min = score } sum += score } return (min, max, sum)}let statistics = calculateStatistics(scores: [5, 3, 100, 3, 9])print(statistics.sum)// Prints "120"print(statistics.2)// Prints "120"` + +Functions can be nested. Nested functions have access to variables that were declared in the outer function. You can use nested functions to organize the code in a function that's long or complex. + +`func returnFifteen() -> Int { var y = 10 func add() { y += 5 } add() return y}returnFifteen()` + +Functions are a first-class type. This means that a function can return another function as its value. + +`func makeIncrementer() -> ((Int) -> Int) { func addOne(number: Int) -> Int { return 1 + number } return addOne}var increment = makeIncrementer()increment(7)` + +A function can take another function as one of its arguments. + +`func hasAnyMatches(list: [Int], condition: (Int) -> Bool) -> Bool { for item in list { if condition(item) { return true } } return false}func lessThanTen(number: Int) -> Bool { return number < 10}var numbers = [20, 19, 7, 12]hasAnyMatches(list: numbers, condition: lessThanTen)` + +Functions are actually a special case of closures: blocks of code that can be called later. The code in a closure has access to things like variables and functions that were available in the scope where the closure was created, even if the closure is in a different scope when it's executed — you saw an example of this already with nested functions. You can write a closure without a name by surrounding code with braces (`{}`). Use `in` to separate the arguments and return type from the body. + +`numbers.map({ (number: Int) -> Int in let result = 3 * number return result})` + +**Experiment** Rewrite the closure to return zero for all odd numbers. + +You have several options for writing closures more concisely. When a closure's type is already known, such as the callback for a delegate, you can omit the type of its parameters, its return type, or both. Single statement closures implicitly return the value of their only statement. + +`let mappedNumbers = numbers.map({ number in 3 * number })print(mappedNumbers)// Prints "[60, 57, 21, 36]"` + +You can refer to parameters by number instead of by name — this approach is especially useful in very short closures. A closure passed as the last argument to a function can appear immediately after the parentheses. When a closure is the only argument to a function, you can omit the parentheses entirely. + +`let sortedNumbers = numbers.sorted { $0 > $1 }print(sortedNumbers)// Prints "[20, 19, 12, 7]"` + +### [Objects and Classes](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/#Objects-and-Classes) + +Use `class` followed by the class's name to create a class. A property declaration in a class is written the same way as a constant or variable declaration, except that it's in the context of a class. Likewise, method and function declarations are written the same way. + +`class Shape { var numberOfSides = 0 func simpleDescription() -> String { return "A shape with \\(numberOfSides) sides." }}` + +**Experiment** Add a constant property with `let`, and add another method that takes an argument. + +Create an instance of a class by putting parentheses after the class name. Use dot syntax to access the properties and methods of the instance. + +`var shape = Shape()shape.numberOfSides = 7var shapeDescription = shape.simpleDescription()` + +This version of the `Shape` class is missing something important: an initializer to set up the class when an instance is created. Use `init` to create one. + +`class NamedShape { var numberOfSides: Int = 0 var name: String init(name: String) { self.name = name } func simpleDescription() -> String { return "A shape with \\(numberOfSides) sides." }}` + +Notice how `self` is used to distinguish the `name` property from the `name` argument to the initializer. The arguments to the initializer are passed like a function call when you create an instance of the class. Every property needs a value assigned — either in its declaration (as with `numberOfSides`) or in the initializer (as with `name`). + +Use `deinit` to create a deinitializer if you need to perform some cleanup before the object is deallocated. + +Subclasses include their superclass name after their class name, separated by a colon. There's no requirement for classes to subclass any standard root class, so you can include or omit a superclass as needed. + +Methods on a subclass that override the superclass's implementation are marked with `override` — overriding a method by accident, without `override`, is detected by the compiler as an error. The compiler also detects methods with `override` that don't actually override any method in the superclass. + +`class Square: NamedShape { var sideLength: Double init(sideLength: Double, name: String) { self.sideLength = sideLength super.init(name: name) numberOfSides = 4 } func area() -> Double { return sideLength * sideLength } override func simpleDescription() -> String { return "A square with sides of length \\(sideLength)." }}let test = Square(sideLength: 5.2, name: "my test square")test.area()test.simpleDescription()` + +**Experiment** Make another subclass of `NamedShape` called `Circle` that takes a radius and a name as arguments to its initializer. Implement an `area()` and a `simpleDescription()` method on the `Circle` class. + +In addition to simple properties that are stored, properties can have a getter and a setter. + +`class EquilateralTriangle: NamedShape { var sideLength: Double = 0.0 init(sideLength: Double, name: String) { self.sideLength = sideLength super.init(name: name) numberOfSides = 3 } var perimeter: Double { get { return 3.0 * sideLength } set { sideLength = newValue / 3.0 } } override func simpleDescription() -> String { return "An equilateral triangle with sides of length \\(sideLength)." }}var triangle = EquilateralTriangle(sideLength: 3.1, name: "a triangle")print(triangle.perimeter)// Prints "9.3"triangle.perimeter = 9.9print(triangle.sideLength)// Prints "3.3000000000000003"` + +In the setter for `perimeter`, the new value has the implicit name `newValue`. You can provide an explicit name in parentheses after `set`. + +Notice that the initializer for the `EquilateralTriangle` class has three different steps: + +1. Setting the value of properties that the subclass declares. +2. Calling the superclass's initializer. +3. Changing the value of properties defined by the superclass. Any additional setup work that uses methods, getters, or setters can also be done at this point. + +If you don't need to compute the property but still need to provide code that's run before and after setting a new value, use `willSet` and `didSet`. The code you provide is run any time the value changes outside of an initializer. For example, the class below ensures that the side length of its triangle is always the same as the side length of its square. + +`class TriangleAndSquare { var triangle: EquilateralTriangle { willSet { square.sideLength = newValue.sideLength } } var square: Square { willSet { triangle.sideLength = newValue.sideLength } } init(size: Double, name: String) { square = Square(sideLength: size, name: name) triangle = EquilateralTriangle(sideLength: size, name: name) }}var triangleAndSquare = TriangleAndSquare(size: 10, name: "another test shape")print(triangleAndSquare.square.sideLength)// Prints "10.0"print(triangleAndSquare.triangle.sideLength)// Prints "10.0"triangleAndSquare.square = Square(sideLength: 50, name: "larger square")print(triangleAndSquare.triangle.sideLength)// Prints "50.0"` + +When working with optional values, you can write `?` before operations like methods, properties, and subscripting. If the value before the `?` is `nil`, everything after the `?` is ignored and the value of the whole expression is `nil`. Otherwise, the optional value is unwrapped, and everything after the `?` acts on the unwrapped value. In both cases, the value of the whole expression is an optional value. + +`let optionalSquare: Square? = Square(sideLength: 2.5, name: "optional square")let sideLength = optionalSquare?.sideLength` + +### [Enumerations and Structures](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/#Enumerations-and-Structures) + +Use `enum` to create an enumeration. Like classes and all other named types, enumerations can have methods associated with them. + +`enum Rank: Int { case ace = 1 case two, three, four, five, six, seven, eight, nine, ten case jack, queen, king func simpleDescription() -> String { switch self { case .ace: return "ace" case .jack: return "jack" case .queen: return "queen" case .king: return "king" default: return String(self.rawValue) } }}let ace = Rank.acelet aceRawValue = ace.rawValue` + +**Experiment** Write a function that compares two `Rank` values by comparing their raw values. + +By default, Swift assigns the raw values starting at zero and incrementing by one each time, but you can change this behavior by explicitly specifying values. In the example above, `Ace` is explicitly given a raw value of `1`, and the rest of the raw values are assigned in order. You can also use strings or floating-point numbers as the raw type of an enumeration. Use the `rawValue` property to access the raw value of an enumeration case. + +Use the `init?(rawValue:)` initializer to make an instance of an enumeration from a raw value. It returns either the enumeration case matching the raw value or `nil` if there's no matching `Rank`. + +`if let convertedRank = Rank(rawValue: 3) { let threeDescription = convertedRank.simpleDescription()}` + +The case values of an enumeration are actual values, not just another way of writing their raw values. In fact, in cases where there isn't a meaningful raw value, you don't have to provide one. + +`enum Suit { case spades, hearts, diamonds, clubs func simpleDescription() -> String { switch self { case .spades: return "spades" case .hearts: return "hearts" case .diamonds: return "diamonds" case .clubs: return "clubs" } }}let hearts = Suit.heartslet heartsDescription = hearts.simpleDescription()` + +**Experiment** Add a `color()` method to `Suit` that returns "black" for spades and clubs, and returns "red" for hearts and diamonds. + +Notice the two ways that the `hearts` case of the enumeration is referred to above: When assigning a value to the `hearts` constant, the enumeration case `Suit.hearts` is referred to by its full name because the constant doesn't have an explicit type specified. Inside the switch, the enumeration case is referred to by the abbreviated form `.hearts` because the value of `self` is already known to be a suit. You can use the abbreviated form anytime the value's type is already known. + +If an enumeration has raw values, those values are determined as part of the declaration, which means every instance of a particular enumeration case always has the same raw value. Another choice for enumeration cases is to have values associated with the case — these values are determined when you make the instance, and they can be different for each instance of an enumeration case. You can think of the associated values as behaving like stored properties of the enumeration case instance. For example, consider the case of requesting the sunrise and sunset times from a server. The server either responds with the requested information, or it responds with a description of what went wrong. + +`enum ServerResponse { case result(String, String) case failure(String)} let success = ServerResponse.result("6:00 am", "8:09 pm")let failure = ServerResponse.failure("Out of cheese.") switch success {case let .result(sunrise, sunset): print("Sunrise is at \\(sunrise) and sunset is at \\(sunset).")case let .failure(message): print("Failure... \\(message)")}// Prints "Sunrise is at 6:00 am and sunset is at 8:09 pm."` + +**Experiment** Add a third case to `ServerResponse` and to the switch. + +Notice how the sunrise and sunset times are extracted from the `ServerResponse` value as part of matching the value against the switch cases. + +Use `struct` to create a structure. Structures support many of the same behaviors as classes, including methods and initializers. One of the most important differences between structures and classes is that structures are always copied when they're passed around in your code, but classes are passed by reference. + +`struct Card { var rank: Rank var suit: Suit func simpleDescription() -> String { return "The \\(rank.simpleDescription()) of \\(suit.simpleDescription())" }}let threeOfSpades = Card(rank: .three, suit: .spades)let threeOfSpadesDescription = threeOfSpades.simpleDescription()` + +**Experiment** Write a function that returns an array containing a full deck of cards, with one card of each combination of rank and suit. + +### [Concurrency](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/#Concurrency) + +Use `async` to mark a function that runs asynchronously. + +`func fetchUserID(from server: String) async -> Int { if server == "primary" { return 97 } return 501}` + +You mark a call to an asynchronous function by writing `await` in front of it. + +`func fetchUsername(from server: String) async -> String { let userID = await fetchUserID(from: server) if userID == 501 { return "John Appleseed" } return "Guest"}` + +Use `async let` to call an asynchronous function, letting it run in parallel with other asynchronous code. When you use the value it returns, write `await`. + +`func connectUser(to server: String) async { async let userID = fetchUserID(from: server) async let username = fetchUsername(from: server) let greeting = await "Hello \\(username), user ID \\(userID)" print(greeting)}` + +Use `Task` to call asynchronous functions from synchronous code, without waiting for them to return. + +`Task { await connectUser(to: "primary")}// Prints "Hello Guest, user ID 97"` + +Use task groups to structure concurrent code. + +`let userIDs = await withTaskGroup(of: Int.self) { group in for server in ["primary", "secondary", "development"] { group.addTask { return await fetchUserID(from: server) } } var results: [Int] = [] for await result in group { results.append(result) } return results}` + +Actors are similar to classes, except they ensure that different asynchronous functions can safely interact with an instance of the same actor at the same time. + +`actor ServerConnection { var server: String = "primary" private var activeUsers: [Int] = [] func connect() async -> Int { let userID = await fetchUserID(from: server) // ... communicate with server ... activeUsers.append(userID) return userID }}` + +When you call a method on an actor or access one of its properties, you mark that code with `await` to indicate that it might have to wait for other code that's already running on the actor to finish. + +`let server = ServerConnection()let userID = await server.connect()` + +### [Protocols and Extensions](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/#Protocols-and-Extensions) + +Use `protocol` to declare a protocol. + +`protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust()}` + +Classes, enumerations, and structures can all adopt protocols. + +`class SimpleClass: ExampleProtocol { var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105 func adjust() { simpleDescription += " Now 100% adjusted." }}var a = SimpleClass()a.adjust()let aDescription = a.simpleDescription struct SimpleStructure: ExampleProtocol { var simpleDescription: String = "A simple structure" mutating func adjust() { simpleDescription += " (adjusted)" }}var b = SimpleStructure()b.adjust()let bDescription = b.simpleDescription` + +**Experiment** Add another requirement to `ExampleProtocol`. What changes do you need to make to `SimpleClass` and `SimpleStructure` so that they still conform to the protocol? + +Notice the use of the `mutating` keyword in the declaration of `SimpleStructure` to mark a method that modifies the structure. The declaration of `SimpleClass` doesn't need any of its methods marked as mutating because methods on a class can always modify the class. + +Use `extension` to add functionality to an existing type, such as new methods and computed properties. You can use an extension to add protocol conformance to a type that's declared elsewhere, or even to a type that you imported from a library or framework. + +`extension Int: ExampleProtocol { var simpleDescription: String { return "The number \\(self)" } mutating func adjust() { self += 42 } }print(7.simpleDescription)// Prints "The number 7"` + +**Experiment** Write an extension for the `Double` type that adds an `absoluteValue` property. + +You can use a protocol name just like any other named type — for example, to create a collection of objects that have different types but that all conform to a single protocol. When you work with values whose type is a boxed protocol type, methods outside the protocol definition aren't available. + +`let protocolValue: any ExampleProtocol = aprint(protocolValue.simpleDescription)// Prints "A very simple class. Now 100% adjusted."// print(protocolValue.anotherProperty) // Uncomment to see the error` + +Even though the variable `protocolValue` has a runtime type of `SimpleClass`, the compiler treats it as the given type of `ExampleProtocol`. This means that you can't accidentally access methods or properties that the class implements in addition to its protocol conformance. + +### [Error Handling](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/#Error-Handling) + +You represent errors using any type that adopts the `Error` protocol. + +`enum PrinterError: Error { case outOfPaper case noToner case onFire}` + +Use `throw` to throw an error and `throws` to mark a function that can throw an error. If you throw an error in a function, the function returns immediately and the code that called the function handles the error. + +`func send(job: Int, toPrinter printerName: String) throws -> String { if printerName == "Never Has Toner" { throw PrinterError.noToner } return "Job sent"}` + +There are several ways to handle errors. One way is to use `do`-`catch`. Inside the `do` block, you mark code that can throw an error by writing `try` in front of it. Inside the `catch` block, the error is automatically given the name `error` unless you give it a different name. + +`do { let printerResponse = try send(job: 1040, toPrinter: "Bi Sheng") print(printerResponse)} catch { print(error)}// Prints "Job sent"` + +**Experiment** Change the printer name to `"Never Has Toner"`, so that the `send(job:toPrinter:)` function throws an error. + +You can provide multiple `catch` blocks that handle specific errors. You write a pattern after `catch` just as you do after `case` in a switch. + +`do { let printerResponse = try send(job: 1440, toPrinter: "Gutenberg") print(printerResponse)} catch PrinterError.onFire { print("I'll just put this over here, with the rest of the fire.")} catch let printerError as PrinterError { print("Printer error: \\(printerError).")} catch { print(error)}// Prints "Job sent"` + +**Experiment** Add code to throw an error inside the `do` block. What kind of error do you need to throw so that the error is handled by the first `catch` block? What about the second and third blocks? + +Another way to handle errors is to use `try?` to convert the result to an optional. If the function throws an error, the specific error is discarded and the result is `nil`. Otherwise, the result is an optional containing the value that the function returned. + +`let printerSuccess = try? send(job: 1884, toPrinter: "Mergenthaler")let printerFailure = try? send(job: 1885, toPrinter: "Never Has Toner")` + +Use `defer` to write a block of code that's executed after all other code in the function, just before the function returns. The code is executed regardless of whether the function throws an error. You can use `defer` to write setup and cleanup code next to each other, even though they need to be executed at different times. + +`var fridgeIsOpen = falselet fridgeContent = ["milk", "eggs", "leftovers"] func fridgeContains(_ food: String) -> Bool { fridgeIsOpen = true defer { fridgeIsOpen = false } let result = fridgeContent.contains(food) return result}if fridgeContains("banana") { print("Found a banana")}print(fridgeIsOpen)// Prints "false"` + +### [Generics](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/#Generics) + +Write a name inside angle brackets to make a generic function or type. + +`func makeArray(repeating item: Item, numberOfTimes: Int) -> [Item] { var result: [Item] = [] for _ in 0.. { case none case some(Wrapped)}var possibleInteger: OptionalValue = .nonepossibleInteger = .some(100)` + +Use `where` right before the body to specify a list of requirements — for example, to require the type to implement a protocol, to require two types to be the same, or to require a class to have a particular superclass. + +`func anyCommonElements(_ lhs: T, _ rhs: U) -> Bool where T.Element: Equatable, T.Element == U.Element{ for lhsItem in lhs { for rhsItem in rhs { if lhsItem == rhsItem { return true } } } return false}anyCommonElements([1, 2, 3], [3])` + +**Experiment** Modify the `anyCommonElements(_:_:)` function to make a function that returns an array of the elements that any two sequences have in common. + +Writing `` is the same as writing ` ... where T: Equatable`. + +## Sources + +- [A Swift Tour | Documentation](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/) diff --git a/content/notes/ready/algorithms_and_data/bigO.png b/content/notes/ready/algorithms_and_data/bigO.png new file mode 100644 index 0000000..132515e Binary files /dev/null and b/content/notes/ready/algorithms_and_data/bigO.png differ diff --git a/content/notes/ready/algorithms_and_data/index.md b/content/notes/ready/algorithms_and_data/index.md new file mode 100644 index 0000000..307fa12 --- /dev/null +++ b/content/notes/ready/algorithms_and_data/index.md @@ -0,0 +1,498 @@ +--- +title: Algorithms & Data Structures +description: +draft: false +tags: + - c + - programming +author: TrudeEH +showToc: true +--- + +## Time Complexity + +The amount of steps required for an algorithm to execute. + +### Big O Notation + +Maximum time for `n` input size. (Upper bound - worst case) +![Big-O Complexity Chart](bigO.png) + +### Omega Notation + +Minimum time for `n` input size. (Lower bound) +- `Ω(n²)` +- `Ω(n log n)` +- `Ω(n)` +- `Ω(log n)` +- `Ω(1)` + +> If both are the same, use `θ` + +## Searching Algorithms + +|Algorithm|Average Time Complexity|RAM| +|---|---|---| +|Linear Search|O(n) \| Ω(1)|0| +|Binary Search|O(log n) \| Ω(1)|0| + +### Linear Search + +Check every element until `n` is found. + +```C +#include +int main(void) { + int n = 1; // number to find + int numbers[] = {20, 500, 10, 5, 100, 1, 50}; + const int numbersLength = 7; + for (int i = 0; i < numbersLength; i++) { + if (numbers[i] == n) { + printf("Found n\n"); + return 0; + } + } + printf("Not found\n"); + return 1; +} +``` + +### Binary Search + +```C +#include +int main() +{ + int c; + int n = 10 // Number of elements in array + int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8 ,9} + int search = 2; // Number to find + int first = 0; + int last = n - 1; + int middle = (first+last)/2; // Average + while (first <= last) { + if (array[middle] < search) + first = middle + 1; + else if (array[middle] == search) { + printf("%d found at location %d.\n", search, middle+1); + break; + } + else + last = middle - 1; + middle = (first + last)/2; + } + if (first > last) + printf("Not found! %d isn't present in the list.\n", search); + return 0; +} +``` + +## Sorting Algorithms + +|Algorithm|Average Time Complexity|RAM|Use If| +|---|---|---|---| +|Selection Sort|O(n²) \| Ω(n²)|1 var|Never| +|Bubble Sort|O(n²) \| Ω(n)|0|| +|Insertion Sort|O(n²) (Faster if the data is kind of sorted)|0|| +|Merge Sort|O(n log n) \| Ω(n log n)|More RAM|Large Arrays| +|Quick Sort|O(n log n)|Less RAM|Small arrays| + +## Data Structures + +### Queue (Concept) + +First In, First Out +- enqueue - Add an item to the end of the line. +- dequeue - Remove an item from the beginning of the line. + +### Stack (Concept) + +Last In, First Out +The last item added will be used first, so the first ones added might never be used. +- push - Add an item to the top of the stack +- pop - Remove an item from the top of the stack + +### Arrays + +|Search|O(log n)| +|---|---| +|Multiple data types|No| +|Resizable|No| +|RAM Usage|Low| + +```C +double prices[] = {5.0, 3.2, 13.0}; +double values[5]; //Initialize an empty array, that can hold 5 items. +printf("%lf€", prices[0]); +printf("%d", sizeof(prices)); //3 +``` + +#### 2D Arrays + +```C +int numbers[2][3] = { + {1, 2, 3}, + {4, 5, 6} +}; +numbers[0][1]; //2 +numbers[1][2]; //6 +numbers[0][1] = 10; //Set [0][1] to 10. +// Note: Calculate the rows and columns automatically. +int rows = sizeof(numbers)/sizeof(numbers[0]); +int columns = sizeof(numbers[0])/sizeof(numbers[0][0]); +``` + +#### Array of Strings + +```C +char cars[][10] = {"Mustang", "Corvette", "Camaro"}; +//cars[0] = "Tesla"; ERROR! String arrays don't support item assignment. +strcpy(cars[0], "Tesla"); //Does the same, but must be included. +``` + +### Resize Array + +#### Manually + +```C +#include +int *list = malloc(3 * sizeof(int)); +// Works like an array +list[0] = 1; +list[1] = 2; +list[2] = 3; +//Same as +*list = 1; +*(list + 1) = 2; +*(list + 2) = 3; +// ... +// Add 1 extra byte to the array +int *tmp = malloc(4 * sizeof(int)); +if (tmp == NULL) { + free(list); + return 1; +} +for (int i = 0; i < 3; i++){ + tmp[i] = list[i]; +} +tmp[3] = 4; +free(list); +list = tmp; +// ... +free(list); +return 0; +``` + +#### Realloc + +```C +int *list = malloc(3 * sizeof(int)); +list[0] = 1; +list[1] = 2; +list[2] = 3; +// ... +int *tmp = realloc(list, 4 * sizeof(int)); //tmp is only needed to verify if realloc was successful, if realloc was assigned to int and failed, the 3 bytes from the list would be lost as list = NULL. +if (tmp == NULL) { + free(list); + return 1; +} +list = tmp; +list[3] = 4; +// ... +free(list); +return 0; +``` + +### Linked Lists + +| Linked List | TC | +| --------------------- | ------ | +| Add element unordered | O(1) | +| Add element ordered | O(n) | +| Search | O(n) | +| Insert | O(n) | +| Multiple data types | Yes | +| Resizable | Yes | +| RAM Usage | Medium | + +Each element has its value, and a pointer to the next element. The last element's pointer is `NULL`. (NULL == 0x0) + +```Plain +[N] -> [N] -> [N] -> [N] ... +``` + +```C +typedef struct node { + int number; // Value + struct node *next; // Pointer to the next node +} node; +``` + +#### Unordered Linked List Example + +Both code blocks are unsafe (if there's no memory, the program won't free) + +```C +typedef struct node { + int number; + struct node *next; +} node; +int main(void) { + node *list = NULL; + node *n = malloc(sizeof(node)); // n points at the first node of the linked list. + (*n).number = 1; // First element = 1. + //Or + n->number = 1; // Same. + n->next = NULL; // Point to NULL so it won't point to a garbage value. + list = n; + node *n = malloc(sizeof(node)); // n points at the first node of the linked list. + n->number = 2; + n->next = list; + list = n; +} +``` + +```C +#include +#include +typedef struct node { + int number; + struct node *next; +} node; +int main(void) { + node *list = NULL; + int numbers[] = {1, 2, 3}; + // Create linked list with the elements in the array. + for (int i = 0; i < 3; i++) { + node *n = malloc(sizeof(node)); + if (n == NULL) return 1; + n->number = number; + n->next = NULL; + n->next = list; + list = n; + } + // Print all elements from linked list. + node *ptr = list; + while (ptr != NULL) { + printf("%i\\n", ptr->number); + ptr = ptr->next; // Borrow the value in the list->n, which has the next node address. + } + // Free the list's memory. + ptr = list; + while (ptr != NULL) { + node *next = ptr->next; + free(ptr); + ptr = next; + } +} +``` + +### Trees + +| Balanced | Unbalanced | TC | +| ------------------- | ---------- | ---- | +| Add element | O(n) | O(n) | +| Search | O(log n) | O(n) | +| Insert | O(log n) | O(n) | +| Multiple data types | Yes | Yes | +| Resizable | Yes | Yes | +| RAM Usage | High | High | + +If organized correctly, allows for binary search. +Each node has 2 pointers. + +```Plain + [N] - root / parent + / \\ + [N] [N] - parent and children + / \\ / \\ + [N] [N] [N] [N] - leaf / child +``` + +```C +typedef struct treenode { + int value; + struct treenode *left; + struct treenode *right; +} treenode; +treenode *createnode(int value) { + treenode* result = malloc(sizeof(treenode)); + if (result != NULL) { + result->left = NULL; + result->right = NULL; + result->value = value; + } + return result; +} +void printtabs(int numtabs){ + for (int i=0; i < numtabs; i++){ + printf("\\t"); + } +} +void printtree_rec(treenode *root, int level){ + if (root == NULL) { + printtabs(level); + printf("---------\\n"); + return; + } + // Preordered + printtabs(level); + printf("value = %d\\n", root->value); + printtabs(level); + printf("left\\n"); + printtree_rec(root->left, level + 1); + printtabs(level); + printf("right\\n"); + printtree_rec(root->right, level + 1); + printtabs(level); + printf("done\\n"); +} +void printtree(treenode *root) { + printtree_rec(root, 0); +} +int main(void){ + treenode *n1 = createnode(10); + treenode *n2 = createnode(11); + treenode *n3 = createnode(12); + treenode *n4 = createnode(13); + treenode *n5 = createnode(14); + // n1 will be the root + n1->left = n2; + n1->right = n3; + n3->left = n4; + n4->right = n5; + printtree(n1); + free(n1); + free(n2); + free(n3); + free(n4); + free(n5); +} +``` + +### Hash Tables + +| Average | Worst | Best | +| ------------------- | --------- | --------- | +| Add element | O(1) | O(n) | +| Search | O(1) | O(n) | +| Insert | O(1) | O(n) | +| Multiple data types | Yes | Yes | +| Resizable | Yes | Yes | +| RAM Usage | Very High | Very High | + +An array, in which every element is a linked list. +The array is used to 'choose' a linked list, and the linked list stores a dynamic number of elements. + +```C +[0] -> [N] -> [N] -> [N] +[1] -> [N] -> [N] +[2] -> [N] +[3] -> [N] -> [N] +[4] -> [N] -> [N] -> [N] +[5] -> [N] -> [N] +0-5 - Array element +N - Linked list node +``` + +### Trie + +| Trie | Average | Worst | +| ------------------- | -------------- | -------------- | +| Add element | O(1) | O(1) | +| Search | O(1) | O(1) | +| Insert | O(1) | O(1) | +| Multiple data types | Yes | Yes | +| Resizable | Yes | Yes | +| RAM Usage | Extremely High | Extremely High | + +Tree, but every node is an array. +Useful to store words. Every element in an array is linked to the next letter. +![Trie](trie.png) + +```C +#include +#include +#include +#include +#define ALPHABET_SIZE 26 +struct TrieNode { + struct TrieNode *children[ALPHABET_SIZE]; + bool isendofword; +}; +typedef struct TrieNode TrieNode; +TrieNode *createNode() { + TrieNode *node = (TrieNode *)malloc(sizeof(TrieNode)); + node->isendofword = false; + for (int i = 0; i < ALPHABET_SIZE; i++) { + node->children[i] = NULL; + } + return node; +} +void insert(TrieNode *root, const char *key) { + TrieNode *current = root; + for (int i = 0; i < strlen(key); i++) { + int index = key[i] - 'a'; + if (current->children[index] == NULL) { + current->children[index] = createNode(); + } + current = current->children[index]; + } + current->isendofword = true; +} +bool search(TrieNode *root, const char *key) { + TrieNode *current = root; + for (int i = 0; i < strlen(key); i++) { + int index = key[i] - 'a'; + if (current->children[index] == NULL) { + return false; + } + current = current->children[index]; + } + return (current != NULL && current->isendofword); +} +bool isempty(TrieNode *root) { + for (int i = 0; i < ALPHABET_SIZE; i++) { + if (root->children[i] != NULL) { + return false; + } + } + return true; +} +TrieNode *deleteHelper(TrieNode *root, const char *key, int depth) { + if (root == NULL) { + return NULL; + } + if (depth == strlen(key)) { + if (root->isendofword) { + root->isendofword = false; + } + if (isempty(root)) { + free(root); + root = NULL; + } + return root; + } + int index = key[depth] - 'a'; + root->children[index] = deleteHelper(root->children[index], key, depth + 1); + if (isempty(root) && !root->isendofword) { + free(root); + root = NULL; + } + return root; +} +void deletekey(TrieNode *root, const char *key) { + deleteHelper(root, key, 0); +} +int main() { + TrieNode *root = createNode(); + insert(root, "example"); + insert(root, "word"); + printf("%s\n", search(root, "word") ? "Found" : "Not Found"); + printf("%s\n", search(root, "example") ? "Found" : "Not Found"); + printf("%s\n", search(root, "trude") ? "Found" : "Not Found"); + deletekey(root, "word"); + printf("%s\n", search(root, "word") ? "Found" : "Not Found"); + return 0; +} +``` diff --git a/content/notes/ready/algorithms_and_data/trie.png b/content/notes/ready/algorithms_and_data/trie.png new file mode 100644 index 0000000..b5fd56e Binary files /dev/null and b/content/notes/ready/algorithms_and_data/trie.png differ diff --git a/content/notes/ready/binary_operations/addition.png b/content/notes/ready/binary_operations/addition.png new file mode 100644 index 0000000..6ba2ad0 Binary files /dev/null and b/content/notes/ready/binary_operations/addition.png differ diff --git a/content/notes/ready/binary_operations/binarycalc.png b/content/notes/ready/binary_operations/binarycalc.png new file mode 100644 index 0000000..3d524fd Binary files /dev/null and b/content/notes/ready/binary_operations/binarycalc.png differ diff --git a/content/notes/ready/binary_operations/hand_addition1.png b/content/notes/ready/binary_operations/hand_addition1.png new file mode 100644 index 0000000..25f3c0f Binary files /dev/null and b/content/notes/ready/binary_operations/hand_addition1.png differ diff --git a/content/notes/ready/binary_operations/hand_addition2.png b/content/notes/ready/binary_operations/hand_addition2.png new file mode 100644 index 0000000..5fcca9a Binary files /dev/null and b/content/notes/ready/binary_operations/hand_addition2.png differ diff --git a/content/notes/ready/binary_operations/image68.png b/content/notes/ready/binary_operations/image68.png new file mode 100644 index 0000000..48c541a Binary files /dev/null and b/content/notes/ready/binary_operations/image68.png differ diff --git a/content/notes/ready/binary_operations/image69.png b/content/notes/ready/binary_operations/image69.png new file mode 100644 index 0000000..1da1480 Binary files /dev/null and b/content/notes/ready/binary_operations/image69.png differ diff --git a/content/notes/ready/binary_operations/image70.png b/content/notes/ready/binary_operations/image70.png new file mode 100644 index 0000000..2e8c66d Binary files /dev/null and b/content/notes/ready/binary_operations/image70.png differ diff --git a/content/notes/ready/binary_operations/image71.png b/content/notes/ready/binary_operations/image71.png new file mode 100644 index 0000000..1d00b8c Binary files /dev/null and b/content/notes/ready/binary_operations/image71.png differ diff --git a/content/notes/ready/binary_operations/image72.png b/content/notes/ready/binary_operations/image72.png new file mode 100644 index 0000000..e2c020b Binary files /dev/null and b/content/notes/ready/binary_operations/image72.png differ diff --git a/content/notes/ready/binary_operations/image73.png b/content/notes/ready/binary_operations/image73.png new file mode 100644 index 0000000..5f46c7b Binary files /dev/null and b/content/notes/ready/binary_operations/image73.png differ diff --git a/content/notes/ready/binary_operations/image74.png b/content/notes/ready/binary_operations/image74.png new file mode 100644 index 0000000..15cf16a Binary files /dev/null and b/content/notes/ready/binary_operations/image74.png differ diff --git a/content/notes/ready/binary_operations/image75.png b/content/notes/ready/binary_operations/image75.png new file mode 100644 index 0000000..78a3755 Binary files /dev/null and b/content/notes/ready/binary_operations/image75.png differ diff --git a/content/notes/ready/binary_operations/index.md b/content/notes/ready/binary_operations/index.md new file mode 100644 index 0000000..c5735fd --- /dev/null +++ b/content/notes/ready/binary_operations/index.md @@ -0,0 +1,389 @@ +--- +title: Binary Operations +description: +draft: false +tags: + - computer-science +author: TrudeEH +showToc: true +--- + +## Binary + +Binary is a base-2 numeral system: A simple way to represent numbers using only two states. + +|Binary|Decimal|Hexadecimal| +|---|---|---| +|0000|00|00| +|0001|01|01| +|0010|02|02| +|0011|03|03| +|0100|04|04| +|0101|05|05| +|0110|06|06| +|0111|07|07| +|1000|08|08| +|1001|09|09| +|1010|10|0A| +|1011|11|0B| +|1100|12|0C| +|1101|13|0D| +|1110|14|0E| +|1111|15|0F| + +![Binary Calculations](binarycalc.png) + +### Speaking Binary + +> The information in this section is non-standard, and mostly a curiosity. + +You may struggle to pronounce large binary numbers, as saying a long list of 0s and 1s is very inefficient. Instead, we can do something like this: + +![speaking binary](sb1.png) + +To be able to say any binary number, list the number, starting by the last digit: + +![speaking binary](sb2.png) + +And pronounce the ones that correspond to a `1` bit. + +![speaking binary](sb3.png) + +#### Pronounce a Binary Number at a Glance + +1. Break the number at its largest pair of bits. + + ![speaking binary](sb4.png) + +2. Represent the left and right sides. + + ![speaking binary](sb5.png) + + In this example, there is a `two` in the order of magnitude `hex`. + +3. Continue to represent the left and right sides recursively. + + ![speaking binary](sb6.png) + + The last number is `four`. + +#### Decode a Spoken Binary Number + +Starting with `two hex four`: + +1. Find the largest power of two. + + ![speaking binary](sb7.png) + +2. The number is equal to the left side, times the order of magnitude, plus the right side. + + ![speaking binary](sb8.png) + +#### Avoiding Repetition + +Repetition can be avoided by combining some very common, small numbers: + +![speaking binary](sb9.png) + +![speaking binary](sb10.png) + +These shortcuts essentially create a quaternary system to pronounce binary, but in this case, the result improves spoken efficiency by a lot. + +## Arithmetic Operations + +### Addition + +Adding two numbers can be done using a simple, manual algorithm: By adding the last bit of both numbers first, carry if necessary, then move on to the next number, and so on. + +| **+** | 0 | 1 | +| ------- | --- | ---- | +| 0 | 0 | 1 | +| 1 | 1 | 10 | + +![addition](addition.png) + +> To add numbers more efficiently by hand, you can group bits together and memorize the patters, effectively doubling your speed. +> +> ![hand addition](hand_addition1.png) +> +> To improve calculation speed even further, you can group more bits, and learn those patterns as well. +> +> ![hand addition](hand_addition2.png) + +#### Half Adder + +Add 2, single-digit binary numbers. + +| **A** | **B** | **Carry** | **Sum** | +| ----- | ----- | --------- | ------- | +| 0 | 0 | 0 | 0 | +| 0 | 1 | 0 | 1 | +| 1 | 0 | 0 | 1 | +| 1 | 1 | 1 | 0 | + +![image68](image68.png) + +#### Full Adder + +When adding 2 binary numbers, one operation might return a carry value, which the `half adder` can't accept, as it only has 2 inputs. + +![image69](image69.png) + +To solve this issue, a `full adder` accepts 3 inputs. + +![image70](image70.png) + +#### 8-Bit Adder + +![image71](image71.png) + +### Subtraction + +Subtraction can result in negative numbers. Like how additions need a carry, subtraction needs a borrow. + +#### Half Subtractor + +Subtract 2, single-digit binary numbers. + +| **A** | **B** | Diff | **Borrow** | +| ----- | ----- | ---- | ---------- | +| 0 | 0 | 0 | 0 | +| 0 | 1 | 1 | 1 | +| 1 | 0 | 1 | 0 | +| 1 | 1 | 0 | 0 | + +![image72](image72.png) + +#### Full Subtractor + +A `full subtractor` accepts the borrow value, allowing us to chain results. + +| **A** | **B** | **B**in | **Diff** | **B**out | +| ----- | ----- | ------- | -------- | -------- | +| 0 | 0 | 0 | 0 | 0 | +| 0 | 0 | 1 | 1 | 1 | +| 0 | 1 | 0 | 1 | 1 | +| 0 | 1 | 1 | 0 | 1 | +| 1 | 0 | 0 | 1 | 0 | +| 1 | 0 | 1 | 0 | 0 | +| 1 | 1 | 0 | 0 | 0 | +| 1 | 1 | 1 | 1 | 1 | + +![image73](image73.png) + +#### 8-Bit Subtractor + +![image74](image74.png) + +### Multiplication + +Multiplication is also similar to its decimal counterpart, but because binary is so small compared to decimal, the steps are also much simpler. + +First, multiply the top number to every digit of the bottom one, and then add the results together. + +| X | 0 | 1 | +| --- | --- | --- | +| 0 | 0 | 0 | +| 1 | 0 | 1 | + +```Plain + ||.| + x ||. + .... + ||.| ++ ||.| + |..|||. +``` + +#### 2-Bit By 2-Bit Multiplier + +![image75](image75.png) + +### Division + +1. Find the smallest part of the dividend greater than or equal to the ==divisor==. + + ```Plain + |.| ||..| + ``` + +2. Write the first digit of ==the answer==, and ==copy the original divisor down==. + + ```Plain + | + |.| ||..| + |.| + ``` + +3. Subtract ==the aligned dividend digits== by ==the digits under the dividend==. + + ```Plain + | + |.| ||..| + |.| + | + ``` + +4. Lower ==the next dividend digit==. + + ```Plain + | + |.| ||..| + |.| + |. + ``` + +5. Is ==the total== greater or equal to the ==divisor==? If so, add a `1` to the answer. If not, ==add a== ==`0`== ==to the answer== ==and return to step 4==. + + ```Plain + |. + |.| ||..| + |.| + |. + ``` + +6. Return to step 2, until you reach the end of the number. If you reached the end, you found ==the answer==. + + ```Plain + |.| + |.| ||..| + |.| + |.| + |.| + . + ``` + +### ASCII + +Binary can also be used to represent characters. + +| Dec | Hex | Binary | HTML | Char | Description | +| --- | --- | -------- | -------- | ----------- | ------------------------- | +| 0 | 00 | 00000000 | `�` | NUL | Null | +| 1 | 01 | 00000001 | `` | SOH | Start of Heading | +| 2 | 02 | 00000010 | `` | STX | Start of Text | +| 3 | 03 | 00000011 | `` | ETX | End of Text | +| 4 | 04 | 00000100 | `` | EOT | End of Transmission | +| 5 | 05 | 00000101 | `` | ENQ | Enquiry | +| 6 | 06 | 00000110 | `` | ACK | Acknowledge | +| 7 | 07 | 00000111 | `` | BEL | Bell | +| 8 | 08 | 00001000 | `` | BS | Backspace | +| 9 | 09 | 00001001 | ` ` | HT | Horizontal Tab | +| 10 | 0A | 00001010 | ` ` | LF | Line Feed | +| 11 | 0B | 00001011 | ` ` | VT | Vertical Tab | +| 12 | 0C | 00001100 | ` ` | FF | Form Feed | +| 13 | 0D | 00001101 | ` ` | CR | Carriage Return | +| 14 | 0E | 00001110 | `` | SO | Shift Out | +| 15 | 0F | 00001111 | `` | SI | Shift In | +| 16 | 10 | 00010000 | `` | DLE | Data Link Escape | +| 17 | 11 | 00010001 | `` | DC1 | Device Control 1 | +| 18 | 12 | 00010010 | `` | DC2 | Device Control 2 | +| 19 | 13 | 00010011 | `` | DC3 | Device Control 3 | +| 20 | 14 | 00010100 | `` | DC4 | Device Control 4 | +| 21 | 15 | 00010101 | `` | NAK | Negative Acknowledge | +| 22 | 16 | 00010110 | `` | SYN | Synchronize | +| 23 | 17 | 00010111 | `` | ETB | End of Transmission Block | +| 24 | 18 | 00011000 | `` | CAN | Cancel | +| 25 | 19 | 00011001 | `` | EM | End of Medium | +| 26 | 1A | 00011010 | `` | SUB | Substitute | +| 27 | 1B | 00011011 | `` | ESC | Escape | +| 28 | 1C | 00011100 | `` | FS | File Separator | +| 29 | 1D | 00011101 | `` | GS | Group Separator | +| 30 | 1E | 00011110 | `` | RS | Record Separator | +| 31 | 1F | 00011111 | `` | US | Unit Separator | +| 32 | 20 | 00100000 | ` ` | space | Space | +| 33 | 21 | 00100001 | `!` | ! | exclamation mark | +| 34 | 22 | 00100010 | `"` | " | double quote | +| 35 | 23 | 00100011 | `#` | # | number | +| 36 | 24 | 00100100 | `$` | $ | dollar | +| 37 | 25 | 00100101 | `%` | % | percent | +| 38 | 26 | 00100110 | `&` | & | ampersand | +| 39 | 27 | 00100111 | `'` | ' | single quote | +| 40 | 28 | 00101000 | `(` | ( | left parenthesis | +| 41 | 29 | 00101001 | `)` | ) | right parenthesis | +| 42 | 2A | 00101010 | `*` | * | asterisk | +| 43 | 2B | 00101011 | `+` | + | plus | +| 44 | 2C | 00101100 | `,` | , | comma | +| 45 | 2D | 00101101 | `-` | - | minus | +| 46 | 2E | 00101110 | `.` | . | period | +| 47 | 2F | 00101111 | `/` | / | slash | +| 48 | 30 | 00110000 | `0` | 0 | zero | +| 49 | 31 | 00110001 | `1` | 1 | one | +| 50 | 32 | 00110010 | `2` | 2 | two | +| 51 | 33 | 00110011 | `3` | 3 | three | +| 52 | 34 | 00110100 | `4` | 4 | four | +| 53 | 35 | 00110101 | `5` | 5 | five | +| 54 | 36 | 00110110 | `6` | 6 | six | +| 55 | 37 | 00110111 | `7` | 7 | seven | +| 56 | 38 | 00111000 | `8` | 8 | eight | +| 57 | 39 | 00111001 | `9` | 9 | nine | +| 58 | 3A | 00111010 | `:` | : | colon | +| 59 | 3B | 00111011 | `;` | ; | semicolon | +| 60 | 3C | 00111100 | `<` | < | less than | +| 61 | 3D | 00111101 | `=` | = | equality sign | +| 62 | 3E | 00111110 | `>` | > | greater than | +| 63 | 3F | 00111111 | `?` | ? | question mark | +| 64 | 40 | 01000000 | `@` | @ | at sign | +| 65 | 41 | 01000001 | `A` | A | | +| 66 | 42 | 01000010 | `B` | B | | +| 67 | 43 | 01000011 | `C` | C | | +| 68 | 44 | 01000100 | `D` | D | | +| 69 | 45 | 01000101 | `E` | E | | +| 70 | 46 | 01000110 | `F` | F | | +| 71 | 47 | 01000111 | `G` | G | | +| 72 | 48 | 01001000 | `H` | H | | +| 73 | 49 | 01001001 | `I` | I | | +| 74 | 4A | 01001010 | `J` | J | | +| 75 | 4B | 01001011 | `K` | K | | +| 76 | 4C | 01001100 | `L` | L | | +| 77 | 4D | 01001101 | `M` | M | | +| 78 | 4E | 01001110 | `N` | N | | +| 79 | 4F | 01001111 | `O` | O | | +| 80 | 50 | 01010000 | `P` | P | | +| 81 | 51 | 01010001 | `Q` | Q | | +| 82 | 52 | 01010010 | `R` | R | | +| 83 | 53 | 01010011 | `S` | S | | +| 84 | 54 | 01010100 | `T` | T | | +| 85 | 55 | 01010101 | `U` | U | | +| 86 | 56 | 01010110 | `V` | V | | +| 87 | 57 | 01010111 | `W` | W | | +| 88 | 58 | 01011000 | `X` | X | | +| 89 | 59 | 01011001 | `Y` | Y | | +| 90 | 5A | 01011010 | `Z` | Z | | +| 91 | 5B | 01011011 | `[` | [ | left square bracket | +| 92 | 5C | 01011100 | `\` | \|backslash | | +| 93 | 5D | 01011101 | `]` | ] | right square bracket | +| 94 | 5E | 01011110 | `^` | ^ | caret / circumflex | +| 95 | 5F | 01011111 | `_` | _ | underscore | +| 96 | 60 | 01100000 | ``` | ` | grave / accent | +| 97 | 61 | 01100001 | `a` | a | | +| 98 | 62 | 01100010 | `b` | b | | +| 99 | 63 | 01100011 | `c` | c | | +| 100 | 64 | 01100100 | `d` | d | | +| 101 | 65 | 01100101 | `e` | e | | +| 102 | 66 | 01100110 | `f` | f | | +| 103 | 67 | 01100111 | `g` | g | | +| 104 | 68 | 01101000 | `h` | h | | +| 105 | 69 | 01101001 | `i` | i | | +| 106 | 6A | 01101010 | `j` | j | | +| 107 | 6B | 01101011 | `k` | k | | +| 108 | 6C | 01101100 | `l` | l | | +| 109 | 6D | 01101101 | `m` | m | | +| 110 | 6E | 01101110 | `n` | n | | +| 111 | 6F | 01101111 | `o` | o | | +| 112 | 70 | 01110000 | `p` | p | | +| 113 | 71 | 01110001 | `q` | q | | +| 114 | 72 | 01110010 | `r` | r | | +| 115 | 73 | 01110011 | `s` | s | | +| 116 | 74 | 01110100 | `t` | t | | +| 117 | 75 | 01110101 | `u` | u | | +| 118 | 76 | 01110110 | `v` | v | | +| 119 | 77 | 01110111 | `w` | w | | +| 120 | 78 | 01111000 | `x` | x | | +| 121 | 79 | 01111001 | `y` | y | | +| 122 | 7A | 01111010 | `z` | z | | +| 123 | 7B | 01111011 | `{` | { | left curly bracket | +| 124 | 7C | 01111100 | `|` | \| | vertical bar | +| 125 | 7D | 01111101 | `}` | } | right curly bracket | +| 126 | 7E | 01111110 | `~` | ~ | tilde | +| 127 | 7F | 01111111 | `` | DEL | delete | diff --git a/content/notes/ready/binary_operations/sb1.png b/content/notes/ready/binary_operations/sb1.png new file mode 100644 index 0000000..bae3cab Binary files /dev/null and b/content/notes/ready/binary_operations/sb1.png differ diff --git a/content/notes/ready/binary_operations/sb10.png b/content/notes/ready/binary_operations/sb10.png new file mode 100644 index 0000000..33f5e13 Binary files /dev/null and b/content/notes/ready/binary_operations/sb10.png differ diff --git a/content/notes/ready/binary_operations/sb2.png b/content/notes/ready/binary_operations/sb2.png new file mode 100644 index 0000000..a9d5018 Binary files /dev/null and b/content/notes/ready/binary_operations/sb2.png differ diff --git a/content/notes/ready/binary_operations/sb3.png b/content/notes/ready/binary_operations/sb3.png new file mode 100644 index 0000000..dc72686 Binary files /dev/null and b/content/notes/ready/binary_operations/sb3.png differ diff --git a/content/notes/ready/binary_operations/sb4.png b/content/notes/ready/binary_operations/sb4.png new file mode 100644 index 0000000..ccb43d9 Binary files /dev/null and b/content/notes/ready/binary_operations/sb4.png differ diff --git a/content/notes/ready/binary_operations/sb5.png b/content/notes/ready/binary_operations/sb5.png new file mode 100644 index 0000000..7168b21 Binary files /dev/null and b/content/notes/ready/binary_operations/sb5.png differ diff --git a/content/notes/ready/binary_operations/sb6.png b/content/notes/ready/binary_operations/sb6.png new file mode 100644 index 0000000..c7cdcac Binary files /dev/null and b/content/notes/ready/binary_operations/sb6.png differ diff --git a/content/notes/ready/binary_operations/sb7.png b/content/notes/ready/binary_operations/sb7.png new file mode 100644 index 0000000..66b8168 Binary files /dev/null and b/content/notes/ready/binary_operations/sb7.png differ diff --git a/content/notes/ready/binary_operations/sb8.png b/content/notes/ready/binary_operations/sb8.png new file mode 100644 index 0000000..7b3fe58 Binary files /dev/null and b/content/notes/ready/binary_operations/sb8.png differ diff --git a/content/notes/ready/binary_operations/sb9.png b/content/notes/ready/binary_operations/sb9.png new file mode 100644 index 0000000..fe68998 Binary files /dev/null and b/content/notes/ready/binary_operations/sb9.png differ diff --git a/content/notes/ready/c-language.md b/content/notes/ready/c-language.md new file mode 100644 index 0000000..6b3314c --- /dev/null +++ b/content/notes/ready/c-language.md @@ -0,0 +1,694 @@ +--- +title: C Language +description: +draft: false +tags: + - c + - programming +author: TrudeEH +showToc: true +--- + +## Tools + +- `indent` (format code) +- `gcc` / `clang` (compile code) +- `man ` (see function documentation) +- `tldr ` (quick command usage examples) +- `valgrind` (Look for memory leaks) +- `valgrind —tool=massif` (check a program's RAM usage) + - View the output with `Massif-Visualizer` +- `gdb` (debugger) + - `gdb —args ` (if the program has command line args) + - Type `run` to start debugging, and `backtrace` for error details. +- `file` Check file information and, if it is an executable, compilation details. +- `perf stat -r 10 -d ` Benchmark a program. + +## Data Types and Variables + +The binary length of each data type depends on the CPU, OS, and compiler, but in general, they follow the C specifications. To check the exact values for your platform, see `limits.h`. + +| Type | C SPEC | x64 Linux (Example) | +| ------------- | --------- | ------------------- | +| `char` | ≥ 8 bits | 8 bits | +| `short` | ≥ 16 bits | 16 bits | +| `int` | ≥ 16 bits | 32 bits | +| `long` | ≥ 32 bits | 64 bits | +| `long long` | ≥ 64 bits | 64 bits | +| `float` | | 32 bits | +| `double` | | 64 bits | +| `long double` | | 128 bits | + +| Unsigned Bytes (8 bits) | Maximum Decimal Value | +| ----------------------- | --------------------------------------------------- | +| 1 | 255 | +| 2 | 65.535 | +| 4 | 4.294.967.295 | +| 8 | 18.446.744.073.709.551.615 | +| 16 | 340.282.366.920.938.463.463.374.607.431.768.211.455 | +| 32 | 1.157 × 10^76 | + +Examples + +```C +char a = 'C'; // single character %c '' +char b[] = "Trude" // array of characters %s "" +unsigned int // Unsigned. The number must be positive. +int // Signed. Negative and positive numbers. +char f = 100; // %d (number) %c (character) +unsigned char g = 255; // %d (number) %c (character) +short h = 32767; // %d +unsigned short i = 65535; // %d +int j = 2147483647; // %d +unsigned int k = 4294967295; // %u +long long l = ... // %lld +unsigned long long m = ...32U // %llu +float c = 3.141592; // %f +double d = 3.141592653589793; // %lf +``` + +### Format Specifiers + +These format codes indicate which data type is being used. They are needed for `printf` and `scanf`, for example. + +| `%` | Description | +| ------ | ------------------------------------------- | +| `%%` | `%` | +| `%-` | left align | +| `%.1` | decimal precision | +| `%1` | minimum field width | +| `%c` | character | +| `%d` | signed integer of base 10 | +| `%e` | scientific notation | +| `%f` | float | +| `%hd` | small decimal (short) | +| `%hhd` | very small decimal (char) | +| `%i` | integer of any base (detects automatically) | +| `%lf` | double | +| `%o` | octal (base 8) | +| `%p` | address/pointer | +| `%s` | string (array of characters) | +| `%u` | unsigned integer of base 10 | +| `%x` | hexadecimal (base 16) | + +```C +float item1 = 5.75; +printf("Item1: %-8.2\n", item1); +``` + +## Numbers + +`C` can handle multiple numeric bases. + +```C +int x = 255; // Decimal +int y = 0xff; // Hexadecimal +``` + +### Type Casting + +Convert a type into another. + +```C +int x = 1, y = 10; +float z = (float) x / (float) y; +``` + +## Escape Sequences + +Escape sequences are used to allow typing characters in a string that would otherwise be interpreted as `C` instructions. + +| Seq | Name | Description | +| ------ | ------------------ | -------------------------------------------------------------------------------------- | +| `\a` | Alarm or Beep | It is used to generate a bell sound in the C program. | +| `\b` | Backspace | It is used to move the cursor one place backward. | +| `\f` | Form Feed | It is used to move the cursor to the start of the next logical page. | +| `\n` | New Line | It moves the cursor to the start of the next line. | +| `\r` | Carriage Return | It moves the cursor to the start of the current line. | +| `\t` | Horizontal Tab | It inserts some whitespace to the left of the cursor and moves the cursor accordingly. | +| `\v` | Vertical Tab | It is used to insert vertical space. | +| `\\` | Backlash | Use to insert backslash character. | +| `\'` | Single Quote | It is used to display a single quotation mark. | +| `\"` | Double Quote | It is used to display double quotation marks. | +| `\?` | Question Mark | It is used to display a question mark. | +| `\ooo` | Octal Number | It is used to represent an octal number. | +| `\xhh` | Hexadecimal Number | It represents the hexadecimal number. | +| `\0` | `NULL` | It represents the NULL character. | +| `\e` | Escape sequence | It represents the ASCII escape character. | +| `\s` | Space Character | It represents the ASCII space character. | +| `\d` | Delete Character | It represents the ASCII DEL character. | + +## Constants + +Add `const` before a variable declaration to prevent the value from being changed. + +```C +const float PI 3.14159; +``` + +Another option is to use `define`. + +```C +#define MAX 9 +``` + +This command replaces the 'MAX' word with '9', using the preprocessor (before compiling). No extra memory required. + +## Arithmetic Operators + +```C +// + (addition) +// - (subtraction) +// * (multiplication) +// / (division) +// % (modulus / remainder) +// ++ (increment) +// -- (decrement) +int x = 1; +int y = 2; +int z = x + y; // 3 +// Augmented assignment operators +x++; // x = x + 1 +y--; // y = y - 1 +x+=2; // x = x + 2 +x*=2; // x = x * 2 +``` + +## Control Flow + +### Boolean Values + +In `C`, there are no `true` or `false` keywords, so integers are used instead. +- `0` generally represents `false`. +- Any non-zero value (`1`, `-1`, etc…) represents `true`. + +### IF Statement + +```C +if(a == 1) printf("A is 1.\\n"); +``` + +Use `{}` for multiple items. + +```C +if(age == 18){ + printf("You are 18."); +} +else if(age < 0){ + printf("You haven't been born yet."); +} +else{ + printf("You are not 18."); +} +``` + +### Switch Statement + +Faster than IF when over 5 cases. + +```C +switch(grade){ + case 'A': + printf("perfect.\n"); + break; + case 'B': + printf("good.\n"); + break; + case 'C': + printf("okay.\n"); + break; + case 'D': + printf("meh.\n"); + break; + case 'F': + printf("failed.\n"); + break; + default: + printf("Enter only valied grades.\n"); +} +// If break; is missing, the next case is also executed. +``` + +## Operators + +### Logical Operators + +#### AND (`&&`) + +```C +if(temp >= 0 && temp <= 30){ + printf("\nThe weather is good.") +} +``` + +#### OR (`||`) + +```C +if(temp <= 0 || temp >= 30){ + printf("\nThe weather is good.") +} +``` + +#### NOT (`!`) + +```C +if(!(temp <= 0 || temp >= 30)){ + printf("\nThe weather is bad.") +} +``` + +##### **NOT** Truth Table + +| `condition` | `!(condition)` | +| ----------- | -------------- | +| 1 | 0 | +| 0 | 1 | + +### Ternary Operator + +Shorthand syntax for if/else when assigning or returning a value. + +```C +// (condition) ? value if true : value if false +int max = (x > y) ? x : y; +``` + +### Bitwise Operators + +Special operators used in bit-level programming. (Logic gates) + +```C +int x = 6; // 6 = 00000110 +int y = 12; // 12 = 00001100 +int z = 0; // 0 = 00000000 +z = x & y; // AND - 00000100 (4) +z = x | y; // OR - 00001110 (14) +z = x ^ y; // XOR - 00001010 (10) +z = x << 1; // Left Shift - 00001100 (12) (Shift all bits to the left.) +z = x >> 1; // Right Shift - 00000011 (3) (Shift all bits to the right.) +``` + +## Functions + +Functions are snippets of code that can be reused multiple times across the same file. These can receive multiple arguments as input, but can only return a single value. + +```C +void myFunction(); // Function Prototype +int main() { + myFunction(); // Call function + return 0; +} +void myFunction() { // Function Definition + //... +} +``` + +### Arguments + +```C +void greet(char x[], int y); +int main() { + char name[] = "Trude"; + int age = 132; + greet(name, age); +} +void greet(char x[], int y) { + printf("\nHello %s, you are %d years old.", x, y); +} +``` + +### Return Values + +```C +double square(double x); +int main() { + double x = square(3.14); + printf("%lf", x); + return 0; +} +double square(double x) { + return x * x; +} +``` + +### Recursion + +A function can call itself, creating a loop. + +```C +int i = 0; +void plusOne(int n) { + printf("%d", n); + if (n < 10000) plusOne(n); +} +``` + +### Function Prototypes + +Function declaration without a body, before `main()`. +Prototypes ensure that calls to a function are made with the correct arguments, and allow functions to be defined under the function call. + +```C +void hello(char[], int); // Function Prototype +int main() { + hello(//...); + return 0; +} +void hello(char name[], int age){ + //... +} +``` + +> **Note:** Many C compilers don't check for parameter matching, so missing arguments can lead to unexpected behavior. +> +> Function prototypes flag errors when arguments are missing. +> +> While not necessary if functions are declared before `main()`, using prototypes first and then declaring functions after `main()` improves readability and aids debugging. + +## Loops + +### For Loop + +Loop through an interval. + +```C +for(int i = 0; i < 10; i++){ + printf("%d\n", I); //0-9 +} +//Multiple initial variables +for(int i = 0, int y = 1; i < 10; i++){ + printf("%d\n", I); //0-9 +} +``` + +### While Loop + +Loop until a condition is met. + +```C +while(test == 1){ + printf("Test is not 1.\n"); +} +``` + +### Do While Loop + +Run the code once, then repeat until a condition is met. + +```C +do { + printf("Enter a number above 0: "); + scanf("%d", &number) +} while (number > 0); +``` + +### Endless Loop + +```C +while (true) { + ... +} +``` + +### Continue & Break Statements + +- `continue` - Skips rest of code and forces the next iteration of the loop. +- `break` - Exits a loop/switch. + +## Structs + +Structs can group values. They are similar to classes, but can't hold methods. +Being able to group variables avoids repetition and name collision (when two variables have the same name). + +```C +struct Player { + char name[12]; + int score; +}; +int main(){ + struct Player player1; + struct Player player2; + strcpy(player1.name, "Trude"); + player1.score = 4; + strcpy(player2.name, "JCionx"); + player2.score = 7; + player1.score; //4 +} +``` + +### Arrays of Structs + +```C +struct Student { + char name[12]; + float gpa; +}; +int main() { + struct Student s1 = {"Peter", 3.0}; + struct Student s2 = {"Jean", 4.0}; + struct Student s3 = {"David", 2.5}; + struct Student students[] = {s1, s2, s3}; + printf("%f\n", students[0].gpa); // Print the student 1 gpa. + return 0; +} +``` + +## Typedef + +Create a shortcut for a type of data. + +```C +typedef char user[25]; +int main() { + user user1 = "Trude"; +} +``` + +Typedef can be used to simplify structs. + +```C +typedef struct { + char name[25]; + char password[12]; + int id; +} User; +int main(){ + User user1 = {"Trude", "hello123", 12335}; +} +``` + +## Nul Character + +```C +\0 // This character represents 00000000 and marks the end of a string. +// Same as 0x0 and null. +``` + +## Command-Line Arguments + +- `argc` is the number of arguments in `argv`. +- `argv[0]` is the name of the program, all others are the user arguments. + +```C +int main(int argc, char argv[]) { + if (argc == 2) { + printf("hello, %s\n", argv[1]); + } else { + printf("You need to add 1 argument.\n"); + return 1; + } + return 0; +} +``` + +## Enums + +Enums are a list of constant values that help make programs more readable. +Enums are treated as integers. + +```C +// enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat}; (This enum starts from 0 to 6.) +enum Day{Sun = 1, Mon = 2, Tue = 3, Wed = 4, Thu = 5, Fri = 6, Sat = 7}; +int main(){ + enum Day today = Sun; + if(today == Sun || today == Sat){ + printf("It's the weekend."); + } +} +``` + +## Memory Management + +- `a` - A variable +- `&a` - The address of the variable `a` in memory. (The format is `%p`) +- `int *p` - A pointer. Holds the memory address of another variable. (8 bits usually, depends on the CPU architecture (max RAM supported). +- `*p` - Dereference a pointer. Returns the value in the address stored. (go to address's variable) + +```C +int age = 21; +int *pAge = &age; +int valueOfAge = *pAge; +printf("%p and %p are the same.", &age, pAge); +``` + +NOTE: A pointer must be `int`, as it points to a memory address. + +### Strings + +Strings are arrays of characters. +A string can be returned as a memory address. +A string ends in `\0`, the null character. + +```C +/* Use char[] when: + - The maximum string length is known. + - No need to modify the whole string. + - No need to pass the string to a function [that modifies it] +*/ +char name[] = "Trude"; // 6 bits on stack memory. +name[0] = 'T'; // Elements of an array can be modified. +/* Use char* when: + - The maximum string length is NOT known. + - The string will later be modified. + - The string will be passed to a function [that modifies it]. +*/ +const char *name = "Trude"; // 8 bits in stack + 6 bits read-only. +name = "TrudeEH"; // Pointers can be overwritten. +name++; // rudeEH - Works because the pointer is shifted to the next value. +peintf("%c\n", *(name+1)); // Prints 'r'. +printf("%c\n", name[1]); // Works with both for reading. +printf("%s\n", name); // Print a string. +// The string in memory: +// [T][r][u][d][e][\\0] +// The memory address of T is stored. +``` + +### String Operations + +#### Compare String + +```C +#include +#include +char s* = "Trude"; +char t* = "Trude"; +if (strcmp(s, t) == 0) { + printf("Same string."); +} +``` + +#### Copy String (`malloc` example) Manually + +```C +#include +char *s = "Trude"; +char *t = malloc(strlen(s) + 1); +// 2 variables are declared, so strlen isn't called with every iteration. +for (int i = 0, n = strlen(s) + 1; i < n; i++) { + t[i] = s[i]; +) +//... +free(t); +``` + +#### Copy String (string.h) + +```C +#include +#include +char *s = "Trude"; +char *t = malloc(strlen(s) + 1); +strcpy(t, s); +//... +free(t); +``` + +Note: Use `valgrind` to detect memory leaks (lack of `free()`) + +> **Always** initialize variables to a value, or random garbage values may be still in the variable's memory address. + +### Input + +#### Get Integer + +```C +#include +int main(void){ + int x; + scanf("%i", &x); +} +``` + +#### Get String (Length is Known, safe) + +`scanf` reads up to a whitespace. + +```C +#include +int main(void){ + char s[4]; + scanf("%4s", s); //No &, s is an address already. +} +``` + +`fgets` reads whitespaces. + +```C +#include +#include +int age; +char name[25]; +printf("What is your name? "); +fgets(name, 25, stdin); // name of variable, max size, input. +name[strlen(name)-1] = '\0'; // removes the line break fgets adds. String library is required. +printf("How old are you? "); +scanf("%d", &age); +``` + +## Files + +### Write to a File + +```C +#include +int main() { + FILE *file = fopen("test.txt", "w"); // w - overwrite / a - append + fprintf(file, "Some Text"); + fclose(file); + return 0; +} +``` + +### Delete a File + +```C +#include +int main() { + if(remove("test.txt") == 0){ + printf("File removed.\n"); + } else { + printf("Failed to delete file.\n"); + } + return 0; +} +``` + +### Read a File + +```C +#include +int main() { + FILE *pF = fopen("test.txt", "r") // r - read. + char buffer[255]; // Will hold 1 line of the file. + if(pF == NULL){ + printf("File does not exist."); + return 1; + } + fgets(buffer, 255, pF); + printf("%s", buffer); // Print first line of file. Use in a while loop to print all of them. + fclose(pF); + return 0; +} +``` + +File manipulation accepts relative and absolute file paths. diff --git a/content/notes/ready/c-snippets.md b/content/notes/ready/c-snippets.md new file mode 100644 index 0000000..156a377 --- /dev/null +++ b/content/notes/ready/c-snippets.md @@ -0,0 +1,38 @@ +--- +title: C Snippets +description: +draft: false +tags: + - c + - programming +author: TrudeEH +showToc: true +--- + +## Cast Strings to Numbers + +The `atoi()` function in `stdlib` is implemented similarly to the one below. + +ASCII encodes numbers in order, after special characters. + +The encoded value for `'0'` is 48, so subtracting any numeric char by 48 outputs its real numerical value. + +```C +char number = '7'; +int result = number - 48; +int same_result = number - '0'; +``` + +Algorithm to convert strings to numbers: + +```C +int str_to_int(char *str) { + int result = 0; + for (int i = 0; str[i] != '\0'; i++) { + if (str[i] < '0' && str[1] > '9') return -1; // Error if NaN + result = (result * 10) + (str[i] - '0'); + return result; +} +``` + +`(result * 10)` is shifting the previous number to the left, as it is an order of magnitude above the following digit. diff --git a/content/notes/ready/compiling.md b/content/notes/ready/compiling.md new file mode 100644 index 0000000..75dc0ba --- /dev/null +++ b/content/notes/ready/compiling.md @@ -0,0 +1,79 @@ +--- +title: Compiling [MAKE / GCC] +description: +draft: false +tags: + - c + - programming +author: TrudeEH +showToc: true +--- + + +Convert `C` code into machine code in 4 steps: +1. **Preprocessing** (Convert all preprocessor instructions: `#…`) +2. **Compiling** (Convert `C` code to machine code) +3. **Assembling** (Compile the necessary libraries) +4. **Linking** (Merge the compiled code with the compiled libraries) + +## Libraries + +Libraries are pre-written collections of code that can be reused in other programs. On **UNIX* systems, they are usually located in the `/lib/` and `/usr/include` directories. + +### Math.h + +For example, `math.h` is very useful to implement complex arithmetic operations. + +```C +#include +double A = sqrt(9); +double B = pow(2, 4); +int C = round(3.14); +int D = ceil(3.14); +int E = floor(3.99); +double F = fabs(-100); +double G = log(3); +double H = sin(45); +double I = cos(45); +double J = tan(45); +``` + +### Using Libraries + +To use a library, we first have to include it in the `C` code. + +```C +#include // cs50.h library will be included. +``` + +Then, the library must be linked at compile time. + +```Shell +gcc -o hello hello.c -lcs50 +./hello +``` + +## Optimization Flags + +- `-O2` Optimize for speed +- `-O3` Optimize for speed aggressively +- `-Os` Optimize for size +- `-Og` Optimize for debugging +- `-Oz` Optimize for size aggressively + +## Make + +`Make` Is a build automation tool that automates the process of compiling, linking and building executables. +An example `Makefile` could look like the following: + +```Makefile +hello: + gcc -o hello hello.c -lcs50 +clean: + rm -f hello +``` + +```Shell +make #Compiles hello.c +make clean #Removes the executable (hello) generated by the make command. +``` diff --git a/content/notes/ready/cpu_architecture/image10.png b/content/notes/ready/cpu_architecture/image10.png new file mode 100644 index 0000000..a29ad36 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image10.png differ diff --git a/content/notes/ready/cpu_architecture/image11.png b/content/notes/ready/cpu_architecture/image11.png new file mode 100644 index 0000000..b8eef0f Binary files /dev/null and b/content/notes/ready/cpu_architecture/image11.png differ diff --git a/content/notes/ready/cpu_architecture/image12.png b/content/notes/ready/cpu_architecture/image12.png new file mode 100644 index 0000000..dbb22b3 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image12.png differ diff --git a/content/notes/ready/cpu_architecture/image13.png b/content/notes/ready/cpu_architecture/image13.png new file mode 100644 index 0000000..ee9a35f Binary files /dev/null and b/content/notes/ready/cpu_architecture/image13.png differ diff --git a/content/notes/ready/cpu_architecture/image14.png b/content/notes/ready/cpu_architecture/image14.png new file mode 100644 index 0000000..52d8fee Binary files /dev/null and b/content/notes/ready/cpu_architecture/image14.png differ diff --git a/content/notes/ready/cpu_architecture/image15.png b/content/notes/ready/cpu_architecture/image15.png new file mode 100644 index 0000000..8546894 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image15.png differ diff --git a/content/notes/ready/cpu_architecture/image16.png b/content/notes/ready/cpu_architecture/image16.png new file mode 100644 index 0000000..ed1ce0d Binary files /dev/null and b/content/notes/ready/cpu_architecture/image16.png differ diff --git a/content/notes/ready/cpu_architecture/image17.png b/content/notes/ready/cpu_architecture/image17.png new file mode 100644 index 0000000..533bdec Binary files /dev/null and b/content/notes/ready/cpu_architecture/image17.png differ diff --git a/content/notes/ready/cpu_architecture/image18.png b/content/notes/ready/cpu_architecture/image18.png new file mode 100644 index 0000000..ed2d124 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image18.png differ diff --git a/content/notes/ready/cpu_architecture/image19.png b/content/notes/ready/cpu_architecture/image19.png new file mode 100644 index 0000000..d918267 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image19.png differ diff --git a/content/notes/ready/cpu_architecture/image20.png b/content/notes/ready/cpu_architecture/image20.png new file mode 100644 index 0000000..ee55326 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image20.png differ diff --git a/content/notes/ready/cpu_architecture/image21.png b/content/notes/ready/cpu_architecture/image21.png new file mode 100644 index 0000000..7ce31d1 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image21.png differ diff --git a/content/notes/ready/cpu_architecture/image22.png b/content/notes/ready/cpu_architecture/image22.png new file mode 100644 index 0000000..2d18cde Binary files /dev/null and b/content/notes/ready/cpu_architecture/image22.png differ diff --git a/content/notes/ready/cpu_architecture/image23.png b/content/notes/ready/cpu_architecture/image23.png new file mode 100644 index 0000000..33ce9c2 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image23.png differ diff --git a/content/notes/ready/cpu_architecture/image24.png b/content/notes/ready/cpu_architecture/image24.png new file mode 100644 index 0000000..699f4d4 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image24.png differ diff --git a/content/notes/ready/cpu_architecture/image25.png b/content/notes/ready/cpu_architecture/image25.png new file mode 100644 index 0000000..1e6d725 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image25.png differ diff --git a/content/notes/ready/cpu_architecture/image26.png b/content/notes/ready/cpu_architecture/image26.png new file mode 100644 index 0000000..4adf2ab Binary files /dev/null and b/content/notes/ready/cpu_architecture/image26.png differ diff --git a/content/notes/ready/cpu_architecture/image27.png b/content/notes/ready/cpu_architecture/image27.png new file mode 100644 index 0000000..eb7e2dd Binary files /dev/null and b/content/notes/ready/cpu_architecture/image27.png differ diff --git a/content/notes/ready/cpu_architecture/image28.png b/content/notes/ready/cpu_architecture/image28.png new file mode 100644 index 0000000..5ddf613 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image28.png differ diff --git a/content/notes/ready/cpu_architecture/image29.png b/content/notes/ready/cpu_architecture/image29.png new file mode 100644 index 0000000..c861663 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image29.png differ diff --git a/content/notes/ready/cpu_architecture/image30.png b/content/notes/ready/cpu_architecture/image30.png new file mode 100644 index 0000000..dc313dd Binary files /dev/null and b/content/notes/ready/cpu_architecture/image30.png differ diff --git a/content/notes/ready/cpu_architecture/image31.png b/content/notes/ready/cpu_architecture/image31.png new file mode 100644 index 0000000..ed9bc10 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image31.png differ diff --git a/content/notes/ready/cpu_architecture/image32.png b/content/notes/ready/cpu_architecture/image32.png new file mode 100644 index 0000000..61dc1d4 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image32.png differ diff --git a/content/notes/ready/cpu_architecture/image33.png b/content/notes/ready/cpu_architecture/image33.png new file mode 100644 index 0000000..ca8c04b Binary files /dev/null and b/content/notes/ready/cpu_architecture/image33.png differ diff --git a/content/notes/ready/cpu_architecture/image34.png b/content/notes/ready/cpu_architecture/image34.png new file mode 100644 index 0000000..35d0cfa Binary files /dev/null and b/content/notes/ready/cpu_architecture/image34.png differ diff --git a/content/notes/ready/cpu_architecture/image35.png b/content/notes/ready/cpu_architecture/image35.png new file mode 100644 index 0000000..6012a2f Binary files /dev/null and b/content/notes/ready/cpu_architecture/image35.png differ diff --git a/content/notes/ready/cpu_architecture/image36.png b/content/notes/ready/cpu_architecture/image36.png new file mode 100644 index 0000000..ef3368a Binary files /dev/null and b/content/notes/ready/cpu_architecture/image36.png differ diff --git a/content/notes/ready/cpu_architecture/image37.png b/content/notes/ready/cpu_architecture/image37.png new file mode 100644 index 0000000..99d9e06 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image37.png differ diff --git a/content/notes/ready/cpu_architecture/image38.png b/content/notes/ready/cpu_architecture/image38.png new file mode 100644 index 0000000..c4164fe Binary files /dev/null and b/content/notes/ready/cpu_architecture/image38.png differ diff --git a/content/notes/ready/cpu_architecture/image39.png b/content/notes/ready/cpu_architecture/image39.png new file mode 100644 index 0000000..4f20dc9 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image39.png differ diff --git a/content/notes/ready/cpu_architecture/image8.png b/content/notes/ready/cpu_architecture/image8.png new file mode 100644 index 0000000..d1d0758 Binary files /dev/null and b/content/notes/ready/cpu_architecture/image8.png differ diff --git a/content/notes/ready/cpu_architecture/image9.png b/content/notes/ready/cpu_architecture/image9.png new file mode 100644 index 0000000..b57aaba Binary files /dev/null and b/content/notes/ready/cpu_architecture/image9.png differ diff --git a/content/notes/ready/cpu_architecture/index.md b/content/notes/ready/cpu_architecture/index.md new file mode 100644 index 0000000..144883b --- /dev/null +++ b/content/notes/ready/cpu_architecture/index.md @@ -0,0 +1,161 @@ +--- +title: CPU Architecture +description: +draft: false +tags: + - computer-science +author: TrudeEH +showToc: true +--- + +## Components + +### Registers + +We can combine registers to reduce the amount of wires needed. +![image8](image8.png) +Using a data bus (wiring at the top) and a binary decoder, we can select which register to read/write to. + +### Memory + +![image9](image9.png) + +## Assembly + +Assembly is a human-friendly representation of code: binary values that a computer can understand. +![image10](image10.png) +An assembler converts ASM instructions into machine code, which is given to the CPU as input. + +### Arithmetic Operations + +For example, a simple computer architecture could use `00` to represent arithmetic operations. +![image11](image11.png) +To decide which type of operation to execute (subtraction, multiplication, addition, etc), the 3rd and 4th bits could be used. +![image12](image12.png) +Using a [index](ready/binary_operations/index.md), we can build an inefficient, but simple circuit to do this. +![image13](image13.png) +This type of circuit is an Arithmetic Logic Unit (ALU). + +### Memory Operations + +Of course, assembly can also provide instructions to store or load values. +![image14](image14.png) + +#### Load + +```Assembly +LOAD R2 1000 ;Load into register 2 the value in the memory address 1000 +``` + +![image15](image15.png) + +#### Store + +```Assembly +STORE R1 0110 ;Store the value in register 1 into the 0110 memory address +``` + +![image16](image16.png) + +#### Select Which Instruction to Execute (first 2 bits) + +To decide which operation to execute, a binary decoder can be used. +![image17](image17.png) +For memory operations, the 3rd and 4th bits are used to select which register to use. +![image18](image18.png) +The last 4 bits represent the memory address to read/write to. +![image19](image19.png) + +### Instruction Register + +For the instruction to be given, it is stored in a special register: An Instruction Register. +![image20](image20.png) + +### Optimization + +We can use a single Binary Decoder instead of two, to achieve the same result. (Optimization on the right pane) +![image21](image21.png) +Different architectures can have the exact same functionality, while being implemented differently, or even having different instructions. This is why code that is compiled for Intel x64 is not compatible with ARM or RISC-V. + +## Control Unit + +We can finally add the ALU (Arithmetic Logic Unit) we built before into the new circuit, like so: +![image22](image22.png) +The gray trapezoids are multiplexers: +![image23](image23.png) +The output value is then stored in a temporary register, before replacing the first operand register's value. +The component we just built to control the `ALU` is part of a `Control Unit`. The full `control unit` is very complex, as it needs to handle every possible instruction. (So far, we have seen how to implement the `ALU` and `RAM`.) +![image24](image24.png) +Each register in the `CU` has a specific purpose, unlike `RAM`, which can be used to store any values. +![image25](image25.png) +To read the first instruction, the `CU` will **fetch** data from the first address in memory. +![image26](image26.png) +After **fetching**, the `CU` will **decode** the instruction: interpret the bit sequence in the `instruction register`, to send the necessary signals to the components that will **execute** the instruction. We can finally load instructions into the instruction register. +![image27](image27.png) +Then, the `CU` increments 1 byte, to point the `address register` to the next instruction. (Modern architectures increment different values, as the instruction set is more complex) +If the instruction is an arithmetic operation, the steps are similar. The ALU stores the output in a temporary register, which overwrites the register 0 with the result. The result can then be stored in `RAM`. +![image28](image28.png) + +## Load a Program Into Memory + +So far, we can store instructions in memory, but it is also necessary to store values, besides from the instructions themselves. +For example: +![image29](image29.png) +This program uses 2 numeric values. The first 2 instructions load these values into the registers, and then, these values are added together and stored in another memory address. The final instruction, `HALT`, marks the end of the program, to make sure the `CU` does not attempt to read the number 20 as an instruction. +If the program is extended, all memory addresses must be altered. To fix this issue, we can instead store values at the end of the memory stack. +![image30](image30.png) + +## Conditions and Loops + +To create a loop, we can simply jump to a smaller address in memory. +![image31](image31.png) +Internally, the `JMP` command overwrites the Address Register, making it so that the next CPU **cycle** *fetches* the chosen memory address, instead of the next one. +![image32](image32.png) + +### Flags + +Sometimes, we might want to loop only if a certain condition is met. +For context, imagine subtracting a number from itself. In this case, the ALU will provide some extra information, using 1 bit registers called `flags`. +![image33](image33.png) + +| N | Flag | Description | +| --- | ------------ | --------------------------------------------------------- | +| 0 | **O**verflow | When a number is too large to fit in the output register. | +| 1 | **Z**ero | When the result is zero. | +| 0 | **N**egative | When a number is negative. | + +This additional information can be used to make decisions, and make **conditional jumps** possible. + +| ASM | Command | Description | +| -------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `JMP_OFW XXXX` | Jump Overflow | Overwrites the `Address Register` with the value `XXXX` if the `O_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**. | +| `JMP_ZRO XXXX` | Jump Zero | Overwrites the `Address Register` with the value `XXXX` if the `Z_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**. | +| `JMP_NEG XXXX` | Jump Negative | Overwrites the `Address Register` with the value `XXXX` if the `N_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**. | +| `JMP_ABV XXXX` | Jump Above | Overwrites the `Address Register` with the value `XXXX` if **neither** the `Z_FLAG` nor `N_FLAG` are **ON**. If either is **ON,** the `Address Register`'s value is incremented by **1**. | + +Comparing two numbers is the same as subtracting them. + +$$a - 5 = b$$ + +| **b** is negative | **b** is zero | **b** is positive | +| ----------------- | ------------- | ----------------- | +| then | then | then | +| a < 5 | a == 5 | a > 5 | + +For example: +![image34](image34.png) +An `IF` statement works in the exact same way, but without the need to loop: +![image35](image35.png) +Note: These instructions are not from any real architecture. These are examples for this simple, custom architecture. + +## Clock + +The final piece of the puzzle is the clock. A clock can give us time before a circuit loops. +![image36](image36.png) +This is necessary, because energy travels extremely quickly, and so, all memory would be reset before we could even use the stored values. Each clock tick corresponds to an action the `CU` performs (fetch, decode and execute). +A `Data FLIP-FLOP`, for example, uses the clock to store data, acting as the manual `RESET` input. +![image37](image37.png) +This circuit can be used to build a single bit register. +![image38](image38.png) +To generate a clock pulse, we can use a circuit similar to this one: +![image39](image39.png) diff --git a/content/notes/ready/databases/image94.png b/content/notes/ready/databases/image94.png new file mode 100644 index 0000000..4c2aaca Binary files /dev/null and b/content/notes/ready/databases/image94.png differ diff --git a/content/notes/ready/databases/image95.png b/content/notes/ready/databases/image95.png new file mode 100644 index 0000000..923ca4e Binary files /dev/null and b/content/notes/ready/databases/image95.png differ diff --git a/content/notes/ready/databases/index.md b/content/notes/ready/databases/index.md new file mode 100644 index 0000000..556a54b --- /dev/null +++ b/content/notes/ready/databases/index.md @@ -0,0 +1,321 @@ +--- +title: Databases [SQL] +description: +draft: false +tags: + - programming + - web +author: TrudeEH +showToc: true +--- + +## Flat-File Databases + +A "table" written into a single file. The most common file type for this purpose is `CSV`. +The `CSV` format reads each line as a row, and each comma-separated value as a column. +The first row on a `CSV` file is used to describe the data in each column. If a `,` is present on the dataset, surround that entry with `"` to 'escape' it. +These files can be read and written to using languages like [c-language](../c-language.md) and [python](../python.md). + +## Relational Databases + +Instead of using a single table, a relational database can store data in multiple tables, and then define relationships between them. +Each table must have one column with an unique key that identifies each row. +![image94](image94.png) + +### Relationships + +#### One-to-one Relationship + +In this example, `id` in `shows` corresponds to the `show_id` in the `ratings` table. + +#### One-to-many Relationship + +`shows` has a one-to-many relationship with `genres`, because a single show entry can have many genders. + +#### Many-to-many Relationship + +Both the `people` and `writers` table have a field shared with `stars`. + +## SQL + +`SQL` is a language designed specifically for interfacing with relational databases. +To use `SQL`, a database is needed, so, for this example, I will use `sqlite3`. + +### Create a Database + +```Shell +sqlite3 name.db # Create a db file and initialize it. +``` + +### `sqlite3` Commands + +#### Import a `CSV` Table + +```SQL +.mode csv +.import name.csv table_name +``` + +#### General Commands + +```SQL +.schema -- Print all tables and fields (using the commands used for creation) +.schema table -- Show the command used for creating a table +.exit +``` + +### Base Syntax + +```SQL +CREATE TABLE table (column type, ...); -- Create a new table +SELECT columns FROM table; -- Output/Print data +INSERT INTO table (column, ...) VALUES(value, ...); -- Add data +UPDATE table SET column = value WHERE condition; -- Update values +DELETE FROM table WHERE condition; -- Delete data +``` + +> In `SQL`, there is **NO WAY** to undo actions. Especially when writing or deleting from the database, do not type `;` unless you know exactly what you are doing! + +#### Wildcard + +```SQL +SELECT * FROM table; -- Outputs every column in the table (wildcard selector) +``` + +### Functions + +#### Math Functions + +- `AVG` +- `COUNT` +- `DISTINCT` +- `LOWER` +- `MAX` +- `MIN` +- `UPPER` +- `LOWER` +- `…` + + ```SQL + SELECT COUNT(*) FROM table; -- Counts the number of rows in a table + SELECT DISTINCT column from table; -- Show only the unique values in a column + SELECT COUNT(DISTINCT column) FROM table; -- Count the unique values in a column + ``` + +#### Logic Functions + +- `GROUP BY` +- `LIKE` +- `LIMIT` +- `ORDER BY` +- `WHERE` +- `…` + +```SQL +-- Count every instance of a value in a column +SELECT COUNT(*) FROM table WHERE column = 'string'; +-- LIKE is used to select using formatting. '%' selects every character after) +SELECT * FROM favorites WHERE prog_language = 'C' AND problem LIKE "Hello, %" +-- Group all individual rows and display their count +SELECT prog_language, COUNT(*) FROM favorites GROUP BY prog_language; +-- Sort values by their count, ascending. +SELECT prog_language, COUNT(*) FROM favorites GROUP BY prog_language ORDER BY COUNT(*); +-- Sort values by their count, descending. +SELECT prog_language, COUNT(*) FROM favorites GROUP BY prog_language ORDER BY COUNT(*) DESC; +-- Limit the output to a single row (showing the most popular language, in this case) +SELECT prog_language, COUNT(*) FROM favorites GROUP BY prog_language ORDER BY COUNT(*) DESC LIMIT 1; +``` + +#### Operators + +- `AND` +- `OR` + +```SQL +-- Using the AND operator to select two values +SELECT * FROM table WHERE column1 = 'a' AND column2 = 'b'; +-- AND and OR (' is escaped using '' (' twice)) +SELECT * FROM table WHERE prog_language = 'C' AND (problem = 'Hello, World' OR problem = 'Hello, It''s Me'); +``` + +#### Aliases + +- `AS` + +```SQL +-- The column COUNT(*) will be renamed to 'n'. +SELECT prog_language, COUNT(*) AS n FROM favorites GROUP BY prog_language ORDER BY n DESC; +``` + +#### Conditions + +- `IS` + +```SQL +-- Delete all values where timestamp1 is a NULL value. +DELETE FROM favorites WHERE timestamp1 IS NULL; +``` + +### Data Types + +- `BLOB` +- `INTEGER` +- `NUMERIC` +- `REAL` +- `TEXT` + +- `NULL` +- `NOT NULL` +- `UNIQUE` + +- `PRIMARY KEY` +- `FOREIGN KEY` + +### Relationships + +- `IN` +- `JOIN` + +#### One-to-one + +```SQL +-- 'shows' table +CREATE TABLE shows ( + id INTEGER, + title TEXT NOT NULL, + year NUMERIC, + episodes INTEGER, + PRIMARY KEY(id) +); +-- Table connected with a one-to-one relationship with the 'shows' table +CREATE TABLE ratings ( + show_id INTEGER NOT NULL, + rating REAL NOT NULL, + votes INTEGER NOT NULL, + FOREIGN KEY(show_id) REFERENCES shows(id) +); +-- Lists 'show_id', but not the actual names of each show. +SELECT show_id FROM ratings WHERE rating >= 6.0 LIMIT 10; +-- Executes the nested query first, then shows the entries selected on 'shows' +SELECT * FROM shows WHERE id IN +(SELECT show_id FROM ratings WHERE rating >= 6.0) +LIMIT 10; +-- Join both tables +SELECT title, rating FROM shows JOIN +ratings ON shows.id = ratings.show_id WHERE rating >= 6.0 +LIMIT 10; +``` + +#### One-to-many + +- `ON` + +```SQL +CREATE TABLE genres ( + show_id INTEGER NOT NULL, + genre TEXT NOT NULL, + FOREIGN KEY(show_id) REFERENCES shows(id) +); + +-- Search for all genres for a show +SELECT genre FROM genres WHERE show_id = +(SELECT id FROM shows WHERE title = 'TitleOfShow'); +-- Join tables, to show title alongside genres of a show +SELECT title, genre FROM shows JOIN genres ON shows.id = +genres.show_id WHERE id = +(SELECT id FROM shows WHERE title = 'TitleOfShow'); +``` + +#### Many-to-many + +![image95](image95.png) + +```SQL +-- Select every person who starred in a show +SELECT name FROM people WHERE id IN +(SELECT person_id FROM stars WHERE show_id = +(SELECT id FROM shows WHERE title = 'Some Name')); +-- Joined table with the show name and stars +SELECT title FROM shows JOIN people.name WHERE id IN +(SELECT person_id FROM stars WHERE show_id = +(SELECT id FROM shows WHERE title = 'Some Name')); +-- Another way to join tables +SELECT title FROM shows, stars, people +WHERE shows.id = stars.show_id +AND people.id = stars.person_id +AND name = 'Name'; +``` + +### Indexes + +Load an index of the database into RAM to optimize searches. +The underneath algorithm is a `B-Tree`, which takes up more space in memory and slightly slows write speed on the database. + +```SQL +CREATE INDEX name ON table (column, ...); +.timer ON -- sqlite3 command to show how long operations take to complete +SELECT * FROM shows WHERE title = 'Name'; -- 0.043s +CREATE INDEX title_index ON shows(title); -- Index title on shows +SELECT * FROM shows WHERE title = 'Name'; -- 0.001s +SELECT name FROM people WHERE id IN +(SELECT person_id FROM stars WHERE show_id = +(SELECT id FROM shows WHERE title = 'Some Name')); -- 0.215s +CREATE INDEX name_index ON people(name); +CREATE INDEX person_index ON stars(person_id); +SELECT name FROM people WHERE id IN +(SELECT person_id FROM stars WHERE show_id = +(SELECT id FROM shows WHERE title = 'Some Name')); -- 0.001s +``` + +### Race Conditions + +When `SQL` is integrated with languages such as `Python`, for example, or is being accessed by multiple instances, race conditions may arise. +For example, consider the following code: + +```Python +... +rows = db.execute("SELECT likes FROM posts WHERE id = ?", id); +likes = rows[0]["likes"] +db.execute("UPDATE posts SET likes = ? WHERE id = ?", likes + 1, id); +``` + +If this code is executed twice at the same time, instead of adding 2 likes to the database, only one will be added, because the program would read the database in the same state, and then add +1 like to that same, previous state. +`SQL` provides solutions to this in the form of **transactions**: +- `BEGIN TRANSACTION` +- `COMMIT` +- `ROLLBACK` +On `Python`, a solution could be: + +```Python +db.execute("BEGIN TRANSACTION") +rows = db.execute("SELECT likes FROM posts WHERE id = ?", id); +likes = rows[0]["likes"] +db.execute("UPDATE posts SET likes = ? WHERE id = ?", likes + 1, id); +db.execute("COMMIT") +``` + +Where the database would be "locked" while the program ran. + +### `SQL` Injection Attacks + +If a program asks for user input, and that input is then passed over to the database, the user could write special `SQL` syntax to break the query. +For example: +If a program takes an email address as input, some user could type: `email@example.com'--`, which marks a comment. +If the query was similar to the following: + +```Python +rows = db.execute(f"SELECT * FROM users WHERE email = '{email}' AND password = {psk}") +``` + +Replacing values… + +```Python +rows = db.execute(f"SELEC * FROM users WHERE email = 'email@example.com'--' AND password = 'password123'") +``` + +Which would result in the user being able to log in without needing a password. +The solution to this is to use a library which uses placeholders to insert data in queries. + +```Python +rows = db.execute("SELECT * FROM users WHERE email = ? AND password = ?", email, psk) +``` diff --git a/content/notes/ready/diodes.md b/content/notes/ready/diodes.md new file mode 100644 index 0000000..7354795 --- /dev/null +++ b/content/notes/ready/diodes.md @@ -0,0 +1,109 @@ +--- +title: Diodes +description: +draft: false +tags: + - electronics +author: TrudeEH +showToc: true +--- + + + +A diode allows current to only flow in one direction in a circuit. + +## Schematic + +```Plain +Anode (+) --|>|-- Cathode (-) +``` + +## Examples + +```Plain +[Conventional Current (+) -> (-)] +(+)------|>|------(-) Current can flow - The diode is now a conductor. +(+)------|<|------(-) Current can't flow - The diode is now an insulator. +``` + +## Use Cases + +- Protect a circuit (if a battery is connected incorrectly, for example) +- Convert AC to DC current +Fun fact: An LED, for example, is a Light-Emitting Diode. + +## How a Diode Works + +### Conductors and Insulators + +An atom contains the following elements: +- Nucleus (Protons - Neutrons) +- Orbital Shells (Holds the electrons, which orbit around the nucleus) +- Conduction band +The electrons closest to the nucleus hold the most energy. +The outermost shell is the valence shell. A conductor has 1-3 electrons in the valence shell. +If an electron reaches the conduction band, it can break free and move to another atom. +An insulator, however, has a conduction band that is far from the valence shell, making it difficult for an electron to escape. +For example, for copper (a great conductor), the valence shell and conduction band overlap, so it's very easy for an electron to jump between atoms. +Semiconductors have a conduction band close to the valence shell, but have one extra electron in it, making it an insulator. However, given some external energy, some electrons will gain enough energy to reach the conduction band and become free. + +### P-Type and N-Type Doping + +Silicon is a good semiconductor, having 4 electrons in its valence shell. When close to other `Si` atoms, they share 4 electrons with their neighbors, thus, having 8, each, and becoming stable. + +```Plain +Silicon: +Si Si Si Si Si Si Si Si Si Si Si +Si Si Si Si Si Si Si Si Si Si Si +Si Si Si Si Si Si Si Si Si Si Si +Si Si Si Si Si Si Si Si Si Si Si +Si Si Si Si Si Si Si Si Si Si Si +Si Si Si Si Si Si Si Si Si Si Si +``` + +#### N-Type + +Some Phosphorus is added to the Silicon. ==`p`== has one extra electron in its valence shell. +These electrons are not needed, and so, they flow freely from atom to atom. + +```Plain +Si Si p Si Si Si Si Si Si Si p +p Si Si Si Si p Si Si Si Si Si +Si Si Si p Si Si Si Si p Si Si +Si p Si Si p Si Si Si Si Si Si +Si Si Si Si Si Si p Si Si p Si +Si p Si Si Si Si Si Si p Si Si +``` + +#### P-Type + +Some Aluminum is added to the Silicon. `Al` is missing one electron, so it can't provide its 4 neighbors with an electron to share. + +```Plain +Si Si Al Si Si Si Si Si Si Si Al +Al Si Si Si Si Al Si Si Si Si Si +Si Si Si Al Si Si Si Si Al Si Si +Si Al Si Si Al Si Si Si Si Si Si +Si Si Si Si Si Si Al Si Si Al Si +Si Al Si Si Si Si Si Si Al Si Si +``` + +### Combining both Types + +When an N-Type is combined with a P-Type, some electrons from the N-Type side will move over to the P-Type side and occupy the missing electrons there. This creates a barrier between both types, creating an electric field that prevents more electrons from switching sides. + +#### Forward Bias + +If energy is provided to the Cathode, the electrons flow, as the voltage is superior to the barrier's. + +```Plain +(-)-----[P|N]-----(+) +``` + +#### Reverse Bias + +If energy is provided to the Anode, the electrons can't flow, as the barrier expands. + +```Plain +(-)--[P] [N]--(+) +``` diff --git a/content/notes/ready/encryption.md b/content/notes/ready/encryption.md new file mode 100644 index 0000000..72f2f41 --- /dev/null +++ b/content/notes/ready/encryption.md @@ -0,0 +1,117 @@ +--- +title: Encryption [GPG] +description: +draft: false +tags: + - networking + - tools +author: TrudeEH +showToc: true +--- + +## Symmetric Encryption + +- User A sends a password to user B. +- The password is used to encrypt the messages. +- A secure way to share the password is required. + +## Asymmetric Encryption + +- Users A and B have a public key and a private key. +- The public keys are shared, and they are used to encrypt the messages. +- The users can use their private keys to decrypt the messages. + +## GPG + +### Create a Set of Keys + +```Shell +gpg --full-gen-key +Select ECC (sign and encrypt) - The most secure option +Select default curve +``` + +### Encrypt a File + +```Shell +gpg --encrypt -r email@example.org # Encrypt with the recipient (-r) key. +``` + +### Decrypt a File + +```Shell +gpg --decrypt --output # Use the private key to decrypt a file. +``` + +### Encrypt a Message + +```Shell +echo "Very safe message" | --encrypt --armor -r email@example.org +``` + +- `-armor` Saves the encrypted info in plain text. (Great for blog posts or copying/pasting) + +### Decrypt a Message + +GPG automatically figures out which private key to use. The encrypted file includes some metadata. + +```Shell +cat encrypted-message.txt | gpg --decrypt +``` + +### Sign a Message + +Uses a public key to sign a message, making sure that the contents are not tampered with. + +```Shell +echo "Very important message" | gpg --clearsign -u email@example.org +``` + +- `-clearsign` Is used to sign plain (clear) text. + +### Sign a File + +The signature is embedded in the file + +```Shell +gpg --sign -u email@example.org +``` + +The signature is separate from the file + +```Shell +gpg --detach-sign -u email@example.org +``` + +### Verify Signed message/file + +```Shell +gpg --verify signed-message.txt +# or, if detached +gpg --verify +``` + +### Import + +```Shell +gpg --import public.pgp +gpg --import private.pgp +# To be able to use the key for encryption, it must be trusted. +gpg --edit-key email@example.com +> trust +> 5 +``` + +### Export + +```Shell +gpg --output public.pgp --armor --export email@example.com +gpg --output private.pgp --armor --export-secret-keys email@example.com +``` + +### List Keys + +```Shell +gpg --list-keys # Same as gpg -k +gpg --list-secret-keys +``` diff --git a/content/notes/ready/flask.md b/content/notes/ready/flask.md new file mode 100644 index 0000000..2a039f0 --- /dev/null +++ b/content/notes/ready/flask.md @@ -0,0 +1,348 @@ +--- +title: Flask +description: +draft: false +tags: + - programming + - web +author: TrudeEH +showToc: true +--- + + + +Flask is a web framework for Python. It facilitates the creation of web apps (dynamic web pages). + +## Run Flask + +Flask comes with its own server for debugging purposes, which can be started with: + +```Bash +flask run +``` + +## Folder Structure + +```Bash +app.py # main code +requirements.txt # required libraries +static/ # files that never change +templates/ # dynamic files +``` + +## "Hello, name" — Example App + +**templates/index.html** + +```HTML + + + + + Hello + + + hello, {{ name_placeholder }} + + +``` + +**app.py** +`http://website.domain/?name=Trude` + +```Python +from flask import Flask, render_template, request +app = Flask(__name__) +# When user visits / (the website root), load index.html. +# If the key name exists, store the value in a variable. If not, store world. +@app.route("/") +def index(): + name = request.args.get("name", "world") + return render_template("index.html", name_placeholder=name) +``` + +## HTML Form + +### Sample App + +**templates/index.html** + +```HTML + + + + + Hello + + +
    + + +
    + + +``` + +**app.py** +`http://website.domain/?name=Trude` + +```Python +from flask import Flask, render_template, request +app = Flask(__name__) +# When user visits / (the website root), load index.html. +# If the key name exists, store the value in a variable. If not, store world. +@app.route("/") +def index(): + name = request.args.get("name", "world") + return render_template("index.html", name_placeholder=name) +``` + +### Custom Route + +Both the form and /greet works. +**templates/index.html** + +```HTML + + + + + Hello + + +
    + + +
    + + +``` + +**templates/greet.html** + +```HTML + + + + + Hello + + + hello,{{name}} + + +``` + +**app.py** +`http://website.domain/?name=Trude` + +```Python +from flask import Flask, render_template, request +app = Flask(__name__) +# When user visits / (the website root), load index.html. +# If the key name exists, store the value in a variable. If not, store world. +@app.route("/") +def index(): + name = request.args.get("name", "world") + return render_template("index.html", name_placeholder=name) +@app.route("/greet") +def greet(): + return render_template("greet.html", name=request.args.get("name", "world")) +``` + +### Avoid HTML Repetition + +Use a layout instead of copying blocks. +**templates/index.html** + +```HTML +{% extends "layout.html" %} +{% block body %} +
    + + +
    +{% endblock %} +``` + +**templates/greet.html** + +```HTML +{% extends "layout.html" %} +{% block body %} + hello, {{name}} +{% endblock %} +``` + +**templates/layout.html** + +```HTML + + + + + Hello + + + {% block body %}{% endblock %} + + +``` + +**app.py** +`http://website.domain/?name=Trude` + +```Python +from flask import Flask, render_template, request +app = Flask(__name__) +# When user visits / (the website root), load index.html. +# If the key name exists, store the value in a variable. If not, store world. +@app.route("/") +def index(): + name = request.args.get("name", "world") + return render_template("index.html", name_placeholder=name) +@app.route("/greet") +def greet(): + return render_template("greet.html", name=request.args.get("name", "world")) +``` + +### Hide Sensitive Requests from the URL + +Use post instead of get. +**templates/index.html** + +```HTML +{% extends "layout.html" %} +{% block body %} +
    + + +
    +{% endblock %} +``` + +**templates/greet.html** + +```HTML +{% extends "layout.html" %} +{% block body %} + hello, {{name}} +{% endblock %} +``` + +**templates/layout.html** + +```HTML + + + + + Hello + + + {% block body %}{% endblock %} + + +``` + +**app.py** +`http://website.domain/greet` +The name doesn't appear in the URL anymore. + +```Python +from flask import Flask, render_template, request +app = Flask(__name__) +# When user visits / (the website root), load index.html. +# If the key name exists, store the value in a variable. If not, store world. +@app.route("/") +def index(): + name = request.args.get("name", "world") + return render_template("index.html", name_placeholder=name) +@app.route("/greet", methods=["POST"]) +def greet(): + return render_template("greet.html", name=request.form.get("name", "world")) +``` + +### Combine Routes to save Resources + +GET is always the default. +POST is used to send information to the server. +**templates/index.html** + +```HTML +{% extends "layout.html" %} +{% block body %} +
    + + +
    +{% endblock %} +``` + +**templates/greet.html** + +```HTML +{% extends "layout.html" %} +{% block body %} + hello, {{name}} +{% endblock %} +``` + +**templates/layout.html** + +```HTML + + + + + Hello + + + {% block body %}{% endblock %} + + +``` + +**app.py** +`http://website.domain/` + +```Python +from flask import Flask, render_template, request +app = Flask(__name__) +# When user visits / (the website root), load index.html. +# If the key name exists, store the value in a variable. If not, store world. +@app.route("/", methods=["GET, POST"]) +def index(): + if request.method == "GET": + return render_template("index.html") + elif request.method == "POST": + return render_template("greet.html", name=request.form.get("name", "world")) +``` + +## Cookies - Session + +Used to store data and to recognize the user. +- Server → Client + - `Set-Cookie session=value` +- Client → Server + - `Cookie session` + +```Python +from flask import session +# Configure app +app = Flask(__name__) +# Configure session +app.config["SESSION_PERMANENT"] = False +app.config["SESSION_TYPE"] = "filesystem" +Session(app) +# Redirect to login if no cookie exists +@app.route("/") +def index(): + if not session.get("name"): + return redirect("/login") + return render_template("index.html") +# EXAMPLES +# session is a dictionary +session["cart"] = [] +books = db.execute("SELECT * FROM books WHERE id IN (?)", session["cart"]) +``` diff --git a/content/notes/ready/gdb.md b/content/notes/ready/gdb.md new file mode 100644 index 0000000..5376e1e --- /dev/null +++ b/content/notes/ready/gdb.md @@ -0,0 +1,67 @@ +--- +title: Debugging [GDB] +description: +draft: false +tags: + - programming +author: TrudeEH +showToc: true +--- + +## GDB Debugging + +### Compile with Debug Information + +To allow `gdb` access to the source code (Provides debug symbols - Do not share publicly as it contains the source code). + +```Shell +gcc -g +``` + +### Look for / Fix Bugs + +First, initialize `gdb` with the executable to debug. + +```Shell +gdb ./ --tui +``` + +After `gdb` is ready, we can use the following commands: + +|Command|Description| +|---|---| +|`lay next`|Switch to the next layout (Enables TUI mode if disabled - Allows for reading the code while debugging both in `C` and `ASM`).| +|`ref`|Refresh (if a program prints to the terminal, it can break `gdb`'s interface).`| +|`q`|Quit `gdb`.| +||| +|`b main`|Add a breakpoint at the main function.| +|`b`|Place a breakpoint at the current line.| +|`b `|Place a breakpoint at line `N`.| +|`b +`|Place a breakpoint N lines down.| +|`b `|Place a breakpoint at `fn` function.| +|`d`|Delete all breakpoints.| +|`d `|Delete breakpoint number `N`.| +|`clear `|Clear the breakpoint set to `fn` function.| +||| +|`n`|Execute up to the next line in `C`. If a function call is found, execute the function completely.| +|`s`|Execute up to the next line in `C`. (Jump over)| +|`s `|Run `N` lines.| +|`u`|Same as `n`, but if in a loop, execute until the loop exits.| +|`nexti`|Execute up to the next instruction (line in `ASM`).| +|`r`|Run the program until a breakpoint or error is reached.| +|`c`|Continue running the program until a breakpoint or error is reached.| +||| +|`x/i $pc`|Examine the previous instruction (View memory).| +|`info registers`|Read the CPU registers used by the program.| +|`bt`|See the call stack up to the current line. (How we got here, so to speak)| +|`print sizeof()`|Check the size of a struct/variable/pointer.| +|`p `|Print variable `var` value.| +|`info break`|List breakpoints.| + +## Check for Memory Leaks + +Use `valgrind` to check for lost memory. + +```Shell +valgrind --leak-check=full ./ +``` diff --git a/content/notes/ready/git.md b/content/notes/ready/git.md new file mode 100644 index 0000000..548a7a6 --- /dev/null +++ b/content/notes/ready/git.md @@ -0,0 +1,360 @@ +--- +title: Version Control [GIT] +description: +draft: false +tags: + - programming + - tools +author: TrudeEH +showToc: true +--- + + +Git is a version control system first developed by Linus Torvalds. It facilitates collaboration on large projects, keeps track of changes, and allows mistakes to be rolled back into a previous state. + +## Configure Git + +Git uses a hierarchy of configuration files: +- **System**: (`/etc/gitconfig`) Configuration for all users in a system. +- **Global**: (`~/.gitconfig`) Configure Git for all project of the current user. +- **Local**: (`.git/config`) Configure Git for the current project. +- **Worktree**: (`.git/config.worktree`) Configure part of a project. + +```Shell +# Check if user name and email are set. +git config --get user.name +git config --get user.email +# If not, set those values. +git config --add --global user.name "username" +git config --add --global user.email "email@example.com" +git config --add --global init.defaultBranch main # GitHub's default +git config --unset example.key # Remove a configuration value +git config --unset-all example.key # Remove all instances of a configuration key +git config --remove-section section # Remove an entire section +# Rebase on pull by default to keep a linear history +git config --global pull.rebase true +``` + +## Create a Repository + +Git stores all project information in the `.git` directory. This includes branches, commits, and metadata. + +```Shell +mkdir project && cd project +git init +``` + +## Status + +A file can be in one of several states in a Git repository. +- `untracked`: Not being tracked by Git +- `staged`: Marked to be included in the next commit +- `committed`: Saved to the repository's history + +```Shell +git status # Shows he state of a repository. +``` + +## Staging + +Untracked files need to be indexed before being committed. + +```Shell +git add filename.ext # Add a file +git add . # Add every file in the current directory, recursively. +``` + +## Commit + +A commit is a snapshot of the entire repository at a given point in time. Each commit has a message that describes the changes made in that commit. +To commit all staged files: + +```Shell +git commit -m "message" # Commit all staged files +git commit --amend -m "message" # Replace the last commit's message +``` + +## Git Log + +The `git log` command shows the history of commits in a repository. It provides information on who made a commit, when it was made, and what files were changed. +Each commit also has a unique identifier (commit hash). +For example, this is a valid commit hash: `46a4b5904d4ad737447052fed90c754ce8c616b6`. +Since these identifiers are very long, they are often shortened to their first `7` characters (`46a4b59` in this example). + +```Shell +git log # Show the log in an interactive pager +git --no-pager log -n 10 # Show the last 10 lines from the log, without using the pager +git log -1 # Fetch the header of the first commit +git log --decorate=full # Shows the full pointer to a commit +git log --decorate=no # Don't show branch names +git log --oneline # Show each commit in a single line. ("compact" mode) +git reflog # History of actions. Commits, clone, pull, etc. +``` + +## Git Diff + +Show differences: + +```Shell +git diff # Differences between the working tree and the last commit +git diff HEAD~1 # Same, but includes the last commit and uncommitted changes +git diff COMMIT_HASH_1 COMMIT_HASH_2 # Differences between two commits +``` + +## Git Tags + +A tag is a name linked to a commit that doesn't move between commits. Useful to mark versions. + +```Shell +git tag # List the current tag +git tag -a "tag name" -m "tag message" # Add a new tag +git tag -a v3.10.2 -m "Fixed a lil bug" # Example marking a release +``` + +### Semantic Versioning (Semver) + +Naming convention for versioning software. + +```Plain +v3.12.5 + | | | + | | Patch (safe bug fixes) + | Minor (safe features) + Major (breaking changes) +``` + +## Branch + +A Git branch allows you to keep track of different changes separately. + +```Plain + D - E other_branch + / +A - B - C main +``` + +```Shell +git branch # Check which branches are available, and which one is selected +git branch -m oldname newname # Rename a branch +git branch my_new_branch # Create a new branch +git switch -c my_new_branch # Create a new branch and switch to it immediately +git switch branch_name # Switch to an existing branch +git checkout branch_name # Deprecated alternative to git switch +git branch -d branch_name # Delete a branch +``` + +### Merge + +After modifying a new branch, all commits performed on it can be merged into the main branch. + +```Plain +A - B - C - F main + \ / + D - E other_branch +``` + +```Shell +git log --oneline --graph --all # Show an ASCII representation of the commit history +git log --oneline --decorate --graph --parents # Also display any parent branches +git merge branch_name # Merge a branch into the current branch +``` + +### Rebase + +After a branch is created, it might fall behind its origin. A rebase includes the new changes from the origin into the current branch, without leaving a merge message behind. While merging can often accomplish the same task, a rebase keeps history linear and makes it easier to read. It's recommended to use it on the main branch, for example, when updating smaller ones. +Before a rebase, the commit history might have the following structure: + +```Plain +A - B - C main + \ + D - E feature_branch +``` + +After a rebase, the target branch is updated against its origin: + +```Plain +A - B - C main + \ + D - E feature_branch +``` + +```Shell +git rebase origin_name # Rebase against the origin +``` + +> You should *never* rebase a public branch (like `main`) onto anything else, to not break commit history. + +### Conflicts + +If a modified is pushed to another branch where that same file has been modified as well, a conflict arises. These can be fixed manually by editing text, or using Git commands. + +```Shell +git checkout --theirs path/to/file # Discard the current branch's changes and accept the target's changes +git checkout --ours path/to/file # Discard the target changes and replace with the ones in the current branch +git reset --soft HEAD~1 # Undo an accidental conflict resolution +``` + +### Squash + +Combine various commits into one: +1. Start an interactive rebase with the command `git rebase -i HEAD~n`, where `n` is the number of commits you want to squash. +2. Git will open your default editor with a list of commits. Change the word `pick` to `squash` for all but the first commit. +3. Save and close the editor. + +> If the squashed commits already existed in the remote repository, it might be needed to push using: `git push origin main --force`. + +### Stash + +`git stash` saves the state of the current working directory and the index (staging area), then returns the repository to `HEAD`. This allows you to work on a different issue, and then resume your previous task. + +```Shell +git stash +git stash -m "message" # It's also possible to stash with a message +git stash list # List all stashes +git stash pop # Apply the most recent stash to the working directory +git stash apply # Same as before, but doesn't delete the stash after applying +git stash drop # Discard a stash without applying changes +git stash apply stash@{2} # Apply the third most recent stash +``` + +### Worktrees + +The directory where the code tracked with Git lives. (And where the `.git` directory is located). +Use instead of a `stash` if the current worktree is too busy, or for long-lived changes. This acts like cloning the repo again and working there, except it doesn't take up space on the host machine. +Any change done on a linked worktree is reflected on the main one instantly. Think of it as a different view of the main worktree. + +```Shell +git worktree list # Lists worktrees +git worktree add [] # Create a worktree linked to the main one +git worktree remove WORKTREE_NAME # Remove a worktree +git worktree prune # Remove an empty worktree if its directories were removed +``` + +### Bisect + +Find a specific commit with binary tree search. +For example, if trying to find a bug in 100 commits, `git bisect` allows it to be found with only `7` attempts. +1. `git bisect start` +2. Use: `git bisect good ` to select a commit where the bug wasn't introduced yet. +3. Select a commit where the bug exists using: `git bisect bad `. +4. Git will checkout a commit between the good and bad commits for you to test to see if the bug is present. +5. Execute `git bisect good` or `git bisect bad`. +6. Loop back to step 4 (until `git bisect` completes) +7. Exit the bisect mode with `git bisect reset` + +```Shell +git bisect start +git bisect good # Select a commit where the bug wasn't introduced yet. +git bisect bad # Select a commit where the bug exists +``` + +#### Automated Bisect + +If you have a script that can tell if the current source code is good or bad, you can bisect by issuing the command: + +```Shell +git bisect run