diff --git a/.gitignore b/.gitignore index 45fb097..f6eb5f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.un .vs/ .vscode/ -.obsidian/ \ No newline at end of file +.obsidian/ +.obsidian/* \ No newline at end of file diff --git a/.obsidian/app.json b/.obsidian/app.json deleted file mode 100644 index 9e26dfe..0000000 --- a/.obsidian/app.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json deleted file mode 100644 index 9e26dfe..0000000 --- a/.obsidian/appearance.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json deleted file mode 100644 index d3f66fa..0000000 --- a/.obsidian/community-plugins.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "obsidian-git" -] \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json deleted file mode 100644 index 639b90d..0000000 --- a/.obsidian/core-plugins.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "file-explorer": true, - "global-search": true, - "switcher": true, - "graph": true, - "backlink": true, - "canvas": true, - "outgoing-link": true, - "tag-pane": true, - "footnotes": false, - "properties": true, - "page-preview": true, - "daily-notes": true, - "templates": true, - "note-composer": true, - "command-palette": true, - "slash-command": false, - "editor-status": true, - "bookmarks": true, - "markdown-importer": false, - "zk-prefixer": false, - "random-note": false, - "outline": true, - "word-count": true, - "slides": false, - "audio-recorder": false, - "workspaces": false, - "file-recovery": true, - "publish": false, - "sync": true, - "bases": true, - "webviewer": false -} \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json deleted file mode 100644 index e21a18d..0000000 --- a/.obsidian/graph.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "collapse-filter": true, - "search": "", - "showTags": false, - "showAttachments": false, - "hideUnresolved": false, - "showOrphans": true, - "collapse-color-groups": true, - "colorGroups": [], - "collapse-display": true, - "showArrow": false, - "textFadeMultiplier": 0, - "nodeSizeMultiplier": 1, - "lineSizeMultiplier": 1, - "collapse-forces": true, - "centerStrength": 0.518713248970312, - "repelStrength": 10, - "linkStrength": 1, - "linkDistance": 250, - "scale": 1, - "close": false -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js deleted file mode 100644 index a66d505..0000000 --- a/.obsidian/plugins/obsidian-git/main.js +++ /dev/null @@ -1,426 +0,0 @@ -/* -THIS IS A GENERATED/BUNDLED FILE BY ESBUILD -if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git) -*/ - -var X5=Object.create;var wl=Object.defineProperty;var K5=Object.getOwnPropertyDescriptor;var Z5=Object.getOwnPropertyNames;var J5=Object.getPrototypeOf,Q5=Object.prototype.hasOwnProperty;var by=t=>{throw TypeError(t)};var eI=(t,e,r)=>e in t?wl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var tI=(t,e)=>()=>(t&&(e=t(t=0)),e);var M=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),rI=(t,e)=>{for(var r in e)wl(t,r,{get:e[r],enumerable:!0})},_y=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Z5(e))!Q5.call(t,i)&&i!==r&&wl(t,i,{get:()=>e[i],enumerable:!(n=K5(e,i))||n.enumerable});return t};var Ot=(t,e,r)=>(r=t!=null?X5(J5(t)):{},_y(e||!t||!t.__esModule?wl(r,"default",{value:t,enumerable:!0}):r,t)),nI=t=>_y(wl({},"__esModule",{value:!0}),t);var vt=(t,e,r)=>eI(t,typeof e!="symbol"?e+"":e,r),wp=(t,e,r)=>e.has(t)||by("Cannot "+r);var ue=(t,e,r)=>(wp(t,e,"read from private field"),r?r.call(t):e.get(t)),yt=(t,e,r)=>e.has(t)?by("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),It=(t,e,r,n)=>(wp(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),di=(t,e,r)=>(wp(t,e,"access private method"),r);var Ey=M(Iu=>{"use strict";m();Iu.byteLength=aI;Iu.toByteArray=oI;Iu.fromByteArray=uI;var Mn=[],qr=[],iI=typeof Uint8Array!="undefined"?Uint8Array:Array,bp="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Ra=0,xy=bp.length;Ra0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function aI(t){var e=Sy(t),r=e[0],n=e[1];return(r+n)*3/4-n}function sI(t,e,r){return(e+r)*3/4-r}function oI(t){var e,r=Sy(t),n=r[0],i=r[1],a=new iI(sI(t,n,i)),s=0,o=i>0?n-4:n,l;for(l=0;l>16&255,a[s++]=e>>8&255,a[s++]=e&255;return i===2&&(e=qr[t.charCodeAt(l)]<<2|qr[t.charCodeAt(l+1)]>>4,a[s++]=e&255),i===1&&(e=qr[t.charCodeAt(l)]<<10|qr[t.charCodeAt(l+1)]<<4|qr[t.charCodeAt(l+2)]>>2,a[s++]=e>>8&255,a[s++]=e&255),a}function lI(t){return Mn[t>>18&63]+Mn[t>>12&63]+Mn[t>>6&63]+Mn[t&63]}function cI(t,e,r){for(var n,i=[],a=e;ao?o:s+a));return n===1?(e=t[r-1],i.push(Mn[e>>2]+Mn[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(Mn[e>>10]+Mn[e>>4&63]+Mn[e<<2&63]+"=")),i.join("")}});var Ay=M(_p=>{m();_p.read=function(t,e,r,n,i){var a,s,o=i*8-n-1,l=(1<>1,u=-7,f=r?i-1:0,d=r?-1:1,h=t[e+f];for(f+=d,a=h&(1<<-u)-1,h>>=-u,u+=o;u>0;a=a*256+t[e+f],f+=d,u-=8);for(s=a&(1<<-u)-1,a>>=-u,u+=n;u>0;s=s*256+t[e+f],f+=d,u-=8);if(a===0)a=1-c;else{if(a===l)return s?NaN:(h?-1:1)*(1/0);s=s+Math.pow(2,n),a=a-c}return(h?-1:1)*s*Math.pow(2,a-n)};_p.write=function(t,e,r,n,i,a){var s,o,l,c=a*8-i-1,u=(1<>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,p=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(s++,l/=2),s+f>=u?(o=0,s=u):s+f>=1?(o=(e*l-1)*Math.pow(2,i),s=s+f):(o=e*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[r+h]=o&255,h+=p,o/=256,i-=8);for(s=s<0;t[r+h]=s&255,h+=p,s/=256,c-=8);t[r+h-p]|=g*128}});var Rp=M(Ls=>{"use strict";m();var xp=Ey(),$s=Ay(),ky=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ls.Buffer=O;Ls.SlowBuffer=gI;Ls.INSPECT_MAX_BYTES=50;var Fu=2147483647;Ls.kMaxLength=Fu;O.TYPED_ARRAY_SUPPORT=fI();!O.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function fI(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch(t){return!1}}Object.defineProperty(O.prototype,"parent",{enumerable:!0,get:function(){if(O.isBuffer(this))return this.buffer}});Object.defineProperty(O.prototype,"offset",{enumerable:!0,get:function(){if(O.isBuffer(this))return this.byteOffset}});function hi(t){if(t>Fu)throw new RangeError('The value "'+t+'" is invalid for option "size"');let e=new Uint8Array(t);return Object.setPrototypeOf(e,O.prototype),e}function O(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return kp(t)}return Ry(t,e,r)}O.poolSize=8192;function Ry(t,e,r){if(typeof t=="string")return hI(t,e);if(ArrayBuffer.isView(t))return pI(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(On(t,ArrayBuffer)||t&&On(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(On(t,SharedArrayBuffer)||t&&On(t.buffer,SharedArrayBuffer)))return Ep(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=t.valueOf&&t.valueOf();if(n!=null&&n!==t)return O.from(n,e,r);let i=mI(t);if(i)return i;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return O.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}O.from=function(t,e,r){return Ry(t,e,r)};Object.setPrototypeOf(O.prototype,Uint8Array.prototype);Object.setPrototypeOf(O,Uint8Array);function My(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function dI(t,e,r){return My(t),t<=0?hi(t):e!==void 0?typeof r=="string"?hi(t).fill(e,r):hi(t).fill(e):hi(t)}O.alloc=function(t,e,r){return dI(t,e,r)};function kp(t){return My(t),hi(t<0?0:Tp(t)|0)}O.allocUnsafe=function(t){return kp(t)};O.allocUnsafeSlow=function(t){return kp(t)};function hI(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!O.isEncoding(e))throw new TypeError("Unknown encoding: "+e);let r=Oy(t,e)|0,n=hi(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}function Sp(t){let e=t.length<0?0:Tp(t.length)|0,r=hi(e);for(let n=0;n=Fu)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Fu.toString(16)+" bytes");return t|0}function gI(t){return+t!=t&&(t=0),O.alloc(+t)}O.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==O.prototype};O.compare=function(e,r){if(On(e,Uint8Array)&&(e=O.from(e,e.offset,e.byteLength)),On(r,Uint8Array)&&(r=O.from(r,r.offset,r.byteLength)),!O.isBuffer(e)||!O.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===r)return 0;let n=e.length,i=r.length;for(let a=0,s=Math.min(n,i);ai.length?(O.isBuffer(s)||(s=O.from(s)),s.copy(i,a)):Uint8Array.prototype.set.call(i,s,a);else if(O.isBuffer(s))s.copy(i,a);else throw new TypeError('"list" argument must be an Array of Buffers');a+=s.length}return i};function Oy(t,e){if(O.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||On(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);let r=t.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Ap(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return Hy(t).length;default:if(i)return n?-1:Ap(t).length;e=(""+e).toLowerCase(),i=!0}}O.byteLength=Oy;function vI(t,e,r){let n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return TI(this,e,r);case"utf8":case"utf-8":return Fy(this,e,r);case"ascii":return AI(this,e,r);case"latin1":case"binary":return kI(this,e,r);case"base64":return SI(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return CI(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}O.prototype._isBuffer=!0;function Ma(t,e,r){let n=t[e];t[e]=t[r],t[r]=n}O.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;rr&&(e+=" ... "),""};ky&&(O.prototype[ky]=O.prototype.inspect);O.prototype.compare=function(e,r,n,i,a){if(On(e,Uint8Array)&&(e=O.from(e,e.offset,e.byteLength)),!O.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(r===void 0&&(r=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>e.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===e)return 0;let s=a-i,o=n-r,l=Math.min(s,o),c=this.slice(i,a),u=e.slice(r,n);for(let f=0;f2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,Pp(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof e=="string"&&(e=O.from(e,n)),O.isBuffer(e))return e.length===0?-1:Ty(t,e,r,n,i);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Ty(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Ty(t,e,r,n,i){let a=1,s=t.length,o=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return-1;a=2,s/=2,o/=2,r/=2}function l(u,f){return a===1?u[f]:u.readUInt16BE(f*a)}let c;if(i){let u=-1;for(c=r;cs&&(r=s-o),c=r;c>=0;c--){let u=!0;for(let f=0;fi&&(n=i)):n=i;let a=e.length;n>a/2&&(n=a/2);let s;for(s=0;s>>0,isFinite(n)?(n=n>>>0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let a=this.length-r;if((n===void 0||n>a)&&(n=a),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let s=!1;for(;;)switch(i){case"hex":return yI(this,e,r,n);case"utf8":case"utf-8":return wI(this,e,r,n);case"ascii":case"latin1":case"binary":return bI(this,e,r,n);case"base64":return _I(this,e,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return xI(this,e,r,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}};O.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function SI(t,e,r){return e===0&&r===t.length?xp.fromByteArray(t):xp.fromByteArray(t.slice(e,r))}function Fy(t,e,r){r=Math.min(t.length,r);let n=[],i=e;for(;i239?4:a>223?3:a>191?2:1;if(i+o<=r){let l,c,u,f;switch(o){case 1:a<128&&(s=a);break;case 2:l=t[i+1],(l&192)===128&&(f=(a&31)<<6|l&63,f>127&&(s=f));break;case 3:l=t[i+1],c=t[i+2],(l&192)===128&&(c&192)===128&&(f=(a&15)<<12|(l&63)<<6|c&63,f>2047&&(f<55296||f>57343)&&(s=f));break;case 4:l=t[i+1],c=t[i+2],u=t[i+3],(l&192)===128&&(c&192)===128&&(u&192)===128&&(f=(a&15)<<18|(l&63)<<12|(c&63)<<6|u&63,f>65535&&f<1114112&&(s=f))}}s===null?(s=65533,o=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=o}return EI(n)}var Cy=4096;function EI(t){let e=t.length;if(e<=Cy)return String.fromCharCode.apply(String,t);let r="",n=0;for(;nn)&&(r=n);let i="";for(let a=e;an&&(e=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),rr)throw new RangeError("Trying to access beyond buffer length")}O.prototype.readUintLE=O.prototype.readUIntLE=function(e,r,n){e=e>>>0,r=r>>>0,n||bt(e,r,this.length);let i=this[e],a=1,s=0;for(;++s>>0,r=r>>>0,n||bt(e,r,this.length);let i=this[e+--r],a=1;for(;r>0&&(a*=256);)i+=this[e+--r]*a;return i};O.prototype.readUint8=O.prototype.readUInt8=function(e,r){return e=e>>>0,r||bt(e,1,this.length),this[e]};O.prototype.readUint16LE=O.prototype.readUInt16LE=function(e,r){return e=e>>>0,r||bt(e,2,this.length),this[e]|this[e+1]<<8};O.prototype.readUint16BE=O.prototype.readUInt16BE=function(e,r){return e=e>>>0,r||bt(e,2,this.length),this[e]<<8|this[e+1]};O.prototype.readUint32LE=O.prototype.readUInt32LE=function(e,r){return e=e>>>0,r||bt(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};O.prototype.readUint32BE=O.prototype.readUInt32BE=function(e,r){return e=e>>>0,r||bt(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};O.prototype.readBigUInt64LE=Ui(function(e){e=e>>>0,Ds(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&bl(e,this.length-8);let i=r+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,a=this[++e]+this[++e]*2**8+this[++e]*2**16+n*2**24;return BigInt(i)+(BigInt(a)<>>0,Ds(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&bl(e,this.length-8);let i=r*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],a=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n;return(BigInt(i)<>>0,r=r>>>0,n||bt(e,r,this.length);let i=this[e],a=1,s=0;for(;++s=a&&(i-=Math.pow(2,8*r)),i};O.prototype.readIntBE=function(e,r,n){e=e>>>0,r=r>>>0,n||bt(e,r,this.length);let i=r,a=1,s=this[e+--i];for(;i>0&&(a*=256);)s+=this[e+--i]*a;return a*=128,s>=a&&(s-=Math.pow(2,8*r)),s};O.prototype.readInt8=function(e,r){return e=e>>>0,r||bt(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};O.prototype.readInt16LE=function(e,r){e=e>>>0,r||bt(e,2,this.length);let n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};O.prototype.readInt16BE=function(e,r){e=e>>>0,r||bt(e,2,this.length);let n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};O.prototype.readInt32LE=function(e,r){return e=e>>>0,r||bt(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};O.prototype.readInt32BE=function(e,r){return e=e>>>0,r||bt(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};O.prototype.readBigInt64LE=Ui(function(e){e=e>>>0,Ds(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&bl(e,this.length-8);let i=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(n<<24);return(BigInt(i)<>>0,Ds(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&bl(e,this.length-8);let i=(r<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(i)<>>0,r||bt(e,4,this.length),$s.read(this,e,!0,23,4)};O.prototype.readFloatBE=function(e,r){return e=e>>>0,r||bt(e,4,this.length),$s.read(this,e,!1,23,4)};O.prototype.readDoubleLE=function(e,r){return e=e>>>0,r||bt(e,8,this.length),$s.read(this,e,!0,52,8)};O.prototype.readDoubleBE=function(e,r){return e=e>>>0,r||bt(e,8,this.length),$s.read(this,e,!1,52,8)};function cr(t,e,r,n,i,a){if(!O.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}O.prototype.writeUintLE=O.prototype.writeUIntLE=function(e,r,n,i){if(e=+e,r=r>>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;cr(this,e,r,n,o,0)}let a=1,s=0;for(this[r]=e&255;++s>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;cr(this,e,r,n,o,0)}let a=n-1,s=1;for(this[r+a]=e&255;--a>=0&&(s*=256);)this[r+a]=e/s&255;return r+n};O.prototype.writeUint8=O.prototype.writeUInt8=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,1,255,0),this[r]=e&255,r+1};O.prototype.writeUint16LE=O.prototype.writeUInt16LE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,2,65535,0),this[r]=e&255,this[r+1]=e>>>8,r+2};O.prototype.writeUint16BE=O.prototype.writeUInt16BE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,2,65535,0),this[r]=e>>>8,this[r+1]=e&255,r+2};O.prototype.writeUint32LE=O.prototype.writeUInt32LE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,4,4294967295,0),this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255,r+4};O.prototype.writeUint32BE=O.prototype.writeUInt32BE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,4,4294967295,0),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};function $y(t,e,r,n,i){By(e,n,i,t,r,7);let a=Number(e&BigInt(4294967295));t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,r}function Dy(t,e,r,n,i){By(e,n,i,t,r,7);let a=Number(e&BigInt(4294967295));t[r+7]=a,a=a>>8,t[r+6]=a,a=a>>8,t[r+5]=a,a=a>>8,t[r+4]=a;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s=s>>8,t[r+2]=s,s=s>>8,t[r+1]=s,s=s>>8,t[r]=s,r+8}O.prototype.writeBigUInt64LE=Ui(function(e,r=0){return $y(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});O.prototype.writeBigUInt64BE=Ui(function(e,r=0){return Dy(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});O.prototype.writeIntLE=function(e,r,n,i){if(e=+e,r=r>>>0,!i){let l=Math.pow(2,8*n-1);cr(this,e,r,n,l-1,-l)}let a=0,s=1,o=0;for(this[r]=e&255;++a>0)-o&255;return r+n};O.prototype.writeIntBE=function(e,r,n,i){if(e=+e,r=r>>>0,!i){let l=Math.pow(2,8*n-1);cr(this,e,r,n,l-1,-l)}let a=n-1,s=1,o=0;for(this[r+a]=e&255;--a>=0&&(s*=256);)e<0&&o===0&&this[r+a+1]!==0&&(o=1),this[r+a]=(e/s>>0)-o&255;return r+n};O.prototype.writeInt8=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,1,127,-128),e<0&&(e=255+e+1),this[r]=e&255,r+1};O.prototype.writeInt16LE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,2,32767,-32768),this[r]=e&255,this[r+1]=e>>>8,r+2};O.prototype.writeInt16BE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,2,32767,-32768),this[r]=e>>>8,this[r+1]=e&255,r+2};O.prototype.writeInt32LE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,4,2147483647,-2147483648),this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24,r+4};O.prototype.writeInt32BE=function(e,r,n){return e=+e,r=r>>>0,n||cr(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};O.prototype.writeBigInt64LE=Ui(function(e,r=0){return $y(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});O.prototype.writeBigInt64BE=Ui(function(e,r=0){return Dy(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ly(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function jy(t,e,r,n,i){return e=+e,r=r>>>0,i||Ly(t,e,r,4,34028234663852886e22,-34028234663852886e22),$s.write(t,e,r,n,23,4),r+4}O.prototype.writeFloatLE=function(e,r,n){return jy(this,e,r,!0,n)};O.prototype.writeFloatBE=function(e,r,n){return jy(this,e,r,!1,n)};function Ny(t,e,r,n,i){return e=+e,r=r>>>0,i||Ly(t,e,r,8,17976931348623157e292,-17976931348623157e292),$s.write(t,e,r,n,52,8),r+8}O.prototype.writeDoubleLE=function(e,r,n){return Ny(this,e,r,!0,n)};O.prototype.writeDoubleBE=function(e,r,n){return Ny(this,e,r,!1,n)};O.prototype.copy=function(e,r,n,i){if(!O.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),!i&&i!==0&&(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-r>>0,n=n===void 0?this.length:n>>>0,e||(e=0);let a;if(typeof e=="number")for(a=r;a2**32?i=Py(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=Py(i)),i+="n"),n+=` It must be ${e}. Received ${i}`,n},RangeError);function Py(t){let e="",r=t.length,n=t[0]==="-"?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function PI(t,e,r){Ds(e,"offset"),(t[e]===void 0||t[e+r]===void 0)&&bl(e,t.length-(r+1))}function By(t,e,r,n,i,a){if(t>r||t3?e===0||e===BigInt(0)?o=`>= 0${s} and < 2${s} ** ${(a+1)*8}${s}`:o=`>= -(2${s} ** ${(a+1)*8-1}${s}) and < 2 ** ${(a+1)*8-1}${s}`:o=`>= ${e}${s} and <= ${r}${s}`,new Fs.ERR_OUT_OF_RANGE("value",o,t)}PI(n,i,a)}function Ds(t,e){if(typeof t!="number")throw new Fs.ERR_INVALID_ARG_TYPE(e,"number",t)}function bl(t,e,r){throw Math.floor(t)!==t?(Ds(t,r),new Fs.ERR_OUT_OF_RANGE(r||"offset","an integer",t)):e<0?new Fs.ERR_BUFFER_OUT_OF_BOUNDS:new Fs.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}var RI=/[^+/0-9A-Za-z-_]/g;function MI(t){if(t=t.split("=")[0],t=t.trim().replace(RI,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function Ap(t,e){e=e||1/0;let r,n=t.length,i=null,a=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}else if(s+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function OI(t){let e=[];for(let r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function Hy(t){return xp.toByteArray(MI(t))}function $u(t,e,r,n){let i;for(i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function On(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function Pp(t){return t!==t}var FI=function(){let t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function Ui(t){return typeof BigInt=="undefined"?$I:t}function $I(){throw new Error("BigInt not supported")}});var Uy,Mp,Buffer,m=tI(()=>{Uy=require("obsidian");Uy.Platform.isMobileApp?Mp=Rp().Buffer:Mp=global.Buffer;Buffer=Mp});var zy=M((UV,Gy)=>{"use strict";m();var Cr=function(t){if(t=t||{},this.Promise=t.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=t.domainReentrant||!1,this.domainReentrant){if(typeof process=="undefined"||typeof process.domain=="undefined")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=t.timeout||Cr.DEFAULT_TIMEOUT,this.maxOccupationTime=t.maxOccupationTime||Cr.DEFAULT_MAX_OCCUPATION_TIME,this.maxExecutionTime=t.maxExecutionTime||Cr.DEFAULT_MAX_EXECUTION_TIME,t.maxPending===1/0||Number.isInteger(t.maxPending)&&t.maxPending>=0?this.maxPending=t.maxPending:this.maxPending=Cr.DEFAULT_MAX_PENDING};Cr.DEFAULT_TIMEOUT=0;Cr.DEFAULT_MAX_OCCUPATION_TIME=0;Cr.DEFAULT_MAX_EXECUTION_TIME=0;Cr.DEFAULT_MAX_PENDING=1e3;Cr.prototype.acquire=function(t,e,r,n){if(Array.isArray(t))return this._acquireBatch(t,e,r,n);if(typeof e!="function")throw new Error("You must pass a function to execute");var i=null,a=null,s=null;typeof r!="function"&&(n=r,r=null,s=new this.Promise(function(b,E){i=b,a=E})),n=n||{};var o=!1,l=null,c=null,u=null,f=this,d=function(b,E,S){c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),b&&(f.queues[t]&&f.queues[t].length===0&&delete f.queues[t],f.domainReentrant&&delete f.domains[t]),o||(s?E?a(E):i(S):typeof r=="function"&&r(E,S),o=!0),b&&f.queues[t]&&f.queues[t].length>0&&f.queues[t].shift()()},h=function(b){if(o)return d(b);l&&(clearTimeout(l),l=null),f.domainReentrant&&b&&(f.domains[t]=process.domain);var E=n.maxExecutionTime||f.maxExecutionTime;if(E&&(u=setTimeout(function(){f.queues[t]&&d(b,new Error("Maximum execution time is exceeded "+t))},E)),e.length===1){var S=!1;try{e(function(A,k){S||(S=!0,d(b,A,k))})}catch(A){S||(S=!0,d(b,A))}}else f._promiseTry(function(){return e()}).then(function(A){d(b,void 0,A)},function(A){d(b,A)})};f.domainReentrant&&process.domain&&(h=process.domain.bind(h));var p=n.maxPending||f.maxPending;if(!f.queues[t])f.queues[t]=[],h(!0);else if(f.domainReentrant&&process.domain&&process.domain===f.domains[t])h(!1);else if(f.queues[t].length>=p)d(!1,new Error("Too many pending tasks in queue "+t));else{var g=function(){h(!0)};n.skipQueue?f.queues[t].unshift(g):f.queues[t].push(g);var v=n.timeout||f.timeout;v&&(l=setTimeout(function(){l=null,d(!1,new Error("async-lock timed out in queue "+t))},v))}var y=n.maxOccupationTime||f.maxOccupationTime;if(y&&(c=setTimeout(function(){f.queues[t]&&d(!1,new Error("Maximum occupation time is exceeded in queue "+t))},y)),s)return s};Cr.prototype._acquireBatch=function(t,e,r,n){typeof r!="function"&&(n=r,r=null);var i=this,a=function(o,l){return function(c){i.acquire(o,l,c,n)}},s=t.reduceRight(function(o,l){return a(l,o)},e);if(typeof r=="function")s(r);else return new this.Promise(function(o,l){s.length===1?s(function(c,u){c?l(c):o(u)}):o(s())})};Cr.prototype.isBusy=function(t){return t?!!this.queues[t]:Object.keys(this.queues).length>0};Cr.prototype._promiseTry=function(t){try{return this.Promise.resolve(t())}catch(e){return this.Promise.reject(e)}};Gy.exports=Cr});var qy=M((zV,Vy)=>{"use strict";m();Vy.exports=zy()});var Wy=M((qV,Op)=>{m();typeof Object.create=="function"?Op.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Op.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}});var Lu=M((Ip,Xy)=>{m();var Du=Rp(),In=Du.Buffer;function Yy(t,e){for(var r in t)e[r]=t[r]}In.from&&In.alloc&&In.allocUnsafe&&In.allocUnsafeSlow?Xy.exports=Du:(Yy(Du,Ip),Ip.Buffer=Oa);function Oa(t,e,r){return In(t,e,r)}Oa.prototype=Object.create(In.prototype);Yy(In,Oa);Oa.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return In(t,e,r)};Oa.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=In(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};Oa.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return In(t)};Oa.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Du.SlowBuffer(t)}});var ju=M((XV,Ky)=>{m();var DI={}.toString;Ky.exports=Array.isArray||function(t){return DI.call(t)=="[object Array]"}});var ur=M((ZV,Zy)=>{"use strict";m();Zy.exports=TypeError});var Nu=M((QV,Jy)=>{"use strict";m();Jy.exports=Object});var Fp=M((tq,Qy)=>{"use strict";m();Qy.exports=Error});var tw=M((nq,ew)=>{"use strict";m();ew.exports=EvalError});var nw=M((aq,rw)=>{"use strict";m();rw.exports=RangeError});var aw=M((oq,iw)=>{"use strict";m();iw.exports=ReferenceError});var Bu=M((cq,sw)=>{"use strict";m();sw.exports=SyntaxError});var lw=M((fq,ow)=>{"use strict";m();ow.exports=URIError});var uw=M((hq,cw)=>{"use strict";m();cw.exports=Math.abs});var dw=M((mq,fw)=>{"use strict";m();fw.exports=Math.floor});var pw=M((vq,hw)=>{"use strict";m();hw.exports=Math.max});var gw=M((wq,mw)=>{"use strict";m();mw.exports=Math.min});var yw=M((_q,vw)=>{"use strict";m();vw.exports=Math.pow});var bw=M((Sq,ww)=>{"use strict";m();ww.exports=Math.round});var xw=M((Aq,_w)=>{"use strict";m();_w.exports=Number.isNaN||function(e){return e!==e}});var Ew=M((Tq,Sw)=>{"use strict";m();var LI=xw();Sw.exports=function(e){return LI(e)||e===0?e:e<0?-1:1}});var kw=M((Pq,Aw)=>{"use strict";m();Aw.exports=Object.getOwnPropertyDescriptor});var Gi=M((Mq,Tw)=>{"use strict";m();var Hu=kw();if(Hu)try{Hu([],"length")}catch(t){Hu=null}Tw.exports=Hu});var _l=M((Iq,Cw)=>{"use strict";m();var Uu=Object.defineProperty||!1;if(Uu)try{Uu({},"a",{value:1})}catch(t){Uu=!1}Cw.exports=Uu});var xl=M(($q,Pw)=>{"use strict";m();Pw.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;e[r]=i;for(var a in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var s=Object.getOwnPropertySymbols(e);if(s.length!==1||s[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==i||o.enumerable!==!0)return!1}return!0}});var Gu=M((Lq,Mw)=>{"use strict";m();var Rw=typeof Symbol!="undefined"&&Symbol,jI=xl();Mw.exports=function(){return typeof Rw!="function"||typeof Symbol!="function"||typeof Rw("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:jI()}});var $p=M((Nq,Ow)=>{"use strict";m();Ow.exports=typeof Reflect!="undefined"&&Reflect.getPrototypeOf||null});var Dp=M((Hq,Iw)=>{"use strict";m();var NI=Nu();Iw.exports=NI.getPrototypeOf||null});var Dw=M((Gq,$w)=>{"use strict";m();var BI="Function.prototype.bind called on incompatible ",HI=Object.prototype.toString,UI=Math.max,GI="[object Function]",Fw=function(e,r){for(var n=[],i=0;i{"use strict";m();var qI=Dw();Lw.exports=Function.prototype.bind||qI});var zu=M((Wq,jw)=>{"use strict";m();jw.exports=Function.prototype.call});var Vu=M((Xq,Nw)=>{"use strict";m();Nw.exports=Function.prototype.apply});var Hw=M((Zq,Bw)=>{"use strict";m();Bw.exports=typeof Reflect!="undefined"&&Reflect&&Reflect.apply});var Lp=M((Qq,Uw)=>{"use strict";m();var WI=js(),YI=Vu(),XI=zu(),KI=Hw();Uw.exports=KI||WI.call(XI,YI)});var qu=M((tW,Gw)=>{"use strict";m();var ZI=js(),JI=ur(),QI=zu(),e6=Lp();Gw.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new JI("a function is required");return e6(ZI,QI,e)}});var Xw=M((nW,Yw)=>{"use strict";m();var t6=qu(),zw=Gi(),qw;try{qw=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var jp=!!qw&&zw&&zw(Object.prototype,"__proto__"),Ww=Object,Vw=Ww.getPrototypeOf;Yw.exports=jp&&typeof jp.get=="function"?t6([jp.get]):typeof Vw=="function"?function(e){return Vw(e==null?e:Ww(e))}:!1});var Wu=M((aW,Qw)=>{"use strict";m();var Kw=$p(),Zw=Dp(),Jw=Xw();Qw.exports=Kw?function(e){return Kw(e)}:Zw?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return Zw(e)}:Jw?function(e){return Jw(e)}:null});var Yu=M((oW,eb)=>{"use strict";m();var r6=Function.prototype.call,n6=Object.prototype.hasOwnProperty,i6=js();eb.exports=i6.call(r6,n6)});var Fn=M((cW,sb)=>{"use strict";m();var be,a6=Nu(),s6=Fp(),o6=tw(),l6=nw(),c6=aw(),Us=Bu(),Hs=ur(),u6=lw(),f6=uw(),d6=dw(),h6=pw(),p6=gw(),m6=yw(),g6=bw(),v6=Ew(),ib=Function,Np=function(t){try{return ib('"use strict"; return ('+t+").constructor;")()}catch(e){}},Sl=Gi(),y6=_l(),Bp=function(){throw new Hs},w6=Sl?function(){try{return arguments.callee,Bp}catch(t){try{return Sl(arguments,"callee").get}catch(e){return Bp}}}():Bp,Ns=Gu()(),_t=Wu(),b6=Dp(),_6=$p(),ab=Vu(),El=zu(),Bs={},x6=typeof Uint8Array=="undefined"||!_t?be:_t(Uint8Array),Ia={__proto__:null,"%AggregateError%":typeof AggregateError=="undefined"?be:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?be:ArrayBuffer,"%ArrayIteratorPrototype%":Ns&&_t?_t([][Symbol.iterator]()):be,"%AsyncFromSyncIteratorPrototype%":be,"%AsyncFunction%":Bs,"%AsyncGenerator%":Bs,"%AsyncGeneratorFunction%":Bs,"%AsyncIteratorPrototype%":Bs,"%Atomics%":typeof Atomics=="undefined"?be:Atomics,"%BigInt%":typeof BigInt=="undefined"?be:BigInt,"%BigInt64Array%":typeof BigInt64Array=="undefined"?be:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array=="undefined"?be:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?be:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":s6,"%eval%":eval,"%EvalError%":o6,"%Float16Array%":typeof Float16Array=="undefined"?be:Float16Array,"%Float32Array%":typeof Float32Array=="undefined"?be:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?be:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?be:FinalizationRegistry,"%Function%":ib,"%GeneratorFunction%":Bs,"%Int8Array%":typeof Int8Array=="undefined"?be:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?be:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?be:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Ns&&_t?_t(_t([][Symbol.iterator]())):be,"%JSON%":typeof JSON=="object"?JSON:be,"%Map%":typeof Map=="undefined"?be:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!Ns||!_t?be:_t(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":a6,"%Object.getOwnPropertyDescriptor%":Sl,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?be:Promise,"%Proxy%":typeof Proxy=="undefined"?be:Proxy,"%RangeError%":l6,"%ReferenceError%":c6,"%Reflect%":typeof Reflect=="undefined"?be:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?be:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!Ns||!_t?be:_t(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?be:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Ns&&_t?_t(""[Symbol.iterator]()):be,"%Symbol%":Ns?Symbol:be,"%SyntaxError%":Us,"%ThrowTypeError%":w6,"%TypedArray%":x6,"%TypeError%":Hs,"%Uint8Array%":typeof Uint8Array=="undefined"?be:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?be:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?be:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?be:Uint32Array,"%URIError%":u6,"%WeakMap%":typeof WeakMap=="undefined"?be:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?be:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?be:WeakSet,"%Function.prototype.call%":El,"%Function.prototype.apply%":ab,"%Object.defineProperty%":y6,"%Object.getPrototypeOf%":b6,"%Math.abs%":f6,"%Math.floor%":d6,"%Math.max%":h6,"%Math.min%":p6,"%Math.pow%":m6,"%Math.round%":g6,"%Math.sign%":v6,"%Reflect.getPrototypeOf%":_6};if(_t)try{null.error}catch(t){tb=_t(_t(t)),Ia["%Error.prototype%"]=tb}var tb,S6=function t(e){var r;if(e==="%AsyncFunction%")r=Np("async function () {}");else if(e==="%GeneratorFunction%")r=Np("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=Np("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&_t&&(r=_t(i.prototype))}return Ia[e]=r,r},rb={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Al=js(),Xu=Yu(),E6=Al.call(El,Array.prototype.concat),A6=Al.call(ab,Array.prototype.splice),nb=Al.call(El,String.prototype.replace),Ku=Al.call(El,String.prototype.slice),k6=Al.call(El,RegExp.prototype.exec),T6=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,C6=/\\(\\)?/g,P6=function(e){var r=Ku(e,0,1),n=Ku(e,-1);if(r==="%"&&n!=="%")throw new Us("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Us("invalid intrinsic syntax, expected opening `%`");var i=[];return nb(e,T6,function(a,s,o,l){i[i.length]=o?nb(l,C6,"$1"):s||a}),i},R6=function(e,r){var n=e,i;if(Xu(rb,n)&&(i=rb[n],n="%"+i[0]+"%"),Xu(Ia,n)){var a=Ia[n];if(a===Bs&&(a=S6(n)),typeof a=="undefined"&&!r)throw new Hs("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new Us("intrinsic "+e+" does not exist!")};sb.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new Hs("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Hs('"allowMissing" argument must be a boolean');if(k6(/^%?[^%]*%?$/,e)===null)throw new Us("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=P6(e),i=n.length>0?n[0]:"",a=R6("%"+i+"%",r),s=a.name,o=a.value,l=!1,c=a.alias;c&&(i=c[0],A6(n,E6([0,1],c)));for(var u=1,f=!0;u=n.length){var g=Sl(o,d);f=!!g,f&&"get"in g&&!("originalValue"in g.get)?o=g.get:o=o[d]}else f=Xu(o,d),o=o[d];f&&!l&&(Ia[s]=o)}}return o}});var xt=M((fW,cb)=>{"use strict";m();var ob=Fn(),lb=qu(),M6=lb([ob("%String.prototype.indexOf%")]);cb.exports=function(e,r){var n=ob(e,!!r);return typeof n=="function"&&M6(e,".prototype.")>-1?lb([n]):n}});var hb=M((hW,db)=>{"use strict";m();var fb=Function.prototype.toString,Gs=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,Up,Zu;if(typeof Gs=="function"&&typeof Object.defineProperty=="function")try{Up=Object.defineProperty({},"length",{get:function(){throw Zu}}),Zu={},Gs(function(){throw 42},null,Up)}catch(t){t!==Zu&&(Gs=null)}else Gs=null;var O6=/^\s*class\b/,Gp=function(e){try{var r=fb.call(e);return O6.test(r)}catch(n){return!1}},Hp=function(e){try{return Gp(e)?!1:(fb.call(e),!0)}catch(r){return!1}},Ju=Object.prototype.toString,I6="[object Object]",F6="[object Function]",$6="[object GeneratorFunction]",D6="[object HTMLAllCollection]",L6="[object HTML document.all class]",j6="[object HTMLCollection]",N6=typeof Symbol=="function"&&!!Symbol.toStringTag,B6=!(0 in[,]),zp=function(){return!1};typeof document=="object"&&(ub=document.all,Ju.call(ub)===Ju.call(document.all)&&(zp=function(e){if((B6||!e)&&(typeof e=="undefined"||typeof e=="object"))try{var r=Ju.call(e);return(r===D6||r===L6||r===j6||r===I6)&&e("")==null}catch(n){}return!1}));var ub;db.exports=Gs?function(e){if(zp(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;try{Gs(e,null,Up)}catch(r){if(r!==Zu)return!1}return!Gp(e)&&Hp(e)}:function(e){if(zp(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;if(N6)return Hp(e);if(Gp(e))return!1;var r=Ju.call(e);return r!==F6&&r!==$6&&!/^\[object HTML/.test(r)?!1:Hp(e)}});var gb=M((mW,mb)=>{"use strict";m();var H6=hb(),U6=Object.prototype.toString,pb=Object.prototype.hasOwnProperty,G6=function(e,r,n){for(var i=0,a=e.length;i=3&&(i=n),q6(e)?G6(e,r,i):typeof e=="string"?z6(e,r,i):V6(e,r,i)}});var yb=M((vW,vb)=>{"use strict";m();vb.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]});var bb=M((wW,wb)=>{"use strict";m();var Vp=yb(),W6=typeof globalThis=="undefined"?global:globalThis;wb.exports=function(){for(var e=[],r=0;r{"use strict";m();var _b=_l(),Y6=Bu(),zs=ur(),xb=Gi();Sb.exports=function(e,r,n){if(!e||typeof e!="object"&&typeof e!="function")throw new zs("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new zs("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new zs("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new zs("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new zs("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new zs("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,s=arguments.length>5?arguments[5]:null,o=arguments.length>6?arguments[6]:!1,l=!!xb&&xb(e,r);if(_b)_b(e,r,{configurable:s===null&&l?l.configurable:!s,enumerable:i===null&&l?l.enumerable:!i,value:n,writable:a===null&&l?l.writable:!a});else if(o||!i&&!a&&!s)e[r]=n;else throw new Y6("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var ef=M((SW,Ab)=>{"use strict";m();var qp=_l(),Eb=function(){return!!qp};Eb.hasArrayLengthDefineBug=function(){if(!qp)return null;try{return qp([],"length",{value:1}).length!==1}catch(e){return!0}};Ab.exports=Eb});var Rb=M((AW,Pb)=>{"use strict";m();var X6=Fn(),kb=Qu(),K6=ef()(),Tb=Gi(),Cb=ur(),Z6=X6("%Math.floor%");Pb.exports=function(e,r){if(typeof e!="function")throw new Cb("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||Z6(r)!==r)throw new Cb("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,a=!0;if("length"in e&&Tb){var s=Tb(e,"length");s&&!s.configurable&&(i=!1),s&&!s.writable&&(a=!1)}return(i||a||!n)&&(K6?kb(e,"length",r,!0,!0):kb(e,"length",r)),e}});var Ob=M((TW,Mb)=>{"use strict";m();var J6=js(),Q6=Vu(),eF=Lp();Mb.exports=function(){return eF(J6,Q6,arguments)}});var Fa=M((PW,tf)=>{"use strict";m();var tF=Rb(),Ib=_l(),rF=qu(),Fb=Ob();tf.exports=function(e){var r=rF(arguments),n=e.length-(arguments.length-1);return tF(r,1+(n>0?n:0),!0)};Ib?Ib(tf.exports,"apply",{value:Fb}):tf.exports.apply=Fb});var zi=M((MW,$b)=>{"use strict";m();var nF=xl();$b.exports=function(){return nF()&&!!Symbol.toStringTag}});var Kp=M((IW,Nb)=>{"use strict";m();var af=gb(),iF=bb(),Db=Fa(),Yp=xt(),nf=Gi(),rf=Wu(),aF=Yp("Object.prototype.toString"),jb=zi()(),Lb=typeof globalThis=="undefined"?global:globalThis,Wp=iF(),Xp=Yp("String.prototype.slice"),sF=Yp("Array.prototype.indexOf",!0)||function(e,r){for(var n=0;n-1?r:r!=="Object"?!1:lF(e)}return nf?oF(e):null}});var Hb=M(($W,Bb)=>{"use strict";m();var cF=Kp();Bb.exports=function(e){return!!cF(e)}});var Gb=M((LW,Ub)=>{"use strict";m();var uF=ur(),fF=xt(),dF=fF("TypedArray.prototype.buffer",!0),hF=Hb();Ub.exports=dF||function(e){if(!hF(e))throw new uF("Not a Typed Array");return e.buffer}});var qb=M((NW,Vb)=>{"use strict";m();var $n=Lu().Buffer,pF=ju(),mF=Gb(),gF=ArrayBuffer.isView||function(e){try{return mF(e),!0}catch(r){return!1}},vF=typeof Uint8Array!="undefined",zb=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined",yF=zb&&($n.prototype instanceof Uint8Array||$n.TYPED_ARRAY_SUPPORT);Vb.exports=function(e,r){if(e instanceof $n)return e;if(typeof e=="string")return $n.from(e,r);if(zb&&gF(e)){if(e.byteLength===0)return $n.alloc(0);if(yF){var n=$n.from(e.buffer,e.byteOffset,e.byteLength);if(n.byteLength===e.byteLength)return n}var i=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),a=$n.from(i);if(a.length===e.byteLength)return a}if(vF&&e instanceof Uint8Array)return $n.from(e);var s=pF(e);if(s)for(var o=0;o255||~~l!==l)throw new RangeError("Array items must be numbers in the range 0-255.")}if(s||$n.isBuffer(e)&&e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e))return $n.from(e);throw new TypeError('The "data" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}});var Yb=M((HW,Wb)=>{"use strict";m();var wF=Lu().Buffer,bF=qb();function of(t,e){this._block=wF.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}of.prototype.update=function(t,e){t=bF(t,e||"utf8");for(var r=this._block,n=this._blockSize,i=t.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var a=this._hash();return t?a.toString(t):a};of.prototype._update=function(){throw new Error("_update must be implemented by subclass")};Wb.exports=of});var Zb=M((GW,Kb)=>{"use strict";m();var _F=Wy(),Xb=Yb(),xF=Lu().Buffer,SF=[1518500249,1859775393,-1894007588,-899497514],EF=new Array(80);function kl(){this.init(),this._w=EF,Xb.call(this,64,56)}_F(kl,Xb);kl.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function AF(t){return t<<1|t>>>31}function kF(t){return t<<5|t>>>27}function TF(t){return t<<30|t>>>2}function CF(t,e,r,n){return t===0?e&r|~e&n:t===2?e&r|e&n|r&n:e^r^n}kl.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,a=this._d|0,s=this._e|0,o=0;o<16;++o)e[o]=t.readInt32BE(o*4);for(;o<80;++o)e[o]=AF(e[o-3]^e[o-8]^e[o-14]^e[o-16]);for(var l=0;l<80;++l){var c=~~(l/20),u=kF(r)+CF(c,n,i,a)+s+e[l]+SF[c]|0;s=a,a=i,i=TF(n),n=r,r=u}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=s+this._e|0};kl.prototype._hash=function(){var t=xF.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};Kb.exports=kl});var e2=M((VW,Qb)=>{"use strict";m();function Dn(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function Jb(t,e){for(var r="",n=0,i=-1,a=0,s,o=0;o<=t.length;++o){if(o2){var l=r.lastIndexOf("/");if(l!==r.length-1){l===-1?(r="",n=0):(r=r.slice(0,l),n=r.length-1-r.lastIndexOf("/")),i=o,a=0;continue}}else if(r.length===2||r.length===1){r="",n=0,i=o,a=0;continue}}e&&(r.length>0?r+="/..":r="..",n=2)}else r.length>0?r+="/"+t.slice(i+1,o):r=t.slice(i+1,o),n=o-i-1;i=o,a=0}else s===46&&a!==-1?++a:a=-1}return r}function PF(t,e){var r=e.dir||e.root,n=e.base||(e.name||"")+(e.ext||"");return r?r===e.root?r+n:r+t+n:n}var Vs={resolve:function(){for(var e="",r=!1,n,i=arguments.length-1;i>=-1&&!r;i--){var a;i>=0?a=arguments[i]:(n===void 0&&(n=process.cwd()),a=n),Dn(a),a.length!==0&&(e=a+"/"+e,r=a.charCodeAt(0)===47)}return e=Jb(e,!r),r?e.length>0?"/"+e:"/":e.length>0?e:"."},normalize:function(e){if(Dn(e),e.length===0)return".";var r=e.charCodeAt(0)===47,n=e.charCodeAt(e.length-1)===47;return e=Jb(e,!r),e.length===0&&!r&&(e="."),e.length>0&&n&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return Dn(e),e.length>0&&e.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var e,r=0;r0&&(e===void 0?e=n:e+="/"+n)}return e===void 0?".":Vs.normalize(e)},relative:function(e,r){if(Dn(e),Dn(r),e===r||(e=Vs.resolve(e),r=Vs.resolve(r),e===r))return"";for(var n=1;nc){if(r.charCodeAt(s+f)===47)return r.slice(s+f+1);if(f===0)return r.slice(s+f)}else a>c&&(e.charCodeAt(n+f)===47?u=f:f===0&&(u=0));break}var d=e.charCodeAt(n+f),h=r.charCodeAt(s+f);if(d!==h)break;d===47&&(u=f)}var p="";for(f=n+u+1;f<=i;++f)(f===i||e.charCodeAt(f)===47)&&(p.length===0?p+="..":p+="/..");return p.length>0?p+r.slice(s+u):(s+=u,r.charCodeAt(s)===47&&++s,r.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(Dn(e),e.length===0)return".";for(var r=e.charCodeAt(0),n=r===47,i=-1,a=!0,s=e.length-1;s>=1;--s)if(r=e.charCodeAt(s),r===47){if(!a){i=s;break}}else a=!1;return i===-1?n?"/":".":n&&i===1?"//":e.slice(0,i)},basename:function(e,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');Dn(e);var n=0,i=-1,a=!0,s;if(r!==void 0&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var o=r.length-1,l=-1;for(s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(c===47){if(!a){n=s+1;break}}else l===-1&&(a=!1,l=s+1),o>=0&&(c===r.charCodeAt(o)?--o===-1&&(i=s):(o=-1,i=l))}return n===i?i=l:i===-1&&(i=e.length),e.slice(n,i)}else{for(s=e.length-1;s>=0;--s)if(e.charCodeAt(s)===47){if(!a){n=s+1;break}}else i===-1&&(a=!1,i=s+1);return i===-1?"":e.slice(n,i)}},extname:function(e){Dn(e);for(var r=-1,n=0,i=-1,a=!0,s=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(l===47){if(!a){n=o+1;break}continue}i===-1&&(a=!1,i=o+1),l===46?r===-1?r=o:s!==1&&(s=1):r!==-1&&(s=-1)}return r===-1||i===-1||s===0||s===1&&r===i-1&&r===n+1?"":e.slice(r,i)},format:function(e){if(e===null||typeof e!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return PF("/",e)},parse:function(e){Dn(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return r;var n=e.charCodeAt(0),i=n===47,a;i?(r.root="/",a=1):a=0;for(var s=-1,o=0,l=-1,c=!0,u=e.length-1,f=0;u>=a;--u){if(n=e.charCodeAt(u),n===47){if(!c){o=u+1;break}continue}l===-1&&(c=!1,l=u+1),n===46?s===-1?s=u:f!==1&&(f=1):s!==-1&&(f=-1)}return s===-1||l===-1||f===0||f===1&&s===l-1&&s===o+1?l!==-1&&(o===0&&i?r.base=r.name=e.slice(1,l):r.base=r.name=e.slice(o,l)):(o===0&&i?(r.name=e.slice(1,s),r.base=e.slice(1,l)):(r.name=e.slice(o,s),r.base=e.slice(o,l)),r.ext=e.slice(s,l)),o>0?r.dir=e.slice(0,o-1):i&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};Vs.posix=Vs;Qb.exports=Vs});var r2=M(Zp=>{m();var t2;(function(t){typeof DO_NOT_EXPORT_CRC=="undefined"?typeof Zp=="object"?t(Zp):typeof define=="function"&&define.amd?define(function(){var e={};return t(e),e}):t(t2={}):t(t2={})})(function(t){t.version="1.2.2";function e(){for(var w=0,x=new Array(256),_=0;_!=256;++_)w=_,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,x[_]=w;return typeof Int32Array!="undefined"?new Int32Array(x):x}var r=e();function n(w){var x=0,_=0,T=0,C=typeof Int32Array!="undefined"?new Int32Array(4096):new Array(4096);for(T=0;T!=256;++T)C[T]=w[T];for(T=0;T!=256;++T)for(_=w[T],x=256+T;x<4096;x+=256)_=C[x]=_>>>8^w[_&255];var I=[];for(T=1;T!=16;++T)I[T-1]=typeof Int32Array!="undefined"?C.subarray(T*256,T*256+256):C.slice(T*256,T*256+256);return I}var i=n(r),a=i[0],s=i[1],o=i[2],l=i[3],c=i[4],u=i[5],f=i[6],d=i[7],h=i[8],p=i[9],g=i[10],v=i[11],y=i[12],b=i[13],E=i[14];function S(w,x){for(var _=x^-1,T=0,C=w.length;T>>8^r[(_^w.charCodeAt(T++))&255];return~_}function A(w,x){for(var _=x^-1,T=w.length-15,C=0;C>8&255]^y[w[C++]^_>>16&255]^v[w[C++]^_>>>24]^g[w[C++]]^p[w[C++]]^h[w[C++]]^d[w[C++]]^f[w[C++]]^u[w[C++]]^c[w[C++]]^l[w[C++]]^o[w[C++]]^s[w[C++]]^a[w[C++]]^r[w[C++]];for(T+=15;C>>8^r[(_^w[C++])&255];return~_}function k(w,x){for(var _=x^-1,T=0,C=w.length,I=0,L=0;T>>8^r[(_^I)&255]:I<2048?(_=_>>>8^r[(_^(192|I>>6&31))&255],_=_>>>8^r[(_^(128|I&63))&255]):I>=55296&&I<57344?(I=(I&1023)+64,L=w.charCodeAt(T++)&1023,_=_>>>8^r[(_^(240|I>>8&7))&255],_=_>>>8^r[(_^(128|I>>2&63))&255],_=_>>>8^r[(_^(128|L>>6&15|(I&3)<<4))&255],_=_>>>8^r[(_^(128|L&63))&255]):(_=_>>>8^r[(_^(224|I>>12&15))&255],_=_>>>8^r[(_^(128|I>>6&63))&255],_=_>>>8^r[(_^(128|I&63))&255]);return~_}t.table=r,t.bstr=S,t.buf=A,t.str=k})});var pi=M(Qt=>{"use strict";m();var RF=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function MF(t,e){return Object.prototype.hasOwnProperty.call(t,e)}Qt.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(var n in r)MF(r,n)&&(t[n]=r[n])}}return t};Qt.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var OF={arraySet:function(t,e,r,n,i){if(e.subarray&&t.subarray){t.set(e.subarray(r,r+n),i);return}for(var a=0;a{"use strict";m();var FF=pi(),$F=4,n2=0,i2=1,DF=2;function Ws(t){for(var e=t.length;--e>=0;)t[e]=0}var LF=0,u2=1,jF=2,NF=3,BF=258,im=29,Ol=256,Cl=Ol+1+im,qs=30,am=19,f2=2*Cl+1,$a=15,Jp=16,HF=7,sm=256,d2=16,h2=17,p2=18,rm=[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],lf=[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],UF=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],m2=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],GF=512,mi=new Array((Cl+2)*2);Ws(mi);var Tl=new Array(qs*2);Ws(Tl);var Pl=new Array(GF);Ws(Pl);var Rl=new Array(BF-NF+1);Ws(Rl);var om=new Array(im);Ws(om);var cf=new Array(qs);Ws(cf);function Qp(t,e,r,n,i){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=t&&t.length}var g2,v2,y2;function em(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function w2(t){return t<256?Pl[t]:Pl[256+(t>>>7)]}function Ml(t,e){t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255}function fr(t,e,r){t.bi_valid>Jp-r?(t.bi_buf|=e<>Jp-t.bi_valid,t.bi_valid+=r-Jp):(t.bi_buf|=e<>>=1,r<<=1;while(--e>0);return r>>>1}function zF(t){t.bi_valid===16?(Ml(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)}function VF(t,e){var r=e.dyn_tree,n=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length,c,u,f,d,h,p,g=0;for(d=0;d<=$a;d++)t.bl_count[d]=0;for(r[t.heap[t.heap_max]*2+1]=0,c=t.heap_max+1;cl&&(d=l,g++),r[u*2+1]=d,!(u>n)&&(t.bl_count[d]++,h=0,u>=o&&(h=s[u-o]),p=r[u*2],t.opt_len+=p*(d+h),a&&(t.static_len+=p*(i[u*2+1]+h)));if(g!==0){do{for(d=l-1;t.bl_count[d]===0;)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[l]--,g-=2}while(g>0);for(d=l;d!==0;d--)for(u=t.bl_count[d];u!==0;)f=t.heap[--c],!(f>n)&&(r[f*2+1]!==d&&(t.opt_len+=(d-r[f*2+1])*r[f*2],r[f*2+1]=d),u--)}}function _2(t,e,r){var n=new Array($a+1),i=0,a,s;for(a=1;a<=$a;a++)n[a]=i=i+r[a-1]<<1;for(s=0;s<=e;s++){var o=t[s*2+1];o!==0&&(t[s*2]=b2(n[o]++,o))}}function qF(){var t,e,r,n,i,a=new Array($a+1);for(r=0,n=0;n>=7;n8?Ml(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function WF(t,e,r,n){S2(t),n&&(Ml(t,r),Ml(t,~r)),FF.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}function a2(t,e,r,n){var i=e*2,a=r*2;return t[i]>1;s>=1;s--)tm(t,r,s);c=a;do s=t.heap[1],t.heap[1]=t.heap[t.heap_len--],tm(t,r,1),o=t.heap[1],t.heap[--t.heap_max]=s,t.heap[--t.heap_max]=o,r[c*2]=r[s*2]+r[o*2],t.depth[c]=(t.depth[s]>=t.depth[o]?t.depth[s]:t.depth[o])+1,r[s*2+1]=r[o*2+1]=c,t.heap[1]=c++,tm(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],VF(t,e),_2(r,l,t.bl_count)}function o2(t,e,r){var n,i=-1,a,s=e[0*2+1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),e[(r+1)*2+1]=65535,n=0;n<=r;n++)a=s,s=e[(n+1)*2+1],!(++o=3&&t.bl_tree[m2[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e}function XF(t,e,r,n){var i;for(fr(t,e-257,5),fr(t,r-1,5),fr(t,n-4,4),i=0;i>>=1)if(e&1&&t.dyn_ltree[r*2]!==0)return n2;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return i2;for(r=32;r0?(t.strm.data_type===DF&&(t.strm.data_type=KF(t)),nm(t,t.l_desc),nm(t,t.d_desc),s=YF(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&e!==-1?E2(t,e,r,n):t.strategy===$F||a===i?(fr(t,(u2<<1)+(n?1:0),3),s2(t,mi,Tl)):(fr(t,(jF<<1)+(n?1:0),3),XF(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),s2(t,t.dyn_ltree,t.dyn_dtree)),x2(t),n&&S2(t)}function e$(t,e,r){return t.pending_buf[t.d_buf+t.last_lit*2]=e>>>8&255,t.pending_buf[t.d_buf+t.last_lit*2+1]=e&255,t.pending_buf[t.l_buf+t.last_lit]=r&255,t.last_lit++,e===0?t.dyn_ltree[r*2]++:(t.matches++,e--,t.dyn_ltree[(Rl[r]+Ol+1)*2]++,t.dyn_dtree[w2(e)*2]++),t.last_lit===t.lit_bufsize-1}Ys._tr_init=ZF;Ys._tr_stored_block=E2;Ys._tr_flush_block=QF;Ys._tr_tally=e$;Ys._tr_align=JF});var lm=M((QW,k2)=>{"use strict";m();function t$(t,e,r,n){for(var i=t&65535|0,a=t>>>16&65535|0,s=0;r!==0;){s=r>2e3?2e3:r,r-=s;do i=i+e[n++]|0,a=a+i|0;while(--s);i%=65521,a%=65521}return i|a<<16|0}k2.exports=t$});var cm=M((tY,T2)=>{"use strict";m();function r$(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;e[r]=t}return e}var n$=r$();function i$(t,e,r,n){var i=n$,a=n+r;t^=-1;for(var s=n;s>>8^i[(t^e[s])&255];return t^-1}T2.exports=i$});var uf=M((nY,C2)=>{"use strict";m();C2.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var L2=M(Bn=>{"use strict";m();var er=pi(),Wr=A2(),O2=lm(),Vi=cm(),a$=uf(),Na=0,s$=1,o$=3,Ki=4,P2=5,Nn=0,R2=1,Yr=-2,l$=-3,um=-5,c$=-1,u$=1,ff=2,f$=3,d$=4,h$=0,p$=2,mf=8,m$=9,g$=15,v$=8,y$=29,w$=256,dm=w$+1+y$,b$=30,_$=19,x$=2*dm+1,S$=15,Ee=3,Yi=258,dn=Yi+Ee+1,E$=32,gf=42,hm=69,df=73,hf=91,pf=103,Da=113,Fl=666,wt=1,$l=2,La=3,Zs=4,A$=3;function Xi(t,e){return t.msg=a$[e],e}function M2(t){return(t<<1)-(t>4?9:0)}function Wi(t){for(var e=t.length;--e>=0;)t[e]=0}function qi(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),r!==0&&(er.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,e.pending===0&&(e.pending_out=0))}function Ft(t,e){Wr._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,qi(t.strm)}function Re(t,e){t.pending_buf[t.pending++]=e}function Il(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255}function k$(t,e,r,n){var i=t.avail_in;return i>n&&(i=n),i===0?0:(t.avail_in-=i,er.arraySet(e,t.input,t.next_in,i,r),t.state.wrap===1?t.adler=O2(t.adler,e,i,r):t.state.wrap===2&&(t.adler=Vi(t.adler,e,i,r)),t.next_in+=i,t.total_in+=i,i)}function I2(t,e){var r=t.max_chain_length,n=t.strstart,i,a,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-dn?t.strstart-(t.w_size-dn):0,c=t.window,u=t.w_mask,f=t.prev,d=t.strstart+Yi,h=c[n+s-1],p=c[n+s];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do if(i=e,!(c[i+s]!==p||c[i+s-1]!==h||c[i]!==c[n]||c[++i]!==c[n+1])){n+=2,i++;do;while(c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&ns){if(t.match_start=e,s=a,a>=o)break;h=c[n+s-1],p=c[n+s]}}while((e=f[e&u])>l&&--r!==0);return s<=t.lookahead?s:t.lookahead}function ja(t){var e=t.w_size,r,n,i,a,s;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-dn)){er.arraySet(t.window,t.window,e,e,0),t.match_start-=e,t.strstart-=e,t.block_start-=e,n=t.hash_size,r=n;do i=t.head[--r],t.head[r]=i>=e?i-e:0;while(--n);n=e,r=n;do i=t.prev[--r],t.prev[r]=i>=e?i-e:0;while(--n);a+=e}if(t.strm.avail_in===0)break;if(n=k$(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=n,t.lookahead+t.insert>=Ee)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(ja(t),t.lookahead===0&&e===Na)return wt;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((t.strstart===0||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,Ft(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-dn&&(Ft(t,!1),t.strm.avail_out===0))return wt}return t.insert=0,e===Ki?(Ft(t,!0),t.strm.avail_out===0?La:Zs):(t.strstart>t.block_start&&(Ft(t,!1),t.strm.avail_out===0),wt)}function fm(t,e){for(var r,n;;){if(t.lookahead=Ee&&(t.ins_h=(t.ins_h<=Ee)if(n=Wr._tr_tally(t,t.strstart-t.match_start,t.match_length-Ee),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=Ee){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<=Ee&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=Ee-1)),t.prev_length>=Ee&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-Ee,n=Wr._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-Ee),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<=Ee&&t.strstart>0&&(i=t.strstart-1,n=s[i],n===s[++i]&&n===s[++i]&&n===s[++i])){a=t.strstart+Yi;do;while(n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&n===s[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=Ee?(r=Wr._tr_tally(t,1,t.match_length-Ee),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=Wr._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(Ft(t,!1),t.strm.avail_out===0))return wt}return t.insert=0,e===Ki?(Ft(t,!0),t.strm.avail_out===0?La:Zs):t.last_lit&&(Ft(t,!1),t.strm.avail_out===0)?wt:$l}function P$(t,e){for(var r;;){if(t.lookahead===0&&(ja(t),t.lookahead===0)){if(e===Na)return wt;break}if(t.match_length=0,r=Wr._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(Ft(t,!1),t.strm.avail_out===0))return wt}return t.insert=0,e===Ki?(Ft(t,!0),t.strm.avail_out===0?La:Zs):t.last_lit&&(Ft(t,!1),t.strm.avail_out===0)?wt:$l}function jn(t,e,r,n,i){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=n,this.func=i}var Ks;Ks=[new jn(0,0,0,0,T$),new jn(4,4,8,4,fm),new jn(4,5,16,8,fm),new jn(4,6,32,32,fm),new jn(4,4,16,16,Xs),new jn(8,16,32,32,Xs),new jn(8,16,128,128,Xs),new jn(8,32,128,256,Xs),new jn(32,128,258,1024,Xs),new jn(32,258,258,4096,Xs)];function R$(t){t.window_size=2*t.w_size,Wi(t.head),t.max_lazy_match=Ks[t.level].max_lazy,t.good_match=Ks[t.level].good_length,t.nice_match=Ks[t.level].nice_length,t.max_chain_length=Ks[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Ee-1,t.match_available=0,t.ins_h=0}function M$(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=mf,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new er.Buf16(x$*2),this.dyn_dtree=new er.Buf16((2*b$+1)*2),this.bl_tree=new er.Buf16((2*_$+1)*2),Wi(this.dyn_ltree),Wi(this.dyn_dtree),Wi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new er.Buf16(S$+1),this.heap=new er.Buf16(2*dm+1),Wi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new er.Buf16(2*dm+1),Wi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function F2(t){var e;return!t||!t.state?Xi(t,Yr):(t.total_in=t.total_out=0,t.data_type=p$,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?gf:Da,t.adler=e.wrap===2?0:1,e.last_flush=Na,Wr._tr_init(e),Nn)}function $2(t){var e=F2(t);return e===Nn&&R$(t.state),e}function O$(t,e){return!t||!t.state||t.state.wrap!==2?Yr:(t.state.gzhead=e,Nn)}function D2(t,e,r,n,i,a){if(!t)return Yr;var s=1;if(e===c$&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),i<1||i>m$||r!==mf||n<8||n>15||e<0||e>9||a<0||a>d$)return Xi(t,Yr);n===8&&(n=9);var o=new M$;return t.state=o,o.strm=t,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<P2||e<0)return t?Xi(t,Yr):Yr;if(n=t.state,!t.output||!t.input&&t.avail_in!==0||n.status===Fl&&e!==Ki)return Xi(t,t.avail_out===0?um:Yr);if(n.strm=t,r=n.last_flush,n.last_flush=e,n.status===gf)if(n.wrap===2)t.adler=0,Re(n,31),Re(n,139),Re(n,8),n.gzhead?(Re(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Re(n,n.gzhead.time&255),Re(n,n.gzhead.time>>8&255),Re(n,n.gzhead.time>>16&255),Re(n,n.gzhead.time>>24&255),Re(n,n.level===9?2:n.strategy>=ff||n.level<2?4:0),Re(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Re(n,n.gzhead.extra.length&255),Re(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=Vi(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=hm):(Re(n,0),Re(n,0),Re(n,0),Re(n,0),Re(n,0),Re(n,n.level===9?2:n.strategy>=ff||n.level<2?4:0),Re(n,A$),n.status=Da);else{var s=mf+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=ff||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=E$),s+=31-s%31,n.status=Da,Il(n,s),n.strstart!==0&&(Il(n,t.adler>>>16),Il(n,t.adler&65535)),t.adler=1}if(n.status===hm)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=Vi(t.adler,n.pending_buf,n.pending-i,i)),qi(t),i=n.pending,n.pending===n.pending_buf_size));)Re(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(t.adler=Vi(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=df)}else n.status=df;if(n.status===df)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=Vi(t.adler,n.pending_buf,n.pending-i,i)),qi(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindexi&&(t.adler=Vi(t.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.gzindex=0,n.status=hf)}else n.status=hf;if(n.status===hf)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=Vi(t.adler,n.pending_buf,n.pending-i,i)),qi(t),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindexi&&(t.adler=Vi(t.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.status=pf)}else n.status=pf;if(n.status===pf&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&qi(t),n.pending+2<=n.pending_buf_size&&(Re(n,t.adler&255),Re(n,t.adler>>8&255),t.adler=0,n.status=Da)):n.status=Da),n.pending!==0){if(qi(t),t.avail_out===0)return n.last_flush=-1,Nn}else if(t.avail_in===0&&M2(e)<=M2(r)&&e!==Ki)return Xi(t,um);if(n.status===Fl&&t.avail_in!==0)return Xi(t,um);if(t.avail_in!==0||n.lookahead!==0||e!==Na&&n.status!==Fl){var l=n.strategy===ff?P$(n,e):n.strategy===f$?C$(n,e):Ks[n.level].func(n,e);if((l===La||l===Zs)&&(n.status=Fl),l===wt||l===La)return t.avail_out===0&&(n.last_flush=-1),Nn;if(l===$l&&(e===s$?Wr._tr_align(n):e!==P2&&(Wr._tr_stored_block(n,0,0,!1),e===o$&&(Wi(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),qi(t),t.avail_out===0))return n.last_flush=-1,Nn}return e!==Ki?Nn:n.wrap<=0?R2:(n.wrap===2?(Re(n,t.adler&255),Re(n,t.adler>>8&255),Re(n,t.adler>>16&255),Re(n,t.adler>>24&255),Re(n,t.total_in&255),Re(n,t.total_in>>8&255),Re(n,t.total_in>>16&255),Re(n,t.total_in>>24&255)):(Il(n,t.adler>>>16),Il(n,t.adler&65535)),qi(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Nn:R2)}function $$(t){var e;return!t||!t.state?Yr:(e=t.state.status,e!==gf&&e!==hm&&e!==df&&e!==hf&&e!==pf&&e!==Da&&e!==Fl?Xi(t,Yr):(t.state=null,e===Da?Xi(t,l$):Nn))}function D$(t,e){var r=e.length,n,i,a,s,o,l,c,u;if(!t||!t.state||(n=t.state,s=n.wrap,s===2||s===1&&n.status!==gf||n.lookahead))return Yr;for(s===1&&(t.adler=O2(t.adler,e,r,0)),n.wrap=0,r>=n.w_size&&(s===0&&(Wi(n.head),n.strstart=0,n.block_start=0,n.insert=0),u=new er.Buf8(n.w_size),er.arraySet(u,e,r-n.w_size,n.w_size,0),e=u,r=n.w_size),o=t.avail_in,l=t.next_in,c=t.input,t.avail_in=r,t.next_in=0,t.input=e,ja(n);n.lookahead>=Ee;){i=n.strstart,a=n.lookahead-(Ee-1);do n.ins_h=(n.ins_h<{"use strict";m();var vf=pi(),j2=!0,N2=!0;try{String.fromCharCode.apply(null,[0])}catch(t){j2=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){N2=!1}var Dl=new vf.Buf8(256);for(gi=0;gi<256;gi++)Dl[gi]=gi>=252?6:gi>=248?5:gi>=240?4:gi>=224?3:gi>=192?2:1;var gi;Dl[254]=Dl[254]=1;Js.string2buf=function(t){var e,r,n,i,a,s=t.length,o=0;for(i=0;i>>6,e[a++]=128|r&63):r<65536?(e[a++]=224|r>>>12,e[a++]=128|r>>>6&63,e[a++]=128|r&63):(e[a++]=240|r>>>18,e[a++]=128|r>>>12&63,e[a++]=128|r>>>6&63,e[a++]=128|r&63);return e};function B2(t,e){if(e<65534&&(t.subarray&&N2||!t.subarray&&j2))return String.fromCharCode.apply(null,vf.shrinkBuf(t,e));for(var r="",n=0;n4){o[n++]=65533,r+=a-1;continue}for(i&=a===2?31:a===3?15:7;a>1&&r1){o[n++]=65533;continue}i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|i&1023)}return B2(o,n)};Js.utf8border=function(t,e){var r;for(e=e||t.length,e>t.length&&(e=t.length),r=e-1;r>=0&&(t[r]&192)===128;)r--;return r<0||r===0?e:r+Dl[t[r]]>e?r:e}});var mm=M((cY,H2)=>{"use strict";m();function L$(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}H2.exports=L$});var V2=M(Nl=>{"use strict";m();var Ll=L2(),jl=pi(),vm=pm(),ym=uf(),j$=mm(),z2=Object.prototype.toString,N$=0,gm=4,Qs=0,U2=1,G2=2,B$=-1,H$=0,U$=8;function Ba(t){if(!(this instanceof Ba))return new Ba(t);this.options=jl.assign({level:B$,method:U$,chunkSize:16384,windowBits:15,memLevel:8,strategy:H$,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new j$,this.strm.avail_out=0;var r=Ll.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(r!==Qs)throw new Error(ym[r]);if(e.header&&Ll.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(typeof e.dictionary=="string"?n=vm.string2buf(e.dictionary):z2.call(e.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(e.dictionary):n=e.dictionary,r=Ll.deflateSetDictionary(this.strm,n),r!==Qs)throw new Error(ym[r]);this._dict_set=!0}}Ba.prototype.push=function(t,e){var r=this.strm,n=this.options.chunkSize,i,a;if(this.ended)return!1;a=e===~~e?e:e===!0?gm:N$,typeof t=="string"?r.input=vm.string2buf(t):z2.call(t)==="[object ArrayBuffer]"?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new jl.Buf8(n),r.next_out=0,r.avail_out=n),i=Ll.deflate(r,a),i!==U2&&i!==Qs)return this.onEnd(i),this.ended=!0,!1;(r.avail_out===0||r.avail_in===0&&(a===gm||a===G2))&&(this.options.to==="string"?this.onData(vm.buf2binstring(jl.shrinkBuf(r.output,r.next_out))):this.onData(jl.shrinkBuf(r.output,r.next_out)))}while((r.avail_in>0||r.avail_out===0)&&i!==U2);return a===gm?(i=Ll.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Qs):(a===G2&&(this.onEnd(Qs),r.avail_out=0),!0)};Ba.prototype.onData=function(t){this.chunks.push(t)};Ba.prototype.onEnd=function(t){t===Qs&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=jl.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function wm(t,e){var r=new Ba(e);if(r.push(t,!0),r.err)throw r.msg||ym[r.err];return r.result}function G$(t,e){return e=e||{},e.raw=!0,wm(t,e)}function z$(t,e){return e=e||{},e.gzip=!0,wm(t,e)}Nl.Deflate=Ba;Nl.deflate=wm;Nl.deflateRaw=G$;Nl.gzip=z$});var W2=M((hY,q2)=>{"use strict";m();var yf=30,V$=12;q2.exports=function(e,r){var n,i,a,s,o,l,c,u,f,d,h,p,g,v,y,b,E,S,A,k,w,x,_,T,C;n=e.state,i=e.next_in,T=e.input,a=i+(e.avail_in-5),s=e.next_out,C=e.output,o=s-(r-e.avail_out),l=s+(e.avail_out-257),c=n.dmax,u=n.wsize,f=n.whave,d=n.wnext,h=n.window,p=n.hold,g=n.bits,v=n.lencode,y=n.distcode,b=(1<>>24,p>>>=A,g-=A,A=S>>>16&255,A===0)C[s++]=S&65535;else if(A&16){k=S&65535,A&=15,A&&(g>>=A,g-=A),g<15&&(p+=T[i++]<>>24,p>>>=A,g-=A,A=S>>>16&255,A&16){if(w=S&65535,A&=15,gc){e.msg="invalid distance too far back",n.mode=yf;break e}if(p>>>=A,g-=A,A=s-o,w>A){if(A=w-A,A>f&&n.sane){e.msg="invalid distance too far back",n.mode=yf;break e}if(x=0,_=h,d===0){if(x+=u-A,A2;)C[s++]=_[x++],C[s++]=_[x++],C[s++]=_[x++],k-=3;k&&(C[s++]=_[x++],k>1&&(C[s++]=_[x++]))}else{x=s-w;do C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],k-=3;while(k>2);k&&(C[s++]=C[x++],k>1&&(C[s++]=C[x++]))}}else if(A&64){e.msg="invalid distance code",n.mode=yf;break e}else{S=y[(S&65535)+(p&(1<>3,i-=k,g-=k<<3,p&=(1<{"use strict";m();var Y2=pi(),eo=15,X2=852,K2=592,Z2=0,bm=1,J2=2,q$=[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],W$=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Y$=[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,0,0],X$=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];Q2.exports=function(e,r,n,i,a,s,o,l){var c=l.bits,u=0,f=0,d=0,h=0,p=0,g=0,v=0,y=0,b=0,E=0,S,A,k,w,x,_=null,T=0,C,I=new Y2.Buf16(eo+1),L=new Y2.Buf16(eo+1),$=null,J=0,de,le,ce;for(u=0;u<=eo;u++)I[u]=0;for(f=0;f=1&&I[h]===0;h--);if(p>h&&(p=h),h===0)return a[s++]=1<<24|64<<16|0,a[s++]=1<<24|64<<16|0,l.bits=1,0;for(d=1;d0&&(e===Z2||h!==1))return-1;for(L[1]=0,u=1;uX2||e===J2&&b>K2)return 1;for(;;){de=u-v,o[f]C?(le=$[J+o[f]],ce=_[T+o[f]]):(le=96,ce=0),S=1<>v)+A]=de<<24|le<<16|ce|0;while(A!==0);for(S=1<>=1;if(S!==0?(E&=S-1,E+=S):E=0,f++,--I[u]===0){if(u===h)break;u=r[n+o[f]]}if(u>p&&(E&w)!==k){for(v===0&&(v=p),x+=d,g=u-v,y=1<X2||e===J2&&b>K2)return 1;k=E&w,a[k]=p<<24|g<<16|x-s|0}}return E!==0&&(a[x+E]=u-v<<24|64<<16|0),l.bits=p,0}});var $_=M(hn=>{"use strict";m();var Pr=pi(),km=lm(),Hn=cm(),K$=W2(),Bl=e_(),Z$=0,k_=1,T_=2,t_=4,J$=5,wf=6,Ha=0,Q$=1,e8=2,Xr=-2,C_=-3,Tm=-4,t8=-5,r_=8,P_=1,n_=2,i_=3,a_=4,s_=5,o_=6,l_=7,c_=8,u_=9,f_=10,xf=11,vi=12,_m=13,d_=14,xm=15,h_=16,p_=17,m_=18,g_=19,bf=20,_f=21,v_=22,y_=23,w_=24,b_=25,__=26,Sm=27,x_=28,S_=29,Ye=30,Cm=31,r8=32,n8=852,i8=592,a8=15,s8=a8;function E_(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function o8(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Pr.Buf16(320),this.work=new Pr.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function R_(t){var e;return!t||!t.state?Xr:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=P_,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Pr.Buf32(n8),e.distcode=e.distdyn=new Pr.Buf32(i8),e.sane=1,e.back=-1,Ha)}function M_(t){var e;return!t||!t.state?Xr:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,R_(t))}function O_(t,e){var r,n;return!t||!t.state||(n=t.state,e<0?(r=0,e=-e):(r=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?Xr:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,M_(t))}function I_(t,e){var r,n;return t?(n=new o8,t.state=n,n.window=null,r=O_(t,e),r!==Ha&&(t.state=null),r):Xr}function l8(t){return I_(t,s8)}var A_=!0,Em,Am;function c8(t){if(A_){var e;for(Em=new Pr.Buf32(512),Am=new Pr.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Bl(k_,t.lens,0,288,Em,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Bl(T_,t.lens,0,32,Am,0,t.work,{bits:5}),A_=!1}t.lencode=Em,t.lenbits=9,t.distcode=Am,t.distbits=5}function F_(t,e,r,n){var i,a=t.state;return a.window===null&&(a.wsize=1<=a.wsize?(Pr.arraySet(a.window,e,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),Pr.arraySet(a.window,e,r-n,i,a.wnext),n-=i,n?(Pr.arraySet(a.window,e,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=Hn(r.check,_,2,0),c=0,u=0,r.mode=n_;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((c&255)<<8)+(c>>8))%31){t.msg="incorrect header check",r.mode=Ye;break}if((c&15)!==r_){t.msg="unknown compression method",r.mode=Ye;break}if(c>>>=4,u-=4,w=(c&15)+8,r.wbits===0)r.wbits=w;else if(w>r.wbits){t.msg="invalid window size",r.mode=Ye;break}r.dmax=1<>8&1),r.flags&512&&(_[0]=c&255,_[1]=c>>>8&255,r.check=Hn(r.check,_,2,0)),c=0,u=0,r.mode=i_;case i_:for(;u<32;){if(o===0)break e;o--,c+=n[a++]<>>8&255,_[2]=c>>>16&255,_[3]=c>>>24&255,r.check=Hn(r.check,_,4,0)),c=0,u=0,r.mode=a_;case a_:for(;u<16;){if(o===0)break e;o--,c+=n[a++]<>8),r.flags&512&&(_[0]=c&255,_[1]=c>>>8&255,r.check=Hn(r.check,_,2,0)),c=0,u=0,r.mode=s_;case s_:if(r.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=n[a++]<>>8&255,r.check=Hn(r.check,_,2,0)),c=0,u=0}else r.head&&(r.head.extra=null);r.mode=o_;case o_:if(r.flags&1024&&(h=r.length,h>o&&(h=o),h&&(r.head&&(w=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),Pr.arraySet(r.head.extra,n,a,h,w)),r.flags&512&&(r.check=Hn(r.check,n,h,a)),o-=h,a+=h,r.length-=h),r.length))break e;r.length=0,r.mode=l_;case l_:if(r.flags&2048){if(o===0)break e;h=0;do w=n[a+h++],r.head&&w&&r.length<65536&&(r.head.name+=String.fromCharCode(w));while(w&&h>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=vi;break;case f_:for(;u<32;){if(o===0)break e;o--,c+=n[a++]<>>=u&7,u-=u&7,r.mode=Sm;break}for(;u<3;){if(o===0)break e;o--,c+=n[a++]<>>=1,u-=1,c&3){case 0:r.mode=d_;break;case 1:if(c8(r),r.mode=bf,e===wf){c>>>=2,u-=2;break e}break;case 2:r.mode=p_;break;case 3:t.msg="invalid block type",r.mode=Ye}c>>>=2,u-=2;break;case d_:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=n[a++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=Ye;break}if(r.length=c&65535,c=0,u=0,r.mode=xm,e===wf)break e;case xm:r.mode=h_;case h_:if(h=r.length,h){if(h>o&&(h=o),h>l&&(h=l),h===0)break e;Pr.arraySet(i,n,a,h,s),o-=h,a+=h,l-=h,s+=h,r.length-=h;break}r.mode=vi;break;case p_:for(;u<14;){if(o===0)break e;o--,c+=n[a++]<>>=5,u-=5,r.ndist=(c&31)+1,c>>>=5,u-=5,r.ncode=(c&15)+4,c>>>=4,u-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=Ye;break}r.have=0,r.mode=m_;case m_:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[I[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,T={bits:r.lenbits},x=Bl(Z$,r.lens,0,19,r.lencode,0,r.work,T),r.lenbits=T.bits,x){t.msg="invalid code lengths set",r.mode=Ye;break}r.have=0,r.mode=g_;case g_:for(;r.have>>24,b=v>>>16&255,E=v&65535,!(y<=u);){if(o===0)break e;o--,c+=n[a++]<>>=y,u-=y,r.lens[r.have++]=E;else{if(E===16){for(C=y+2;u>>=y,u-=y,r.have===0){t.msg="invalid bit length repeat",r.mode=Ye;break}w=r.lens[r.have-1],h=3+(c&3),c>>>=2,u-=2}else if(E===17){for(C=y+3;u>>=y,u-=y,w=0,h=3+(c&7),c>>>=3,u-=3}else{for(C=y+7;u>>=y,u-=y,w=0,h=11+(c&127),c>>>=7,u-=7}if(r.have+h>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=Ye;break}for(;h--;)r.lens[r.have++]=w}}if(r.mode===Ye)break;if(r.lens[256]===0){t.msg="invalid code -- missing end-of-block",r.mode=Ye;break}if(r.lenbits=9,T={bits:r.lenbits},x=Bl(k_,r.lens,0,r.nlen,r.lencode,0,r.work,T),r.lenbits=T.bits,x){t.msg="invalid literal/lengths set",r.mode=Ye;break}if(r.distbits=6,r.distcode=r.distdyn,T={bits:r.distbits},x=Bl(T_,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,T),r.distbits=T.bits,x){t.msg="invalid distances set",r.mode=Ye;break}if(r.mode=bf,e===wf)break e;case bf:r.mode=_f;case _f:if(o>=6&&l>=258){t.next_out=s,t.avail_out=l,t.next_in=a,t.avail_in=o,r.hold=c,r.bits=u,K$(t,d),s=t.next_out,i=t.output,l=t.avail_out,a=t.next_in,n=t.input,o=t.avail_in,c=r.hold,u=r.bits,r.mode===vi&&(r.back=-1);break}for(r.back=0;v=r.lencode[c&(1<>>24,b=v>>>16&255,E=v&65535,!(y<=u);){if(o===0)break e;o--,c+=n[a++]<>S)],y=v>>>24,b=v>>>16&255,E=v&65535,!(S+y<=u);){if(o===0)break e;o--,c+=n[a++]<>>=S,u-=S,r.back+=S}if(c>>>=y,u-=y,r.back+=y,r.length=E,b===0){r.mode=__;break}if(b&32){r.back=-1,r.mode=vi;break}if(b&64){t.msg="invalid literal/length code",r.mode=Ye;break}r.extra=b&15,r.mode=v_;case v_:if(r.extra){for(C=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=y_;case y_:for(;v=r.distcode[c&(1<>>24,b=v>>>16&255,E=v&65535,!(y<=u);){if(o===0)break e;o--,c+=n[a++]<>S)],y=v>>>24,b=v>>>16&255,E=v&65535,!(S+y<=u);){if(o===0)break e;o--,c+=n[a++]<>>=S,u-=S,r.back+=S}if(c>>>=y,u-=y,r.back+=y,b&64){t.msg="invalid distance code",r.mode=Ye;break}r.offset=E,r.extra=b&15,r.mode=w_;case w_:if(r.extra){for(C=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=Ye;break}r.mode=b_;case b_:if(l===0)break e;if(h=d-l,r.offset>h){if(h=r.offset-h,h>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=Ye;break}h>r.wnext?(h-=r.wnext,p=r.wsize-h):p=r.wnext-h,h>r.length&&(h=r.length),g=r.window}else g=i,p=s-r.offset,h=r.length;h>l&&(h=l),l-=h,r.length-=h;do i[s++]=g[p++];while(--h);r.length===0&&(r.mode=_f);break;case __:if(l===0)break e;i[s++]=r.length,l--,r.mode=_f;break;case Sm:if(r.wrap){for(;u<32;){if(o===0)break e;o--,c|=n[a++]<{"use strict";m();D_.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var j_=M((_Y,L_)=>{"use strict";m();function p8(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}L_.exports=p8});var B_=M(Ul=>{"use strict";m();var to=$_(),Hl=pi(),Sf=pm(),lt=Pm(),Rm=uf(),m8=mm(),g8=j_(),N_=Object.prototype.toString;function Ua(t){if(!(this instanceof Ua))return new Ua(t);this.options=Hl.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new m8,this.strm.avail_out=0;var r=to.inflateInit2(this.strm,e.windowBits);if(r!==lt.Z_OK)throw new Error(Rm[r]);if(this.header=new g8,to.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Sf.string2buf(e.dictionary):N_.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=to.inflateSetDictionary(this.strm,e.dictionary),r!==lt.Z_OK)))throw new Error(Rm[r])}Ua.prototype.push=function(t,e){var r=this.strm,n=this.options.chunkSize,i=this.options.dictionary,a,s,o,l,c,u=!1;if(this.ended)return!1;s=e===~~e?e:e===!0?lt.Z_FINISH:lt.Z_NO_FLUSH,typeof t=="string"?r.input=Sf.binstring2buf(t):N_.call(t)==="[object ArrayBuffer]"?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Hl.Buf8(n),r.next_out=0,r.avail_out=n),a=to.inflate(r,lt.Z_NO_FLUSH),a===lt.Z_NEED_DICT&&i&&(a=to.inflateSetDictionary(this.strm,i)),a===lt.Z_BUF_ERROR&&u===!0&&(a=lt.Z_OK,u=!1),a!==lt.Z_STREAM_END&&a!==lt.Z_OK)return this.onEnd(a),this.ended=!0,!1;r.next_out&&(r.avail_out===0||a===lt.Z_STREAM_END||r.avail_in===0&&(s===lt.Z_FINISH||s===lt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=Sf.utf8border(r.output,r.next_out),l=r.next_out-o,c=Sf.buf2string(r.output,o),r.next_out=l,r.avail_out=n-l,l&&Hl.arraySet(r.output,r.output,o,l,0),this.onData(c)):this.onData(Hl.shrinkBuf(r.output,r.next_out))),r.avail_in===0&&r.avail_out===0&&(u=!0)}while((r.avail_in>0||r.avail_out===0)&&a!==lt.Z_STREAM_END);return a===lt.Z_STREAM_END&&(s=lt.Z_FINISH),s===lt.Z_FINISH?(a=to.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===lt.Z_OK):(s===lt.Z_SYNC_FLUSH&&(this.onEnd(lt.Z_OK),r.avail_out=0),!0)};Ua.prototype.onData=function(t){this.chunks.push(t)};Ua.prototype.onEnd=function(t){t===lt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Hl.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Mm(t,e){var r=new Ua(e);if(r.push(t,!0),r.err)throw r.msg||Rm[r.err];return r.result}function v8(t,e){return e=e||{},e.raw=!0,Mm(t,e)}Ul.Inflate=Ua;Ul.inflate=Mm;Ul.inflateRaw=v8;Ul.ungzip=Mm});var G_=M((AY,U_)=>{"use strict";m();var y8=pi().assign,w8=V2(),b8=B_(),_8=Pm(),H_={};y8(H_,w8,b8,_8);U_.exports=H_});var q_=M((TY,V_)=>{"use strict";m();var z_=(t,e)=>function(...r){let n=e.promiseModule;return new n((i,a)=>{e.multiArgs?r.push((...s)=>{e.errorFirst?s[0]?a(s):(s.shift(),i(s)):i(s)}):e.errorFirst?r.push((s,o)=>{s?a(s):i(o)}):r.push(i),t.apply(this,r)})};V_.exports=(t,e)=>{e=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},e);let r=typeof t;if(!(t!==null&&(r==="object"||r==="function")))throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${t===null?"null":r}\``);let n=a=>{let s=o=>typeof o=="string"?a===o:o.test(a);return e.include?e.include.some(s):!e.exclude.some(s)},i;r==="function"?i=function(...a){return e.excludeMain?t(...a):z_(t,e).apply(this,a)}:i=Object.create(Object.getPrototypeOf(t));for(let a in t){let s=t[a];i[a]=typeof s=="function"&&n(a)?z_(s,e):s}return i}});var tx=M((PY,ex)=>{m();function W_(t){return Array.isArray(t)?t:[t]}var Fm="",Y_=" ",Om="\\",x8=/^\s+$/,S8=/(?:[^\\]|^)\\$/,E8=/^\\!/,A8=/^\\#/,k8=/\r?\n/g,T8=/^\.*\/|^\.+$/,Im="/",Z_="node-ignore";typeof Symbol!="undefined"&&(Z_=Symbol.for("node-ignore"));var X_=Z_,C8=(t,e,r)=>Object.defineProperty(t,e,{value:r}),P8=/([0-z])-([0-z])/g,J_=()=>!1,R8=t=>t.replace(P8,(e,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?e:Fm),M8=t=>{let{length:e}=t;return t.slice(0,e-e%2)},O8=[[/^\uFEFF/,()=>Fm],[/((?:\\\\)*?)(\\?\s+)$/,(t,e,r)=>e+(r.indexOf("\\")===0?Y_:Fm)],[/(\\+?)\s/g,(t,e)=>{let{length:r}=e;return e.slice(0,r-r%2)+Y_}],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6{let n=r.replace(/\\\*/g,"[^\\/]*");return e+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Om],[/\\\\/g,()=>Om],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,r,n,i)=>e===Om?`\\[${r}${M8(n)}${i}`:i==="]"&&n.length%2===0?`[${R8(r)}${n}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],K_=Object.create(null),I8=(t,e)=>{let r=K_[t];return r||(r=O8.reduce((n,[i,a])=>n.replace(i,a.bind(t)),t),K_[t]=r),e?new RegExp(r,"i"):new RegExp(r)},Lm=t=>typeof t=="string",F8=t=>t&&Lm(t)&&!x8.test(t)&&!S8.test(t)&&t.indexOf("#")!==0,$8=t=>t.split(k8),$m=class{constructor(e,r,n,i){this.origin=e,this.pattern=r,this.negative=n,this.regex=i}},D8=(t,e)=>{let r=t,n=!1;t.indexOf("!")===0&&(n=!0,t=t.substr(1)),t=t.replace(E8,"!").replace(A8,"#");let i=I8(t,e);return new $m(r,t,n,i)},L8=(t,e)=>{throw new e(t)},yi=(t,e,r)=>Lm(t)?t?yi.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),Q_=t=>T8.test(t);yi.isNotRelative=Q_;yi.convert=t=>t;var Dm=class{constructor({ignorecase:e=!0,ignoreCase:r=e,allowRelativePaths:n=!1}={}){C8(this,X_,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[X_]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(F8(e)){let r=D8(e,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,W_(Lm(e)?$8(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let n=!1,i=!1;return this._rules.forEach(a=>{let{negative:s}=a;if(i===s&&n!==i||s&&!n&&!i&&!r)return;a.regex.test(e)&&(n=!s,i=s)}),{ignored:n,unignored:i}}_test(e,r,n,i){let a=e&&yi.convert(e);return yi(a,e,this._allowRelativePaths?J_:L8),this._t(a,r,n,i)}_t(e,r,n,i){if(e in r)return r[e];if(i||(i=e.split(Im)),i.pop(),!i.length)return r[e]=this._testOne(e,n);let a=this._t(i.join(Im)+Im,r,n,i);return r[e]=a.ignored?a:this._testOne(e,n)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return W_(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},Ef=t=>new Dm(t),j8=t=>yi(t&&yi.convert(t),t,J_);Ef.isPathValid=j8;Ef.default=Ef;ex.exports=Ef;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");yi.convert=t;let e=/^[a-z]:\//i;yi.isNotRelative=r=>e.test(r)||Q_(r)}});var nx=M((MY,rx)=>{"use strict";m();function N8(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Un(t,e,r){return e=e instanceof RegExp?e:new RegExp(N8(e),"g"),t.replace(e,r)}var B8={clean:function(e){if(typeof e!="string")throw new Error("Expected a string, received: "+e);return e=Un(e,"./","/"),e=Un(e,"..","."),e=Un(e," ","-"),e=Un(e,/^[~^:?*\\\-]/g,""),e=Un(e,/[~^:?*\\]/g,"-"),e=Un(e,/[~^:?*\\\-]$/g,""),e=Un(e,"@{","-"),e=Un(e,/\.$/g,""),e=Un(e,/\/$/g,""),e=Un(e,/\.lock$/g,""),e}};rx.exports=B8});var ax=M((IY,ix)=>{m();ix.exports=function(t,e){var r=t,n=e,i=r.length,a=n.length,s=!1,o=null,l=i+1,c=[],u=[],f=[],d="",h=-1,p=0,g=1,v,y,b=function(){i>=a&&(v=r,y=i,r=n,n=v,i=a,a=y,s=!0,l=i+1)},E=function(w,x,_){return{x:w,y:x,k:_}},S=function(w,x){return{elem:w,t:x}},A=function(w,x,_){var T,C,I;for(x>_?T=c[w-1+l]:T=c[w+1+l],I=Math.max(x,_),C=I-w;C=0;--I)for(;TC-T?(s?f[f.length]=new S(n[C],h):f[f.length]=new S(n[C],g),++_,++C):w[I].y-w[I].x=w+1;--$)_[$+l]=A($,_[$-1+l]+1,_[$+1+l]);_[w+l]=A(w,_[w-1+l]+1,_[w+1+l])}while(_[w+l]!==a);for(o=w+2*T,C=c[w+l],I=[];C!==-1;)I[I.length]=new E(u[C].x,u[C].y,null),C=u[C].k;k(I)}}}});var lx=M(($Y,ox)=>{m();var H8=ax();function U8(t,e){var r=new H8(t,e);r.compose();for(var n=r.getses(),i,a,s=t.length-1,o=e.length-1,l=n.length-1;l>=0;--l)n[l].t===r.SES_COMMON?(a?(a.chain={file1index:s,file2index:o,chain:null},a=a.chain):(i={file1index:s,file2index:o,chain:null},a=i),s--,o--):n[l].t===r.SES_DELETE?s--:n[l].t===r.SES_ADD&&o--;var c={file1index:-1,file2index:-1,chain:null};return a?(a.chain=c,i):c}function sx(t,e){for(var r=[],n=t.length,i=e.length,a=U8(t,e);a!==null;a=a.chain){var s=n-a.file1index-1,o=i-a.file2index-1;n=a.file1index,i=a.file2index,(s||o)&&r.push({file1:[n+1,s],file2:[i+1,o]})}return r.reverse(),r}function G8(t,e,r){var n,i=sx(e,t),a=sx(e,r),s=[];function o(L,$){s.push([L.file1[0],$,L.file1[1],L.file2[0],L.file2[1]])}for(n=0;nc&&(l.push([1,c,L-c]),c=L)}for(var f=0;fg)break;g=Math.max(g,y+v[2]),f++}if(u(p),d==f)h[4]>0&&l.push([h[1],h[3],h[4]]);else{var b={0:[t.length,-1,e.length,-1],2:[r.length,-1,e.length,-1]};for(n=d;n<=f;n++){h=s[n];var E=h[1],S=b[E],A=h[0],k=A+h[2],w=h[3],x=w+h[4];S[0]=Math.min(w,S[0]),S[1]=Math.max(x,S[1]),S[2]=Math.min(A,S[2]),S[3]=Math.max(k,S[3])}var _=b[0][0]+(p-b[0][2]),T=b[0][1]+(g-b[0][3]),C=b[2][0]+(p-b[2][2]),I=b[2][1]+(g-b[2][3]);l.push([-1,_,T-_,p,g-p,C,I-C])}c=g}return u(e.length),l}function z8(t,e,r){var n=[],i=[t,e,r],a=G8(t,e,r),s=[];function o(){s.length&&n.push({ok:s}),s=[]}function l(h){for(var p=0;p{"use strict";m();Object.defineProperty(Y,"__esModule",{value:!0});function aa(t){return t&&typeof t=="object"&&"default"in t?t.default:t}var zl=aa(qy()),Mx=aa(Zb()),F=e2(),V8=aa(r2()),cg=aa(G_()),jm=aa(q_()),q8=aa(tx()),zn=aa(nx()),W8=aa(lx()),Ae=class t extends Error{constructor(e){super(e),this.caller=""}toJSON(){return{code:this.code,data:this.data,caller:this.caller,message:this.message,stack:this.stack}}fromJSON(e){let r=new t(e.message);return r.code=e.code,r.data=e.data,r.caller=e.caller,r.stack=e.stack,r}get isIsomorphicGitError(){return!0}},Vl=class t extends Ae{constructor(e){super(`Modifying the index is not possible because you have unmerged files: ${e.toString}. Fix them up in the work tree, and then use 'git add/rm as appropriate to mark resolution and make a commit.`),this.code=this.name=t.code,this.data={filepaths:e}}};Vl.code="UnmergedPathsError";var pe=class t extends Ae{constructor(e){super(`An internal error caused this command to fail. Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${e}`),this.code=this.name=t.code,this.data={message:e}}};pe.code="InternalError";var no=class t extends Ae{constructor(e){super(`The filepath "${e}" contains unsafe character sequences`),this.code=this.name=t.code,this.data={filepath:e}}};no.code="UnsafeFilepathError";var Kr=class{constructor(e){this.buffer=e,this._start=0}eof(){return this._start>=this.buffer.length}tell(){return this._start}seek(e){this._start=e}slice(e){let r=this.buffer.slice(this._start,this._start+e);return this._start+=e,r}toString(e,r){let n=this.buffer.toString(e,this._start,this._start+r);return this._start+=r,n}write(e,r,n){let i=this.buffer.write(e,this._start,r,n);return this._start+=r,i}copy(e,r,n){let i=e.copy(this.buffer,this._start,r,n);return this._start+=i,i}readUInt8(){let e=this.buffer.readUInt8(this._start);return this._start+=1,e}writeUInt8(e){let r=this.buffer.writeUInt8(e,this._start);return this._start+=1,r}readUInt16BE(){let e=this.buffer.readUInt16BE(this._start);return this._start+=2,e}writeUInt16BE(e){let r=this.buffer.writeUInt16BE(e,this._start);return this._start+=2,r}readUInt32BE(){let e=this.buffer.readUInt32BE(this._start);return this._start+=4,e}writeUInt32BE(e){let r=this.buffer.writeUInt32BE(e,this._start);return this._start+=4,r}};function Lf(t,e){return-(te)}function Ox(t,e){return Lf(t.path,e.path)}function Ix(t){let e=t>0?t>>12:0;e!==4&&e!==8&&e!==10&&e!==14&&(e=8);let r=t&511;return r&73?r=493:r=420,e!==8&&(r=0),(e<<12)+r}var Gn=2**32;function cx(t,e,r,n){if(t!==void 0&&e!==void 0)return[t,e];r===void 0&&(r=n.valueOf());let i=Math.floor(r/1e3),a=(r-i*1e3)*1e6;return[i,a]}function io(t){let[e,r]=cx(t.ctimeSeconds,t.ctimeNanoseconds,t.ctimeMs,t.ctime),[n,i]=cx(t.mtimeSeconds,t.mtimeNanoseconds,t.mtimeMs,t.mtime);return{ctimeSeconds:e%Gn,ctimeNanoseconds:r%Gn,mtimeSeconds:n%Gn,mtimeNanoseconds:i%Gn,dev:t.dev%Gn,ino:t.ino%Gn,mode:Ix(t.mode%Gn),uid:t.uid%Gn,gid:t.gid%Gn,size:t.size>-1?t.size%Gn:0}}function Y8(t){let e="";for(let r of new Uint8Array(t))r<16&&(e+="0"),e+=r.toString(16);return e}var Nm=null;async function bi(t){return Nm===null&&(Nm=await K8()),Nm?Fx(t):X8(t)}function X8(t){return new Mx().update(t).digest("hex")}async function Fx(t){let e=await crypto.subtle.digest("SHA-1",t);return Y8(e)}async function K8(){try{if(await Fx(new Uint8Array([]))==="da39a3ee5e6b4b0d3255bfef95601890afd80709")return!0}catch(t){}return!1}function Z8(t){return{assumeValid:!!(t&32768),extended:!!(t&16384),stage:(t&12288)>>12,nameLength:t&4095}}function J8(t){let e=t.flags;return e.extended=!1,e.nameLength=Math.min(Buffer.from(t.path).length,4095),(e.assumeValid?32768:0)+(e.extended?16384:0)+((e.stage&3)<<12)+(e.nameLength&4095)}var Zm=class t{constructor(e,r){this._dirty=!1,this._unmergedPaths=r||new Set,this._entries=e||new Map}_addEntry(e){if(e.flags.stage===0)e.stages=[e],this._entries.set(e.path,e),this._unmergedPaths.delete(e.path);else{let r=this._entries.get(e.path);r||(this._entries.set(e.path,e),r=e),r.stages[e.flags.stage]=e,this._unmergedPaths.add(e.path)}}static async from(e){if(Buffer.isBuffer(e))return t.fromBuffer(e);if(e===null)return new t(null);throw new pe("invalid type passed to GitIndex.from")}static async fromBuffer(e){if(e.length===0)throw new pe("Index file is empty (.git/index)");let r=new t,n=new Kr(e),i=n.toString("utf8",4);if(i!=="DIRC")throw new pe(`Invalid dircache magic file number: ${i}`);let a=await bi(e.slice(0,-20)),s=e.slice(-20).toString("hex");if(s!==a)throw new pe(`Invalid checksum in GitIndex buffer: expected ${s} but saw ${a}`);let o=n.readUInt32BE();if(o!==2)throw new pe(`Unsupported dircache version: ${o}`);let l=n.readUInt32BE(),c=0;for(;!n.eof()&&ce.stages.length>1?e.stages.filter(r=>r):e)}*[Symbol.iterator](){for(let e of this.entries)yield e}insert({filepath:e,stats:r,oid:n,stage:i=0}){r||(r={ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,mode:0,uid:0,gid:0,size:0}),r=io(r);let a=Buffer.from(e),s={ctimeSeconds:r.ctimeSeconds,ctimeNanoseconds:r.ctimeNanoseconds,mtimeSeconds:r.mtimeSeconds,mtimeNanoseconds:r.mtimeNanoseconds,dev:r.dev,ino:r.ino,mode:r.mode||33188,uid:r.uid,gid:r.gid,size:r.size,path:e,oid:n,flags:{assumeValid:!1,extended:!1,stage:i,nameLength:a.length<4095?a.length:4095},stages:[]};this._addEntry(s),this._dirty=!0}delete({filepath:e}){if(this._entries.has(e))this._entries.delete(e);else for(let r of this._entries.keys())r.startsWith(e+"/")&&this._entries.delete(r);this._unmergedPaths.has(e)&&this._unmergedPaths.delete(e),this._dirty=!0}clear(){this._entries.clear(),this._dirty=!0}has({filepath:e}){return this._entries.has(e)}render(){return this.entries.map(e=>`${e.mode.toString(8)} ${e.oid} ${e.path}`).join(` -`)}static async _entryToBuffer(e){let r=Buffer.from(e.path),n=Math.ceil((62+r.length+1)/8)*8,i=Buffer.alloc(n),a=new Kr(i),s=io(e);return a.writeUInt32BE(s.ctimeSeconds),a.writeUInt32BE(s.ctimeNanoseconds),a.writeUInt32BE(s.mtimeSeconds),a.writeUInt32BE(s.mtimeNanoseconds),a.writeUInt32BE(s.dev),a.writeUInt32BE(s.ino),a.writeUInt32BE(s.mode),a.writeUInt32BE(s.uid),a.writeUInt32BE(s.gid),a.writeUInt32BE(s.size),a.write(e.oid,20,"hex"),a.writeUInt16BE(J8(e)),a.write(e.path,r.length,"utf8"),i}async toObject(){let e=Buffer.alloc(12),r=new Kr(e);r.write("DIRC",4,"utf8"),r.writeUInt32BE(2),r.writeUInt32BE(this.entriesFlat.length);let n=[];for(let o of this.entries)if(n.push(t._entryToBuffer(o)),o.stages.length>1)for(let l of o.stages)l&&l!==o&&n.push(t._entryToBuffer(l));n=await Promise.all(n);let i=Buffer.concat(n),a=Buffer.concat([e,i]),s=await bi(a);return Buffer.concat([a,Buffer.from(s,"hex")])}};function Tf(t,e,r=!0,n=!0){let i=io(t),a=io(e);return r&&i.mode!==a.mode||i.mtimeSeconds!==a.mtimeSeconds||i.ctimeSeconds!==a.ctimeSeconds||i.uid!==a.uid||i.gid!==a.gid||n&&i.ino!==a.ino||i.size!==a.size}var Bm=null,Hm=Symbol("IndexCache");function Q8(){return{map:new Map,stats:new Map}}async function e4(t,e,r){let[n,i]=await Promise.all([t.lstat(e),t.read(e)]),a=await Zm.from(i);r.map.set(e,a),r.stats.set(e,n)}async function t4(t,e,r){let n=r.stats.get(e);if(n===void 0)return!0;if(n===null)return!1;let i=await t.lstat(e);return i===null?!1:Tf(n,i)}var ct=class{static async acquire({fs:e,gitdir:r,cache:n,allowUnmerged:i=!0},a){n[Hm]||(n[Hm]=Q8());let s=`${r}/index`;Bm===null&&(Bm=new zl({maxPending:1/0}));let o,l=[];return await Bm.acquire(s,async()=>{let c=n[Hm];await t4(e,s,c)&&await e4(e,s,c);let u=c.map.get(s);if(l=u.unmergedPaths,l.length&&!i)throw new Vl(l);if(o=await a(u),u._dirty){let f=await u.toObject();await e.write(s,f),c.stats.set(s,await e.lstat(s)),u._dirty=!1}}),o}};function Cf(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e>-1&&(t=t.slice(e+1)),t}function ao(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e===-1?".":e===0?"/":t.slice(0,e)}function $x(t){let e=new Map,r=function(i){if(!e.has(i)){let a={type:"tree",fullpath:i,basename:Cf(i),metadata:{},children:[]};e.set(i,a),a.parent=r(ao(i)),a.parent&&a.parent!==a&&a.parent.children.push(a)}return e.get(i)},n=function(i,a){if(!e.has(i)){let s={type:"blob",fullpath:i,basename:Cf(i),metadata:a,parent:r(ao(i)),children:[]};s.parent&&s.parent.children.push(s),e.set(i,s)}return e.get(i)};r(".");for(let i of t)n(i.path,i);return e}function r4(t){switch(t){case 16384:return"tree";case 33188:return"blob";case 33261:return"blob";case 40960:return"blob";case 57344:return"commit"}throw new pe(`Unexpected GitTree entry mode: ${t.toString(8)}`)}var Jm=class{constructor({fs:e,gitdir:r,cache:n}){this.treePromise=ct.acquire({fs:e,gitdir:r,cache:n},async function(a){return $x(a.entries)});let i=this;this.ConstructEntry=class{constructor(s){this._fullpath=s,this._type=!1,this._mode=!1,this._stat=!1,this._oid=!1}async type(){return i.type(this)}async mode(){return i.mode(this)}async stat(){return i.stat(this)}async content(){return i.content(this)}async oid(){return i.oid(this)}}}async readdir(e){let r=e._fullpath,i=(await this.treePromise).get(r);if(!i||i.type==="blob")return null;if(i.type!=="tree")throw new Error(`ENOTDIR: not a directory, scandir '${r}'`);let a=i.children.map(s=>s.fullpath);return a.sort(Lf),a}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let n=(await this.treePromise).get(e._fullpath);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let i=n.type==="tree"?{}:io(n.metadata);e._type=n.type==="tree"?"tree":r4(i.mode),e._mode=i.mode,n.type==="tree"?e._stat=void 0:e._stat=i}return e._stat}async content(e){}async oid(e){if(e._oid===!1){let n=(await this.treePromise).get(e._fullpath);e._oid=n.metadata.oid}return e._oid}},jf=Symbol("GitWalkSymbol");function Ya(){let t=Object.create(null);return Object.defineProperty(t,jf,{value:function({fs:e,gitdir:r,cache:n}){return new Jm({fs:e,gitdir:r,cache:n})}}),Object.freeze(t),t}var je=class t extends Ae{constructor(e){super(`Could not find ${e}.`),this.code=this.name=t.code,this.data={what:e}}};je.code="NotFoundError";var tr=class t extends Ae{constructor(e,r,n,i){super(`Object ${e} ${i?`at ${i}`:""}was anticipated to be a ${n} but it is a ${r}.`),this.code=this.name=t.code,this.data={oid:e,actual:r,expected:n,filepath:i}}};tr.code="ObjectTypeError";var Qi=class t extends Ae{constructor(e){super(`Expected a 40-char hex object id but saw "${e}".`),this.code=this.name=t.code,this.data={value:e}}};Qi.code="InvalidOidError";var ql=class t extends Ae{constructor(e){super(`Could not find a fetch refspec for remote "${e}". Make sure the config file has an entry like the following: -[remote "${e}"] - fetch = +refs/heads/*:refs/remotes/origin/* -`),this.code=this.name=t.code,this.data={remote:e}}};ql.code="NoRefspecError";var Pf=class t{constructor(e){if(this.refs=new Map,this.parsedConfig=[],e){let r=null;this.parsedConfig=e.trim().split(` -`).map(n=>{if(/^\s*#/.test(n))return{line:n,comment:!0};let i=n.indexOf(" ");if(n.startsWith("^")){let a=n.slice(1);return this.refs.set(r+"^{}",a),{line:n,ref:r,peeled:a}}else{let a=n.slice(0,i);return r=n.slice(i+1),this.refs.set(r,a),{line:n,ref:r,oid:a}}})}return this}static from(e){return new t(e)}delete(e){this.parsedConfig=this.parsedConfig.filter(r=>r.ref!==e),this.refs.delete(e)}toString(){return this.parsedConfig.map(({line:e})=>e).join(` -`)+` -`}},Rf=class t{constructor({remotePath:e,localPath:r,force:n,matchPrefix:i}){Object.assign(this,{remotePath:e,localPath:r,force:n,matchPrefix:i})}static from(e){let[r,n,i,a,s]=e.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1),o=r==="+",l=i==="*";if(l!==(s==="*"))throw new pe("Invalid refspec");return new t({remotePath:n,localPath:a,force:o,matchPrefix:l})}translate(e){if(this.matchPrefix){if(e.startsWith(this.remotePath))return this.localPath+e.replace(this.remotePath,"")}else if(e===this.remotePath)return this.localPath;return null}reverseTranslate(e){if(this.matchPrefix){if(e.startsWith(this.localPath))return this.remotePath+e.replace(this.localPath,"")}else if(e===this.localPath)return this.remotePath;return null}},Qm=class t{constructor(e=[]){this.rules=e}static from(e){let r=[];for(let n of e)r.push(Rf.from(n));return new t(r)}add(e){let r=Rf.from(e);this.rules.push(r)}translate(e){let r=[];for(let n of this.rules)for(let i of e){let a=n.translate(i);a&&r.push([i,a])}return r}translateOne(e){let r=null;for(let n of this.rules){let i=n.translate(e);i&&(r=i)}return r}localNamespaces(){return this.rules.filter(e=>e.matchPrefix).map(e=>e.localPath.replace(/\/$/,""))}};function n4(t,e){let r=t.replace(/\^\{\}$/,""),n=e.replace(/\^\{\}$/,""),i=-(rn);return i===0?t.endsWith("^{}")?1:-1:i}var i4=t=>{if(typeof t=="number")return t;t=t.toLowerCase();let e=parseInt(t);return t.endsWith("k")&&(e*=1024),t.endsWith("m")&&(e*=1024*1024),t.endsWith("g")&&(e*=1024*1024*1024),e},Gl=t=>{if(typeof t=="boolean")return t;if(t=t.trim().toLowerCase(),t==="true"||t==="yes"||t==="on")return!0;if(t==="false"||t==="no"||t==="off")return!1;throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${t}`)},ux={core:{filemode:Gl,bare:Gl,logallrefupdates:Gl,symlinks:Gl,ignorecase:Gl,bigFileThreshold:i4}},a4=/^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/,s4=/^[A-Za-z0-9-.]+$/,o4=/^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/,l4=/^[A-Za-z][A-Za-z-]*$/,c4=/^(.*?)( *[#;].*)$/,u4=t=>{let e=a4.exec(t);if(e!=null){let[r,n]=e.slice(1);return[r,n]}return null},f4=t=>{let e=o4.exec(t);if(e!=null){let[r,n="true"]=e.slice(1),i=d4(n),a=h4(i);return[r,a]}return null},d4=t=>{let e=c4.exec(t);if(e==null)return t;let[r,n]=e.slice(1);return fx(r)&&fx(n)?`${r}${n}`:r},fx=t=>(t.match(/(?:^|[^\\])"/g)||[]).length%2!==0,h4=t=>t.split("").reduce((e,r,n,i)=>{let a=r==='"'&&i[n-1]!=="\\",s=r==="\\"&&i[n+1]==='"';return a||s?e:e+r},""),dx=t=>t!=null?t.toLowerCase():null,eg=(t,e,r)=>[dx(t),e,dx(r)].filter(n=>n!=null).join("."),hx=t=>{let e=t.split("."),r=e.shift(),n=e.pop(),i=e.length?e.join("."):void 0;return{section:r,subsection:i,name:n,path:eg(r,i,n),sectionPath:eg(r,i,null),isSection:!!r}},p4=(t,e)=>t.reduce((r,n,i)=>e(n)?i:r,-1),tg=class t{constructor(e){let r=null,n=null;this.parsedConfig=e?e.split(` -`).map(i=>{let a=null,s=null,o=i.trim(),l=u4(o),c=l!=null;if(c)[r,n]=l;else{let f=f4(o);f!=null&&([a,s]=f)}let u=eg(r,n,a);return{line:i,isSection:c,section:r,subsection:n,name:a,value:s,path:u}}):[]}static from(e){return new t(e)}async get(e,r=!1){let n=hx(e).path,i=this.parsedConfig.filter(a=>a.path===n).map(({section:a,name:s,value:o})=>{let l=ux[a]&&ux[a][s];return l?l(o):o});return r?i:i.pop()}async getall(e){return this.get(e,!0)}async getSubsections(e){return this.parsedConfig.filter(r=>r.isSection&&r.section===e).map(r=>r.subsection)}async deleteSection(e,r){this.parsedConfig=this.parsedConfig.filter(n=>!(n.section===e&&n.subsection===r))}async append(e,r){return this.set(e,r,!0)}async set(e,r,n=!1){let{section:i,subsection:a,name:s,path:o,sectionPath:l,isSection:c}=hx(e),u=p4(this.parsedConfig,f=>f.path===o);if(r==null)u!==-1&&this.parsedConfig.splice(u,1);else if(u!==-1){let f=this.parsedConfig[u],d=Object.assign({},f,{name:s,value:r,modified:!0});n?this.parsedConfig.splice(u+1,0,d):this.parsedConfig[u]=d}else{let f=this.parsedConfig.findIndex(h=>h.path===l),d={section:i,subsection:a,name:s,value:r,modified:!0,path:o};if(s4.test(i)&&l4.test(s))if(f>=0)this.parsedConfig.splice(f+1,0,d);else{let h={isSection:c,section:i,subsection:a,modified:!0,path:l};this.parsedConfig.push(h,d)}}}toString(){return this.parsedConfig.map(({line:e,section:r,subsection:n,name:i,value:a,modified:s=!1})=>s?i!=null&&a!=null?typeof a=="string"&&/[#;]/.test(a)?` ${i} = "${a}"`:` ${i} = ${a}`:n!=null?`[${r} "${n}"]`:`[${r}]`:e).join(` -`)}},nt=class{static async get({fs:e,gitdir:r}){let n=await e.read(`${r}/config`,{encoding:"utf8"});return tg.from(n)}static async save({fs:e,gitdir:r,config:n}){await e.write(`${r}/config`,n.toString(),{encoding:"utf8"})}},Af=t=>[`${t}`,`refs/${t}`,`refs/tags/${t}`,`refs/heads/${t}`,`refs/remotes/${t}`,`refs/remotes/${t}/HEAD`],m4=["config","description","index","shallow","commondir"],Um;async function Zi(t,e){return Um===void 0&&(Um=new zl),Um.acquire(t,e)}var V=class t{static async updateRemoteRefs({fs:e,gitdir:r,remote:n,refs:i,symrefs:a,tags:s,refspecs:o=void 0,prune:l=!1,pruneTags:c=!1}){for(let v of i.values())if(!v.match(/[0-9a-f]{40}/))throw new Qi(v);let u=await nt.get({fs:e,gitdir:r});if(!o){if(o=await u.getall(`remote.${n}.fetch`),o.length===0)throw new ql(n);o.unshift(`+HEAD:refs/remotes/${n}/HEAD`)}let f=Qm.from(o),d=new Map;if(c){let v=await t.listRefs({fs:e,gitdir:r,filepath:"refs/tags"});await t.deleteRefs({fs:e,gitdir:r,refs:v.map(y=>`refs/tags/${y}`)})}if(s){for(let v of i.keys())if(v.startsWith("refs/tags")&&!v.endsWith("^{}")&&!await t.exists({fs:e,gitdir:r,ref:v})){let y=i.get(v);d.set(v,y)}}let h=f.translate([...i.keys()]);for(let[v,y]of h){let b=i.get(v);d.set(y,b)}let p=f.translate([...a.keys()]);for(let[v,y]of p){let b=a.get(v),E=f.translateOne(b);E&&d.set(y,`ref: ${E}`)}let g=[];if(l){for(let v of f.localNamespaces()){let y=(await t.listRefs({fs:e,gitdir:r,filepath:v})).map(b=>`${v}/${b}`);for(let b of y)d.has(b)||g.push(b)}g.length>0&&await t.deleteRefs({fs:e,gitdir:r,refs:g})}for(let[v,y]of d)await Zi(v,async()=>e.write(F.join(r,v),`${y.trim()} -`,"utf8"));return{pruned:g}}static async writeRef({fs:e,gitdir:r,ref:n,value:i}){if(!i.match(/[0-9a-f]{40}/))throw new Qi(i);await Zi(n,async()=>e.write(F.join(r,n),`${i.trim()} -`,"utf8"))}static async writeSymbolicRef({fs:e,gitdir:r,ref:n,value:i}){await Zi(n,async()=>e.write(F.join(r,n),`ref: ${i.trim()} -`,"utf8"))}static async deleteRef({fs:e,gitdir:r,ref:n}){return t.deleteRefs({fs:e,gitdir:r,refs:[n]})}static async deleteRefs({fs:e,gitdir:r,refs:n}){await Promise.all(n.map(o=>e.rm(F.join(r,o))));let i=await Zi("packed-refs",async()=>e.read(`${r}/packed-refs`,{encoding:"utf8"})),a=Pf.from(i),s=a.refs.size;for(let o of n)a.refs.has(o)&&a.delete(o);a.refs.sizee.write(`${r}/packed-refs`,i,{encoding:"utf8"})))}static async resolve({fs:e,gitdir:r,ref:n,depth:i=void 0}){if(i!==void 0&&(i--,i===-1))return n;if(n.startsWith("ref: "))return n=n.slice(5),t.resolve({fs:e,gitdir:r,ref:n,depth:i});if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let a=await t.packedRefs({fs:e,gitdir:r}),s=Af(n).filter(o=>!m4.includes(o));for(let o of s){let l=await Zi(o,async()=>await e.read(`${r}/${o}`,{encoding:"utf8"})||a.get(o));if(l)return t.resolve({fs:e,gitdir:r,ref:l.trim(),depth:i})}throw new je(n)}static async exists({fs:e,gitdir:r,ref:n}){try{return await t.expand({fs:e,gitdir:r,ref:n}),!0}catch(i){return!1}}static async expand({fs:e,gitdir:r,ref:n}){if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let i=await t.packedRefs({fs:e,gitdir:r}),a=Af(n);for(let s of a)if(await Zi(s,async()=>e.exists(`${r}/${s}`))||i.has(s))return s;throw new je(n)}static async expandAgainstMap({ref:e,map:r}){let n=Af(e);for(let i of n)if(await r.has(i))return i;throw new je(e)}static resolveAgainstMap({ref:e,fullref:r=e,depth:n=void 0,map:i}){if(n!==void 0&&(n--,n===-1))return{fullref:r,oid:e};if(e.startsWith("ref: "))return e=e.slice(5),t.resolveAgainstMap({ref:e,fullref:r,depth:n,map:i});if(e.length===40&&/[0-9a-f]{40}/.test(e))return{fullref:r,oid:e};let a=Af(e);for(let s of a){let o=i.get(s);if(o)return t.resolveAgainstMap({ref:o.trim(),fullref:s,depth:n,map:i})}throw new je(e)}static async packedRefs({fs:e,gitdir:r}){let n=await Zi("packed-refs",async()=>e.read(`${r}/packed-refs`,{encoding:"utf8"}));return Pf.from(n).refs}static async listRefs({fs:e,gitdir:r,filepath:n}){let i=t.packedRefs({fs:e,gitdir:r}),a=null;try{a=await e.readdirDeep(`${r}/${n}`),a=a.map(s=>s.replace(`${r}/${n}/`,""))}catch(s){a=[]}for(let s of(await i).keys())s.startsWith(n)&&(s=s.replace(n+"/",""),a.includes(s)||a.push(s));return a.sort(n4),a}static async listBranches({fs:e,gitdir:r,remote:n}){return n?t.listRefs({fs:e,gitdir:r,filepath:`refs/remotes/${n}`}):t.listRefs({fs:e,gitdir:r,filepath:"refs/heads"})}static async listTags({fs:e,gitdir:r}){return(await t.listRefs({fs:e,gitdir:r,filepath:"refs/tags"})).filter(i=>!i.endsWith("^{}"))}};function g4(t,e){return Lf(px(t),px(e))}function px(t){return t.mode==="040000"?t.path+"/":t.path}function Dx(t){switch(t){case"040000":return"tree";case"100644":return"blob";case"100755":return"blob";case"120000":return"blob";case"160000":return"commit"}throw new pe(`Unexpected GitTree entry mode: ${t}`)}function v4(t){let e=[],r=0;for(;r`${e.mode} ${e.type} ${e.oid} ${e.path}`).join(` -`)}toObject(){let e=[...this._entries];return e.sort(g4),Buffer.concat(e.map(r=>{let n=Buffer.from(r.mode.replace(/^0/,"")),i=Buffer.from(" "),a=Buffer.from(r.path,"utf8"),s=Buffer.from([0]),o=Buffer.from(r.oid,"hex");return Buffer.concat([n,i,a,s,o])}))}entries(){return this._entries}*[Symbol.iterator](){for(let e of this._entries)yield e}},ea=class{static wrap({type:e,object:r}){return Buffer.concat([Buffer.from(`${e} ${r.byteLength.toString()}\0`),Buffer.from(r)])}static unwrap(e){let r=e.indexOf(32),n=e.indexOf(0),i=e.slice(0,r).toString("utf8"),a=e.slice(r+1,n).toString("utf8"),s=e.length-(n+1);if(parseInt(a)!==s)throw new pe(`Length mismatch: expected ${a} bytes but got ${s} instead.`);return{type:i,object:Buffer.from(e.slice(n+1))}}};async function Lx({fs:t,gitdir:e,oid:r}){let n=`objects/${r.slice(0,2)}/${r.slice(2)}`,i=await t.read(`${e}/${n}`);return i?{object:i,format:"deflated",source:n}:null}function b4(t,e){let r=new Kr(t),n=mx(r);if(n!==e.byteLength)throw new pe(`applyDelta expected source buffer to be ${n} bytes but the provided buffer was ${e.length} bytes`);let i=mx(r),a,s=vx(r,e);if(s.byteLength===i)a=s;else{a=Buffer.alloc(i);let o=new Kr(a);for(o.copy(s);!r.eof();)o.copy(vx(r,e));let l=o.tell();if(i!==l)throw new pe(`applyDelta expected target buffer to be ${i} bytes but the resulting buffer was ${l} bytes`)}return a}function mx(t){let e=0,r=0,n=null;do n=t.readUInt8(),e|=(n&127)<>=1,i+=8;return n}function vx(t,e){let r=t.readUInt8(),n=128,i=15,a=112;if(r&n){let s=gx(t,r&i,4),o=gx(t,(r&a)>>4,3);return o===0&&(o=65536),e.slice(s,s+o)}else return t.slice(r)}function _4(t){let e=[t];return{next(){return Promise.resolve({done:e.length===0,value:e.pop()})},return(){return e=[],{}},[Symbol.asyncIterator](){return this}}}function jx(t){return t[Symbol.asyncIterator]?t[Symbol.asyncIterator]():t[Symbol.iterator]?t[Symbol.iterator]():t.next?t:_4(t)}var Mf=class{constructor(e){if(typeof Buffer=="undefined")throw new Error("Missing Buffer dependency");this.stream=jx(e),this.buffer=null,this.cursor=0,this.undoCursor=0,this.started=!1,this._ended=!1,this._discardedBytes=0}eof(){return this._ended&&this.cursor===this.buffer.length}tell(){return this._discardedBytes+this.cursor}async byte(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(1),this.buffer[this.undoCursor]}async chunk(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(this.buffer.length),this.buffer.slice(this.undoCursor,this.cursor)}async read(e){if(!this.eof())return this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e),this.buffer.slice(this.undoCursor,this.cursor)}async skip(e){this.eof()||(this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e))}async undo(){this.cursor=this.undoCursor}async _next(){this.started=!0;let{done:e,value:r}=await this.stream.next();return e&&(this._ended=!0,!r)?Buffer.alloc(0):(r&&(r=Buffer.from(r)),r)}_trim(){this.buffer=this.buffer.slice(this.undoCursor),this.cursor-=this.undoCursor,this._discardedBytes+=this.undoCursor,this.undoCursor=0}_moveCursor(e){this.undoCursor=this.cursor,this.cursor+=e,this.cursor>this.buffer.length&&(this.cursor=this.buffer.length)}async _accumulate(e){if(this._ended)return;let r=[this.buffer];for(;this.cursor+e>x4(r);){let n=await this._next();if(this._ended)break;r.push(n)}this.buffer=Buffer.concat(r)}async _loadnext(){this._discardedBytes+=this.buffer.length,this.undoCursor=0,this.cursor=0,this.buffer=await this._next()}async _init(){this.buffer=await this._next()}};function x4(t){return t.reduce((e,r)=>e+r.length,0)}async function S4(t,e){let r=new Mf(t),n=await r.read(4);if(n=n.toString("utf8"),n!=="PACK")throw new pe(`Invalid PACK header '${n}'`);let i=await r.read(4);if(i=i.readUInt32BE(0),i!==2)throw new pe(`Invalid packfile version: ${i}`);let a=await r.read(4);if(a=a.readUInt32BE(0),!(a<1))for(;!r.eof()&&a--;){let s=r.tell(),{type:o,length:l,ofs:c,reference:u}=await E4(r),f=new cg.Inflate;for(;!f.result;){let d=await r.chunk();if(!d)break;if(f.push(d,!1),f.err)throw new pe(`Pako error: ${f.msg}`);if(f.result){if(f.result.length!==l)throw new pe("Inflated object size is different from that stated in packfile.");await r.undo(),await r.read(d.length-f.strm.avail_in);let h=r.tell();await e({data:f.result,type:o,num:a,offset:s,end:h,reference:u,ofs:c})}}}}async function E4(t){let e=await t.byte(),r=e>>4&7,n=e&15;if(e&128){let s=4;do e=await t.byte(),n|=(e&127)<i+1<<7|a,-1)}function C4(t,e){let r=e,n=4,i=null;do i=t.readUInt8(),r|=(i&127)<2048*1024*1024)throw new pe("To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.");n.seek(n.tell()+4*255);let s=n.readUInt32BE(),o=[];for(let u=0;u{u===null&&(u=S);let A=Math.floor((u-S)*100/u);A!==f&&n&&await n({phase:"Receiving objects",loaded:u-S,total:u}),f=A,y=i[y],["commit","tree","blob","tag"].includes(y)?a[E]={type:y,offset:E}:y==="ofs-delta"?a[E]={type:y,offset:E}:y==="ref-delta"&&(a[E]={type:y,offset:E})});let d=Object.keys(a).map(Number);for(let[v,y]of d.entries()){let b=v+1===d.length?e.byteLength-20:d[v+1],E=a[y],S=V8.buf(e.slice(y,b))>>>0;E.end=b,E.crc=S}let h=new t({pack:Promise.resolve(e),packfileSha:s,crcs:l,hashes:o,offsets:c,getExternalRefDelta:r});f=null;let p=0,g=[0,0,0,0,0,0,0,0,0,0,0,0];for(let v in a){v=Number(v);let y=Math.floor(p*100/u);y!==f&&n&&await n({phase:"Resolving deltas",loaded:p,total:u}),p++,f=y;let b=a[v];if(!b.oid)try{h.readDepth=0,h.externalReadDepth=0;let{type:E,object:S}=await h.readSlice({start:v});g[h.readDepth]+=1;let A=await bi(ea.wrap({type:E,object:S}));b.oid=A,o.push(A),c.set(A,v),l[A]=b.crc}catch(E){continue}}return o.sort(),h}async toBuffer(){let e=[],r=(c,u)=>{e.push(Buffer.from(c,u))};r("ff744f63","hex"),r("00000002","hex");let n=new Kr(Buffer.alloc(256*4));for(let c=0;c<256;c++){let u=0;for(let f of this.hashes)parseInt(f.slice(0,2),16)<=c&&u++;n.writeUInt32BE(u)}e.push(n.buffer);for(let c of this.hashes)r(c,"hex");let i=new Kr(Buffer.alloc(this.hashes.length*4));for(let c of this.hashes)i.writeUInt32BE(this.crcs[c]);e.push(i.buffer);let a=new Kr(Buffer.alloc(this.hashes.length*4));for(let c of this.hashes)a.writeUInt32BE(this.offsets.get(c));e.push(a.buffer),r(this.packfileSha,"hex");let s=Buffer.concat(e),o=await bi(s),l=Buffer.alloc(20);return l.write(o,"hex"),Buffer.concat([s,l])}async load({pack:e}){this.pack=e}async unload(){this.pack=null}async read({oid:e}){if(!this.offsets.get(e)){if(this.getExternalRefDelta)return this.externalReadDepth++,this.getExternalRefDelta(e);throw new pe(`Could not read object ${e} from packfile`)}let r=this.offsets.get(e);return this.readSlice({start:r})}async readSlice({start:e}){if(this.offsetCache[e])return Object.assign({},this.offsetCache[e]);this.readDepth++;let r={16:"commit",32:"tree",48:"blob",64:"tag",96:"ofs_delta",112:"ref_delta"};if(!this.pack)throw new pe("Tried to read from a GitPackIndex with no packfile loaded into memory");let n=(await this.pack).slice(e),i=new Kr(n),a=i.readUInt8(),s=a&112,o=r[s];if(o===void 0)throw new pe("Unrecognized type: 0b"+s.toString(2));let l=a&15,c=l;a&128&&(c=C4(i,l));let f=null,d=null;if(o==="ofs_delta"){let p=T4(i),g=e-p;({object:f,type:o}=await this.readSlice({start:g}))}if(o==="ref_delta"){let p=i.slice(20).toString("hex");({object:f,type:o}=await this.read({oid:p}))}let h=n.slice(i.tell());if(d=Buffer.from(await Nx(h)),d.byteLength!==c)throw new pe(`Packfile told us object would have length ${c} but it had length ${d.byteLength}`);return f&&(d=Buffer.from(b4(d,f))),this.readDepth>3&&(this.offsetCache[e]={type:o,object:d}),{type:o,format:"content",object:d}}},kf=Symbol("PackfileCache");async function P4({fs:t,filename:e,getExternalRefDelta:r,emitter:n,emitterPrefix:i}){let a=await t.read(e);return Wl.fromIdx({idx:a,getExternalRefDelta:r})}function ug({fs:t,cache:e,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:a}){e[kf]||(e[kf]=new Map);let s=e[kf].get(r);return s||(s=P4({fs:t,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:a}),e[kf].set(r,s)),s}async function R4({fs:t,cache:e,gitdir:r,oid:n,format:i="content",getExternalRefDelta:a}){let s=await t.readdir(F.join(r,"objects/pack"));s=s.filter(o=>o.endsWith(".idx"));for(let o of s){let l=`${r}/objects/pack/${o}`,c=await ug({fs:t,cache:e,filename:l,getExternalRefDelta:a});if(c.error)throw new pe(c.error);if(c.offsets.has(n)){if(!c.pack){let f=l.replace(/idx$/,"pack");c.pack=t.read(f)}let u=await c.read({oid:n,getExternalRefDelta:a});return u.format="content",u.source=`objects/pack/${o.replace(/idx$/,"pack")}`,u}}return null}async function Ge({fs:t,cache:e,gitdir:r,oid:n,format:i="content"}){let a=u=>Ge({fs:t,cache:e,gitdir:r,oid:u}),s;if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904"&&(s={format:"wrapped",object:Buffer.from("tree 0\0")}),s||(s=await Lx({fs:t,gitdir:r,oid:n})),!s){if(s=await R4({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:a}),!s)throw new je(n);return s}if(i==="deflated"||(s.format==="deflated"&&(s.object=Buffer.from(await Nx(s.object)),s.format="wrapped"),i==="wrapped"))return s;let o=await bi(s.object);if(o!==n)throw new pe(`SHA check failed! Expected ${n}, computed ${o}`);let{object:l,type:c}=ea.unwrap(s.object);if(s.type=c,s.object=l,s.format="content",i==="content")return s;throw new pe(`invalid requested format "${i}"`)}var pn=class t extends Ae{constructor(e,r,n=!0){super(`Failed to create ${e} at ${r} because it already exists.${n?` (Hint: use 'force: true' parameter to overwrite existing ${e}.)`:""}`),this.code=this.name=t.code,this.data={noun:e,where:r,canForce:n}}};pn.code="AlreadyExistsError";var Yl=class t extends Ae{constructor(e,r,n){super(`Found multiple ${e} matching "${r}" (${n.join(", ")}). Use a longer abbreviation length to disambiguate them.`),this.code=this.name=t.code,this.data={nouns:e,short:r,matches:n}}};Yl.code="AmbiguousError";var Xl=class t extends Ae{constructor(e){super(`Your local changes to the following files would be overwritten by checkout: ${e.join(", ")}`),this.code=this.name=t.code,this.data={filepaths:e}}};Xl.code="CheckoutConflictError";var Kl=class t extends Ae{constructor(e,r){super(`Failed to checkout "${e}" because commit ${r} is not available locally. Do a git fetch to make the branch available locally.`),this.code=this.name=t.code,this.data={ref:e,oid:r}}};Kl.code="CommitNotFetchedError";var Zl=class t extends Ae{constructor(){super("Empty response from git server."),this.code=this.name=t.code,this.data={}}};Zl.code="EmptyServerResponseError";var Jl=class t extends Ae{constructor(){super("A simple fast-forward merge was not possible."),this.code=this.name=t.code,this.data={}}};Jl.code="FastForwardError";var Ql=class t extends Ae{constructor(e,r){super(`One or more branches were not updated: ${e}`),this.code=this.name=t.code,this.data={prettyDetails:e,result:r}}};Ql.code="GitPushError";var so=class t extends Ae{constructor(e,r,n){super(`HTTP Error: ${e} ${r}`),this.code=this.name=t.code,this.data={statusCode:e,statusMessage:r,response:n}}};so.code="HttpError";var ta=class t extends Ae{constructor(e){let r="invalid filepath";e==="leading-slash"||e==="trailing-slash"?r='"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.':e==="directory"&&(r='"filepath" should not be a directory.'),super(r),this.code=this.name=t.code,this.data={reason:e}}};ta.code="InvalidFilepathError";var mn=class t extends Ae{constructor(e,r){super(`"${e}" would be an invalid git reference. (Hint: a valid alternative would be "${r}".)`),this.code=this.name=t.code,this.data={ref:e,suggestion:r}}};mn.code="InvalidRefNameError";var ec=class t extends Ae{constructor(e){super(`Maximum search depth of ${e} exceeded.`),this.code=this.name=t.code,this.data={depth:e}}};ec.code="MaxDepthError";var oo=class t extends Ae{constructor(){super("Merges with conflicts are not supported yet."),this.code=this.name=t.code,this.data={}}};oo.code="MergeNotSupportedError";var lo=class t extends Ae{constructor(e,r,n,i){super(`Automatic merge failed with one or more merge conflicts in the following files: ${e.toString()}. Fix conflicts then commit the result.`),this.code=this.name=t.code,this.data={filepaths:e,bothModified:r,deleteByUs:n,deleteByTheirs:i}}};lo.code="MergeConflictError";var zt=class t extends Ae{constructor(e){super(`No name was provided for ${e} in the argument or in the .git/config file.`),this.code=this.name=t.code,this.data={role:e}}};zt.code="MissingNameError";var dr=class t extends Ae{constructor(e){super(`The function requires a "${e}" parameter but none was provided.`),this.code=this.name=t.code,this.data={parameter:e}}};dr.code="MissingParameterError";var tc=class t extends Ae{constructor(e){super('There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more'),this.code=this.name=t.code,this.data={errors:e},this.errors=e}};tc.code="MultipleGitError";var Va=class t extends Ae{constructor(e,r){super(`Expected "${e}" but received "${r}".`),this.code=this.name=t.code,this.data={expected:e,actual:r}}};Va.code="ParseError";var co=class t extends Ae{constructor(e){let r="";e==="not-fast-forward"?r=" because it was not a simple fast-forward":e==="tag-exists"&&(r=" because tag already exists"),super(`Push rejected${r}. Use "force: true" to override.`),this.code=this.name=t.code,this.data={reason:e}}};co.code="PushRejectedError";var Ji=class t extends Ae{constructor(e,r){super(`Remote does not support the "${e}" so the "${r}" parameter cannot be used.`),this.code=this.name=t.code,this.data={capability:e,parameter:r}}};Ji.code="RemoteCapabilityError";var rc=class t extends Ae{constructor(e,r){super(`Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${e}`),this.code=this.name=t.code,this.data={preview:e,response:r}}};rc.code="SmartHttpError";var nc=class t extends Ae{constructor(e,r,n){super(`Git remote "${e}" uses an unrecognized transport protocol: "${r}"`),this.code=this.name=t.code,this.data={url:e,transport:r,suggestion:n}}};nc.code="UnknownTransportError";var ic=class t extends Ae{constructor(e){super(`Cannot parse remote URL: "${e}"`),this.code=this.name=t.code,this.data={url:e}}};ic.code="UrlParseError";var uo=class t extends Ae{constructor(){super("The operation was canceled."),this.code=this.name=t.code,this.data={}}};uo.code="UserCanceledError";var ac=class t extends Ae{constructor(e){super(`Could not merge index: Entry for '${e}' is not up to date. Either reset the index entry to HEAD, or stage your unstaged changes.`),this.code=this.name=t.code,this.data={filepath:e}}};ac.code="IndexResetError";var sc=class t extends Ae{constructor(e){super(`"${e}" does not point to any commit. You're maybe working on a repository with no commits yet. `),this.code=this.name=t.code,this.data={ref:e}}};sc.code="NoCommitError";var Bx=Object.freeze({__proto__:null,AlreadyExistsError:pn,AmbiguousError:Yl,CheckoutConflictError:Xl,CommitNotFetchedError:Kl,EmptyServerResponseError:Zl,FastForwardError:Jl,GitPushError:Ql,HttpError:so,InternalError:pe,InvalidFilepathError:ta,InvalidOidError:Qi,InvalidRefNameError:mn,MaxDepthError:ec,MergeNotSupportedError:oo,MergeConflictError:lo,MissingNameError:zt,MissingParameterError:dr,MultipleGitError:tc,NoRefspecError:ql,NotFoundError:je,ObjectTypeError:tr,ParseError:Va,PushRejectedError:co,RemoteCapabilityError:Ji,SmartHttpError:rc,UnknownTransportError:nc,UnsafeFilepathError:no,UrlParseError:ic,UserCanceledError:uo,UnmergedPathsError:Vl,IndexResetError:ac,NoCommitError:sc});function rg({name:t,email:e,timestamp:r,timezoneOffset:n}){return n=M4(n),`${t} <${e}> ${r} ${n}`}function M4(t){let e=O4(I4(t));t=Math.abs(t);let r=Math.floor(t/60);t-=r*60;let n=String(r),i=String(t);return n.length<2&&(n="0"+n),i.length<2&&(i="0"+i),(e===-1?"-":"+")+n+i}function O4(t){return Math.sign(t)||(Object.is(t,-0)?-1:1)}function I4(t){return t===0?t:-t}function wi(t){return t=t.replace(/\r/g,""),t=t.replace(/^\n+/,""),t=t.replace(/\n+$/,"")+` -`,t}function Of(t){let[,e,r,n,i]=t.match(/^(.*) <(.*)> (.*) (.*)$/);return{name:e,email:r,timestamp:Number(n),timezoneOffset:F4(i)}}function F4(t){let[,e,r,n]=t.match(/(\+|-)(\d\d)(\d\d)/);return n=(e==="+"?1:-1)*(Number(r)*60+Number(n)),$4(n)}function $4(t){return t===0?t:-t}var Mr=class t{constructor(e){if(typeof e=="string")this._tag=e;else if(Buffer.isBuffer(e))this._tag=e.toString("utf8");else if(typeof e=="object")this._tag=t.render(e);else throw new pe("invalid type passed to GitAnnotatedTag constructor")}static from(e){return new t(e)}static render(e){return`object ${e.object} -type ${e.type} -tag ${e.tag} -tagger ${rg(e.tagger)} - -${e.message} -${e.gpgsig?e.gpgsig:""}`}justHeaders(){return this._tag.slice(0,this._tag.indexOf(` - -`))}message(){let e=this.withoutSignature();return e.slice(e.indexOf(` - -`)+2)}parse(){return Object.assign(this.headers(),{message:this.message(),gpgsig:this.gpgsig()})}render(){return this._tag}headers(){let e=this.justHeaders().split(` -`),r=[];for(let i of e)i[0]===" "?r[r.length-1]+=` -`+i.slice(1):r.push(i);let n={};for(let i of r){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(n[a])?n[a].push(s):n[a]=s}return n.tagger&&(n.tagger=Of(n.tagger)),n.committer&&(n.committer=Of(n.committer)),n}withoutSignature(){let e=wi(this._tag);return e.indexOf(` ------BEGIN PGP SIGNATURE-----`)===-1?e:e.slice(0,e.lastIndexOf(` ------BEGIN PGP SIGNATURE-----`))}gpgsig(){if(this._tag.indexOf(` ------BEGIN PGP SIGNATURE-----`)===-1)return;let e=this._tag.slice(this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"),this._tag.indexOf("-----END PGP SIGNATURE-----")+27);return wi(e)}payload(){return this.withoutSignature()+` -`}toObject(){return Buffer.from(this._tag,"utf8")}static async sign(e,r,n){let i=e.payload(),{signature:a}=await r({payload:i,secretKey:n});a=wi(a);let s=i+a;return t.from(s)}};function zm(t){return t.trim().split(` -`).map(e=>" "+e).join(` -`)+` -`}function D4(t){return t.split(` -`).map(e=>e.replace(/^ /,"")).join(` -`)}var pr=class t{constructor(e){if(typeof e=="string")this._commit=e;else if(Buffer.isBuffer(e))this._commit=e.toString("utf8");else if(typeof e=="object")this._commit=t.render(e);else throw new pe("invalid type passed to GitCommit constructor")}static fromPayloadSignature({payload:e,signature:r}){let n=t.justHeaders(e),i=t.justMessage(e),a=wi(n+` -gpgsig`+zm(r)+` -`+i);return new t(a)}static from(e){return new t(e)}toObject(){return Buffer.from(this._commit,"utf8")}headers(){return this.parseHeaders()}message(){return t.justMessage(this._commit)}parse(){return Object.assign({message:this.message()},this.headers())}static justMessage(e){return wi(e.slice(e.indexOf(` - -`)+2))}static justHeaders(e){return e.slice(0,e.indexOf(` - -`))}parseHeaders(){let e=t.justHeaders(this._commit).split(` -`),r=[];for(let i of e)i[0]===" "?r[r.length-1]+=` -`+i.slice(1):r.push(i);let n={parent:[]};for(let i of r){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(n[a])?n[a].push(s):n[a]=s}return n.author&&(n.author=Of(n.author)),n.committer&&(n.committer=Of(n.committer)),n}static renderHeaders(e){let r="";if(e.tree?r+=`tree ${e.tree} -`:r+=`tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 -`,e.parent){if(e.parent.length===void 0)throw new pe("commit 'parent' property should be an array");for(let a of e.parent)r+=`parent ${a} -`}let n=e.author;r+=`author ${rg(n)} -`;let i=e.committer||e.author;return r+=`committer ${rg(i)} -`,e.gpgsig&&(r+="gpgsig"+zm(e.gpgsig)),r}static render(e){return t.renderHeaders(e)+` -`+wi(e.message)}render(){return this._commit}withoutSignature(){let e=wi(this._commit);if(e.indexOf(` -gpgsig`)===-1)return e;let r=e.slice(0,e.indexOf(` -gpgsig`)),n=e.slice(e.indexOf(`-----END PGP SIGNATURE----- -`)+28);return wi(r+` -`+n)}isolateSignature(){let e=this._commit.slice(this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"),this._commit.indexOf("-----END PGP SIGNATURE-----")+27);return D4(e)}static async sign(e,r,n){let i=e.withoutSignature(),a=t.justMessage(e._commit),{signature:s}=await r({payload:i,secretKey:n});s=wi(s);let l=t.justHeaders(e._commit)+` -gpgsig`+zm(s)+` -`+a;return t.from(l)}};async function fo({fs:t,cache:e,gitdir:r,oid:n}){if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904")return{tree:hr.from([]),oid:n};let{type:i,object:a}=await Ge({fs:t,cache:e,gitdir:r,oid:n});if(i==="tag")return n=Mr.from(a).parse().object,fo({fs:t,cache:e,gitdir:r,oid:n});if(i==="commit")return n=pr.from(a).parse().tree,fo({fs:t,cache:e,gitdir:r,oid:n});if(i!=="tree")throw new tr(n,i,"tree");return{tree:hr.from(a),oid:n}}var ng=class{constructor({fs:e,gitdir:r,ref:n,cache:i}){this.fs=e,this.cache=i,this.gitdir=r,this.mapPromise=(async()=>{let s=new Map,o;try{o=await V.resolve({fs:e,gitdir:r,ref:n})}catch(c){c instanceof je&&(o="4b825dc642cb6eb9a060e54bf8d69288fbee4904")}let l=await fo({fs:e,cache:this.cache,gitdir:r,oid:o});return l.type="tree",l.mode="40000",s.set(".",l),s})();let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(e){let r=e._fullpath,{fs:n,cache:i,gitdir:a}=this,s=await this.mapPromise,o=s.get(r);if(!o)throw new Error(`No obj for ${r}`);let l=o.oid;if(!l)throw new Error(`No oid for obj ${JSON.stringify(o)}`);if(o.type!=="tree")return null;let{type:c,object:u}=await Ge({fs:n,cache:i,gitdir:a,oid:l});if(c!==o.type)throw new tr(l,c,o.type);let f=hr.from(u);for(let d of f)s.set(F.join(r,d.path),d);return f.entries().map(d=>F.join(r,d.path))}async type(e){if(e._type===!1){let r=await this.mapPromise,{type:n}=r.get(e._fullpath);e._type=n}return e._type}async mode(e){if(e._mode===!1){let r=await this.mapPromise,{mode:n}=r.get(e._fullpath);e._mode=Ix(parseInt(n,8))}return e._mode}async stat(e){}async content(e){if(e._content===!1){let r=await this.mapPromise,{fs:n,cache:i,gitdir:a}=this,o=r.get(e._fullpath).oid,{type:l,object:c}=await Ge({fs:n,cache:i,gitdir:a,oid:o});l!=="blob"?e._content=void 0:e._content=new Uint8Array(c)}return e._content}async oid(e){if(e._oid===!1){let n=(await this.mapPromise).get(e._fullpath);e._oid=n.oid}return e._oid}};function Rr({ref:t="HEAD"}={}){let e=Object.create(null);return Object.defineProperty(e,jf,{value:function({fs:r,gitdir:n,cache:i}){return new ng({fs:r,gitdir:n,ref:t,cache:i})}}),Object.freeze(e),e}var ig=class{constructor({fs:e,dir:r,gitdir:n,cache:i}){this.fs=e,this.cache=i,this.dir=r,this.gitdir=n,this.config=null;let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(e){let r=e._fullpath,{fs:n,dir:i}=this,a=await n.readdir(F.join(i,r));return a===null?null:a.map(s=>F.join(r,s))}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let{fs:r,dir:n}=this,i=await r.lstat(`${n}/${e._fullpath}`);if(!i)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let a=i.isDirectory()?"tree":"blob";a==="blob"&&!i.isFile()&&!i.isSymbolicLink()&&(a="special"),e._type=a,i=io(i),e._mode=i.mode,i.size===-1&&e._actualSize&&(i.size=e._actualSize),e._stat=i}return e._stat}async content(e){if(e._content===!1){let{fs:r,dir:n,gitdir:i}=this;if(await e.type()==="tree")e._content=void 0;else{let s=await(await this._getGitConfig(r,i)).get("core.autocrlf"),o=await r.read(`${n}/${e._fullpath}`,{autocrlf:s});e._actualSize=o.length,e._stat&&e._stat.size===-1&&(e._stat.size=e._actualSize),e._content=new Uint8Array(o)}}return e._content}async oid(e){if(e._oid===!1){let r=this,{fs:n,gitdir:i,cache:a}=this,s;await ct.acquire({fs:n,gitdir:i,cache:a},async function(o){let l=o.entriesMap.get(e._fullpath),c=await e.stat(),f=await(await r._getGitConfig(n,i)).get("core.filemode"),d=typeof process!="undefined"?process.platform!=="win32":!0;if(!l||Tf(c,l,f,d)){let h=await e.content();h===void 0?s=void 0:(s=await bi(ea.wrap({type:"blob",object:h})),l&&s===l.oid&&(!f||c.mode===l.mode)&&Tf(c,l,f,d)&&o.insert({filepath:e._fullpath,stats:c,oid:s}))}else s=l.oid}),e._oid=s}return e._oid}async _getGitConfig(e,r){return this.config?this.config:(this.config=await nt.get({fs:e,gitdir:r}),this.config)}};function yo(){let t=Object.create(null);return Object.defineProperty(t,jf,{value:function({fs:e,dir:r,gitdir:n,cache:i}){return new ig({fs:e,dir:r,gitdir:n,cache:i})}}),Object.freeze(t),t}function L4(t,e){let r=e-t;return Array.from({length:r},(n,i)=>t+i)}var Hx=typeof Array.prototype.flat=="undefined"?t=>t.reduce((e,r)=>e.concat(r),[]):t=>t.flat(),ag=class{constructor(){this.value=null}consider(e){e!=null&&(this.value===null?this.value=e:ec,reduce:s=async(l,c)=>{let u=Hx(c);return l!==void 0&&u.unshift(l),u},iterate:o=(l,c)=>Promise.all([...c].map(l))}){let l=i.map(h=>h[jf]({fs:t,dir:r,gitdir:n,cache:e})),c=new Array(l.length).fill("."),u=L4(0,l.length),f=async h=>{u.map(v=>{let y=h[v];h[v]=y&&new l[v].ConstructEntry(y)});let g=(await Promise.all(u.map(v=>{let y=h[v];return y?l[v].readdir(y):[]}))).map(v=>(v===null?[]:v)[Symbol.iterator]());return{entries:h,children:j4(g)}},d=async h=>{let{entries:p,children:g}=await f(h),v=p.find(b=>b&&b._fullpath)._fullpath,y=await a(v,p);if(y!==null){let b=await o(d,g);return b=b.filter(E=>E!==void 0),s(y,b)}};return d(c)}async function sg(t,e){let r=await t.readdir(e);r==null?await t.rm(e):r.length?await Promise.all(r.map(n=>{let i=F.join(e,n);return t.lstat(i).then(a=>{if(a)return a.isDirectory()?sg(t,i):t.rm(i)})})).then(()=>t.rmdir(e)):await t.rmdir(e)}function N4(t){return B4(t)&&yx(t.then)&&yx(t.catch)}function B4(t){return t&&typeof t=="object"}function yx(t){return typeof t=="function"}function wx(t){return N4((r=>{try{return r.readFile().catch(n=>n)}catch(n){return n}})(t))}var bx=["readFile","writeFile","mkdir","rmdir","unlink","stat","lstat","readdir","readlink","symlink"];function _x(t,e){if(wx(e))for(let r of bx)t[`_${r}`]=e[r].bind(e);else for(let r of bx)t[`_${r}`]=jm(e[r].bind(e));wx(e)?e.rm?t._rm=e.rm.bind(e):e.rmdir.length>1?t._rm=e.rmdir.bind(e):t._rm=sg.bind(null,t):e.rm?t._rm=jm(e.rm.bind(e)):e.rmdir.length>2?t._rm=jm(e.rmdir.bind(e)):t._rm=sg.bind(null,t)}var Q=class{constructor(e){if(typeof e._original_unwrapped_fs!="undefined")return e;let r=Object.getOwnPropertyDescriptor(e,"promises");r&&r.enumerable?_x(this,e.promises):_x(this,e),this._original_unwrapped_fs=e}async exists(e,r={}){try{return await this._stat(e),!0}catch(n){if(n.code==="ENOENT"||n.code==="ENOTDIR"||(n.code||"").includes("ENS"))return!1;throw console.log('Unhandled error in "FileSystem.exists()" function',n),n}}async read(e,r={}){try{let n=await this._readFile(e,r);if(r.autocrlf==="true")try{n=new TextDecoder("utf8",{fatal:!0}).decode(n),n=n.replace(/\r\n/g,` -`),n=new TextEncoder().encode(n)}catch(i){}return typeof n!="string"&&(n=Buffer.from(n)),n}catch(n){return null}}async write(e,r,n={}){try{await this._writeFile(e,r,n);return}catch(i){await this.mkdir(ao(e)),await this._writeFile(e,r,n)}}async mkdir(e,r=!1){try{await this._mkdir(e);return}catch(n){if(n===null||n.code==="EEXIST")return;if(r)throw n;if(n.code==="ENOENT"){let i=ao(e);if(i==="."||i==="/"||i===e)throw n;await this.mkdir(i),await this.mkdir(e,!0)}}}async rm(e){try{await this._unlink(e)}catch(r){if(r.code!=="ENOENT")throw r}}async rmdir(e,r){try{r&&r.recursive?await this._rm(e,r):await this._rmdir(e)}catch(n){if(n.code!=="ENOENT")throw n}}async readdir(e){try{let r=await this._readdir(e);return r.sort(Lf),r}catch(r){return r.code==="ENOTDIR"?null:[]}}async readdirDeep(e){let r=await this._readdir(e);return(await Promise.all(r.map(async i=>{let a=e+"/"+i;return(await this._stat(a)).isDirectory()?this.readdirDeep(a):a}))).reduce((i,a)=>i.concat(a),[])}async lstat(e){try{return await this._lstat(e)}catch(r){if(r.code==="ENOENT"||(r.code||"").includes("ENS"))return null;throw r}}async readlink(e,r={encoding:"buffer"}){try{let n=await this._readlink(e,r);return Buffer.isBuffer(n)?n:Buffer.from(n)}catch(n){if(n.code==="ENOENT"||(n.code||"").includes("ENS"))return null;throw n}}async writelink(e,r){return this._symlink(r.toString("utf8"),e)}};function P(t,e){if(e===void 0)throw new dr(t)}async function If(t,e){return!t&&!e?!1:t&&!e||!t&&e?!0:!(await t.type()==="tree"&&await e.type()==="tree"||await t.type()===await e.type()&&await t.mode()===await e.mode()&&await t.oid()===await e.oid())}async function Ux({fs:t,dir:e,gitdir:r=F.join(e,".git"),commit:n="HEAD",cache:i={}}){try{P("fs",t),P("dir",e),P("gitdir",r);let a=new Q(t),s=[Rr({ref:n}),yo(),Ya()],o=[];await ct.acquire({fs:a,gitdir:r,cache:i},async function(c){o=c.unmergedPaths});let l=await ra({fs:a,cache:i,dir:e,gitdir:r,trees:s,map:async function(c,[u,f,d]){let h=!await If(f,d),p=o.includes(c),g=!await If(d,u);if(h||p)return u?{path:c,mode:await u.mode(),oid:await u.oid(),type:await u.type(),content:await u.content()}:void 0;if(g)return!1;throw new ac(c)}});await ct.acquire({fs:a,gitdir:r,cache:i},async function(c){for(let u of l)if(u!==!1){if(!u){await a.rmdir(`${e}/${u.path}`,{recursive:!0}),c.delete({filepath:u.path});continue}if(u.type==="blob"){let f=new TextDecoder().decode(u.content);await a.write(`${e}/${u.path}`,f,{mode:u.mode}),c.insert({filepath:u.path,oid:u.oid,stage:0})}}})}catch(a){throw a.caller="git.abortMerge",a}}var na=class{static async isIgnored({fs:e,dir:r,gitdir:n=F.join(r,".git"),filepath:i}){if(Cf(i)===".git")return!0;if(i===".")return!1;let a="",s=F.join(n,"info","exclude");await e.exists(s)&&(a=await e.read(s,"utf8"));let o=[{gitignore:F.join(r,".gitignore"),filepath:i}],l=i.split("/").filter(Boolean);for(let u=1;u{let u=await(await nt.get({fs:o,gitdir:r})).get("core.autocrlf");return og({dir:e,gitdir:r,fs:o,filepath:n,index:l,force:a,parallel:s,autocrlf:u})})}catch(o){throw o.caller="git.add",o}}async function og({dir:t,gitdir:e,fs:r,filepath:n,index:i,force:a,parallel:s,autocrlf:o}){n=Array.isArray(n)?n:[n];let l=n.map(async d=>{if(!a&&await na.isIgnored({fs:r,dir:t,gitdir:e,filepath:d}))return;let h=await r.lstat(F.join(t,d));if(!h)throw new je(d);if(h.isDirectory()){let p=await r.readdir(F.join(t,d));if(s){let g=p.map(v=>og({dir:t,gitdir:e,fs:r,filepath:[F.join(d,v)],index:i,force:a,parallel:s,autocrlf:o}));await Promise.all(g)}else for(let g of p)await og({dir:t,gitdir:e,fs:r,filepath:[F.join(d,g)],index:i,force:a,parallel:s,autocrlf:o})}else{let p=h.isSymbolicLink()?await r.readlink(F.join(t,d)).then(zx):await r.read(F.join(t,d),{autocrlf:o});if(p===null)throw new je(d);let g=await mr({fs:r,gitdir:e,type:"blob",object:p});i.insert({filepath:d,stats:h,oid:g})}}),c=await Promise.allSettled(l),u=c.filter(d=>d.status==="rejected").map(d=>d.reason);if(u.length>1)throw new tc(u);if(u.length===1)throw u[0];return c.filter(d=>d.status==="fulfilled"&&d.value).map(d=>d.value)}async function oc({fs:t,gitdir:e,path:r}){return(await nt.get({fs:t,gitdir:e})).get(r)}function qx(t,...e){for(let r of e)if(r)for(let n of Object.keys(r)){let i=r[n];i!==void 0&&(t[n]=i)}return t}async function ia({fs:t,gitdir:e,author:r,commit:n}){let i=Math.floor(Date.now()/1e3),a={name:await oc({fs:t,gitdir:e,path:"user.name"}),email:await oc({fs:t,gitdir:e,path:"user.email"})||"",timestamp:i,timezoneOffset:new Date(i*1e3).getTimezoneOffset()},s=qx({},a,n?n.author:void 0,r);if(s.name!==void 0)return s}async function ho({fs:t,gitdir:e,author:r,committer:n,commit:i}){let a=Math.floor(Date.now()/1e3),s={name:await oc({fs:t,gitdir:e,path:"user.name"}),email:await oc({fs:t,gitdir:e,path:"user.email"})||"",timestamp:a,timezoneOffset:new Date(a*1e3).getTimezoneOffset()},o=qx({},s,i?i.committer:void 0,r,n);if(o.name!==void 0)return o}async function Wx({fs:t,cache:e,gitdir:r,oid:n}){let{type:i,object:a}=await Ge({fs:t,cache:e,gitdir:r,oid:n});if(i==="tag")return n=Mr.from(a).parse().object,Wx({fs:t,cache:e,gitdir:r,oid:n});if(i!=="commit")throw new tr(n,i,"commit");return{commit:pr.from(a),oid:n}}async function po({fs:t,cache:e,gitdir:r,oid:n}){let{commit:i,oid:a}=await Wx({fs:t,cache:e,gitdir:r,oid:n});return{oid:a,commit:i.parse(),payload:i.withoutSignature()}}async function Nf({fs:t,cache:e,onSign:r,gitdir:n,message:i,author:a,committer:s,signingKey:o,amend:l=!1,dryRun:c=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h}){let p=!1;f||(f=await V.resolve({fs:t,gitdir:n,ref:"HEAD",depth:2}));let g,v;try{g=await V.resolve({fs:t,gitdir:n,ref:f}),v=await po({fs:t,gitdir:n,oid:g,cache:{}})}catch(E){p=!0}if(l&&p)throw new sc(f);let y=l?await ia({fs:t,gitdir:n,author:a,commit:v.commit}):await ia({fs:t,gitdir:n,author:a});if(!y)throw new zt("author");let b=l?await ho({fs:t,gitdir:n,author:y,committer:s,commit:v.commit}):await ho({fs:t,gitdir:n,author:y,committer:s});if(!b)throw new zt("committer");return ct.acquire({fs:t,gitdir:n,cache:e,allowUnmerged:!1},async function(E){let A=$x(E.entries).get(".");if(h||(h=await Yx({fs:t,gitdir:n,inode:A,dryRun:c})),d?d=await Promise.all(d.map(x=>V.resolve({fs:t,gitdir:n,ref:x}))):l?d=v.commit.parent:d=g?[g]:[],!i)if(l)i=v.commit.message;else throw new dr("message");let k=pr.from({tree:h,parent:d,author:y,committer:b,message:i});o&&(k=await pr.sign(k,r,o));let w=await mr({fs:t,gitdir:n,type:"commit",object:k.toObject(),dryRun:c});return!u&&!c&&await V.writeRef({fs:t,gitdir:n,ref:f,value:w}),w})}async function Yx({fs:t,gitdir:e,inode:r,dryRun:n}){let i=r.children;for(let l of i)l.type==="tree"&&(l.metadata.mode="040000",l.metadata.oid=await Yx({fs:t,gitdir:e,inode:l,dryRun:n}));let a=i.map(l=>({mode:l.metadata.mode,path:l.basename,oid:l.metadata.oid,type:l.type})),s=hr.from(a);return await mr({fs:t,gitdir:e,type:"tree",object:s.toObject(),dryRun:n})}async function lc({fs:t,cache:e,gitdir:r,oid:n,filepath:i}){if(i.startsWith("/"))throw new ta("leading-slash");if(i.endsWith("/"))throw new ta("trailing-slash");let a=n,s=await fo({fs:t,cache:e,gitdir:r,oid:n}),o=s.tree;if(i==="")n=s.oid;else{let l=i.split("/");n=await Xx({fs:t,cache:e,gitdir:r,tree:o,pathArray:l,oid:a,filepath:i})}return n}async function Xx({fs:t,cache:e,gitdir:r,tree:n,pathArray:i,oid:a,filepath:s}){let o=i.shift();for(let l of n)if(l.path===o){if(i.length===0)return l.oid;{let{type:c,object:u}=await Ge({fs:t,cache:e,gitdir:r,oid:l.oid});if(c!=="tree")throw new tr(a,c,"tree",s);return n=hr.from(u),Xx({fs:t,cache:e,gitdir:r,tree:n,pathArray:i,oid:a,filepath:s})}}throw new je(`file or directory found at "${a}:${s}"`)}async function wo({fs:t,cache:e,gitdir:r,oid:n,filepath:i=void 0}){i!==void 0&&(n=await lc({fs:t,cache:e,gitdir:r,oid:n,filepath:i}));let{tree:a,oid:s}=await fo({fs:t,cache:e,gitdir:r,oid:n});return{oid:s,tree:a.entries()}}async function cc({fs:t,gitdir:e,tree:r}){let n=hr.from(r).toObject();return await mr({fs:t,gitdir:e,type:"tree",object:n,format:"content"})}async function z4({fs:t,cache:e,onSign:r,gitdir:n,ref:i,oid:a,note:s,force:o,author:l,committer:c,signingKey:u}){let f;try{f=await V.resolve({gitdir:n,fs:t,ref:i})}catch(y){if(!(y instanceof je))throw y}let h=(await wo({fs:t,cache:e,gitdir:n,oid:f||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;if(o)h=h.filter(y=>y.path!==a);else for(let y of h)if(y.path===a)throw new pn("note",a);typeof s=="string"&&(s=Buffer.from(s,"utf8"));let p=await mr({fs:t,gitdir:n,type:"blob",object:s,format:"content"});h.push({mode:"100644",path:a,oid:p,type:"blob"});let g=await cc({fs:t,gitdir:n,tree:h});return await Nf({fs:t,cache:e,onSign:r,gitdir:n,ref:i,tree:g,parent:f&&[f],message:`Note added by 'isomorphic-git addNote' -`,author:l,committer:c,signingKey:u})}async function Kx({fs:t,onSign:e,dir:r,gitdir:n=F.join(r,".git"),ref:i="refs/notes/commits",oid:a,note:s,force:o,author:l,committer:c,signingKey:u,cache:f={}}){try{P("fs",t),P("gitdir",n),P("oid",a),P("note",s),u&&P("onSign",e);let d=new Q(t),h=await ia({fs:d,gitdir:n,author:l});if(!h)throw new zt("author");let p=await ho({fs:d,gitdir:n,author:h,committer:c});if(!p)throw new zt("committer");return await z4({fs:new Q(d),cache:f,onSign:e,gitdir:n,ref:i,oid:a,note:s,force:o,author:h,committer:p,signingKey:u})}catch(d){throw d.caller="git.addNote",d}}async function Zx({fs:t,gitdir:e,remote:r,url:n,force:i}){if(r!==zn.clean(r))throw new mn(r,zn.clean(r));let a=await nt.get({fs:t,gitdir:e});if(!i&&(await a.getSubsections("remote")).includes(r)&&n!==await a.get(`remote.${r}.url`))throw new pn("remote",r);await a.set(`remote.${r}.url`,n),await a.set(`remote.${r}.fetch`,`+refs/heads/*:refs/remotes/${r}/*`),await nt.save({fs:t,gitdir:e,config:a})}async function Jx({fs:t,dir:e,gitdir:r=F.join(e,".git"),remote:n,url:i,force:a=!1}){try{return P("fs",t),P("gitdir",r),P("remote",n),P("url",i),await Zx({fs:new Q(t),gitdir:r,remote:n,url:i,force:a})}catch(s){throw s.caller="git.addRemote",s}}async function V4({fs:t,cache:e,onSign:r,gitdir:n,ref:i,tagger:a,message:s=i,gpgsig:o,object:l,signingKey:c,force:u=!1}){if(i=i.startsWith("refs/tags/")?i:`refs/tags/${i}`,!u&&await V.exists({fs:t,gitdir:n,ref:i}))throw new pn("tag",i);let f=await V.resolve({fs:t,gitdir:n,ref:l||"HEAD"}),{type:d}=await Ge({fs:t,cache:e,gitdir:n,oid:f}),h=Mr.from({object:f,type:d,tag:i.replace("refs/tags/",""),tagger:a,message:s,gpgsig:o});c&&(h=await Mr.sign(h,r,c));let p=await mr({fs:t,gitdir:n,type:"tag",object:h.toObject()});await V.writeRef({fs:t,gitdir:n,ref:i,value:p})}async function Qx({fs:t,onSign:e,dir:r,gitdir:n=F.join(r,".git"),ref:i,tagger:a,message:s=i,gpgsig:o,object:l,signingKey:c,force:u=!1,cache:f={}}){try{P("fs",t),P("gitdir",n),P("ref",i),c&&P("onSign",e);let d=new Q(t),h=await ia({fs:d,gitdir:n,author:a});if(!h)throw new zt("tagger");return await V4({fs:d,cache:f,onSign:e,gitdir:n,ref:i,tagger:h,message:s,gpgsig:o,object:l,signingKey:c,force:u})}catch(d){throw d.caller="git.annotatedTag",d}}async function q4({fs:t,gitdir:e,ref:r,object:n,checkout:i=!1,force:a=!1}){if(r!==zn.clean(r))throw new mn(r,zn.clean(r));let s=`refs/heads/${r}`;if(!a&&await V.exists({fs:t,gitdir:e,ref:s}))throw new pn("branch",r,!1);let o;try{o=await V.resolve({fs:t,gitdir:e,ref:n||"HEAD"})}catch(l){}o&&await V.writeRef({fs:t,gitdir:e,ref:s,value:o}),i&&await V.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:s})}async function eS({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n,object:i,checkout:a=!1,force:s=!1}){try{return P("fs",t),P("gitdir",r),P("ref",n),await q4({fs:new Q(t),gitdir:r,ref:n,object:i,checkout:a,force:s})}catch(o){throw o.caller="git.branch",o}}var tS=(t,e)=>t==="."||e==null||e.length===0||e==="."?!0:e.length>=t.length?e.startsWith(t):t.startsWith(e);async function fg({fs:t,cache:e,onProgress:r,onPostCheckout:n,dir:i,gitdir:a,remote:s,ref:o,filepaths:l,noCheckout:c,noUpdateHead:u,dryRun:f,force:d,track:h=!0,nonBlocking:p=!1,batchSize:g=100}){let v;if(n)try{v=await V.resolve({fs:t,gitdir:a,ref:"HEAD"})}catch(b){v="0000000000000000000000000000000000000000"}let y;try{y=await V.resolve({fs:t,gitdir:a,ref:o})}catch(b){if(o==="HEAD")throw b;let E=`${s}/${o}`;if(y=await V.resolve({fs:t,gitdir:a,ref:E}),h){let S=await nt.get({fs:t,gitdir:a});await S.set(`branch.${o}.remote`,s),await S.set(`branch.${o}.merge`,`refs/heads/${o}`),await nt.save({fs:t,gitdir:a,config:S})}await V.writeRef({fs:t,gitdir:a,ref:`refs/heads/${o}`,value:y})}if(!c){let b;try{b=await W4({fs:t,cache:e,onProgress:r,dir:i,gitdir:a,ref:o,force:d,filepaths:l})}catch(w){throw w instanceof je&&w.data.what===y?new Kl(o,y):w}let E=b.filter(([w])=>w==="conflict").map(([w,x])=>x);if(E.length>0)throw new Xl(E);let S=b.filter(([w])=>w==="error").map(([w,x])=>x);if(S.length>0)throw new pe(S.join(", "));if(f){n&&await n({previousHead:v,newHead:y,type:l!=null&&l.length>0?"file":"branch"});return}let A=0,k=b.length;if(await ct.acquire({fs:t,gitdir:a,cache:e},async function(w){await Promise.all(b.filter(([x])=>x==="delete"||x==="delete-index").map(async function([x,_]){let T=`${i}/${_}`;x==="delete"&&await t.rm(T),w.delete({filepath:_}),r&&await r({phase:"Updating workdir",loaded:++A,total:k})}))}),await ct.acquire({fs:t,gitdir:a,cache:e},async function(w){for(let[x,_]of b)if(x==="rmdir"||x==="rmdir-index"){let T=`${i}/${_}`;try{x==="rmdir"&&await t.rmdir(T),w.delete({filepath:_}),r&&await r({phase:"Updating workdir",loaded:++A,total:k})}catch(C){if(C.code==="ENOTEMPTY")console.log(`Did not delete ${_} because directory is not empty`);else throw C}}}),await Promise.all(b.filter(([w])=>w==="mkdir"||w==="mkdir-index").map(async function([w,x]){let _=`${i}/${x}`;await t.mkdir(_),r&&await r({phase:"Updating workdir",loaded:++A,total:k})})),p){let w=b.filter(([_])=>_==="create"||_==="create-index"||_==="update"||_==="mkdir-index"),x=await xx("Update Working Dir",w.map(([_,T,C,I,L])=>()=>X4({fs:t,cache:e,gitdir:a,dir:i},[_,T,C,I,L])),r,g);await ct.acquire({fs:t,gitdir:a,cache:e,allowUnmerged:!0},async function(_){await xx("Update Index",x.map(([T,C,I])=>()=>Y4({index:_,fullpath:T,oid:C,stats:I})),r,g)})}else await ct.acquire({fs:t,gitdir:a,cache:e,allowUnmerged:!0},async function(w){await Promise.all(b.filter(([x])=>x==="create"||x==="create-index"||x==="update"||x==="mkdir-index").map(async function([x,_,T,C,I]){let L=`${i}/${_}`;try{if(x!=="create-index"&&x!=="mkdir-index"){let{object:J}=await Ge({fs:t,cache:e,gitdir:a,oid:T});if(I&&await t.rm(L),C===33188)await t.write(L,J);else if(C===33261)await t.write(L,J,{mode:511});else if(C===40960)await t.writelink(L,J);else throw new pe(`Invalid mode 0o${C.toString(8)} detected in blob ${T}`)}let $=await t.lstat(L);C===33261&&($.mode=493),x==="mkdir-index"&&($.mode=57344),w.insert({filepath:_,stats:$,oid:T}),r&&await r({phase:"Updating workdir",loaded:++A,total:k})}catch($){console.log($)}}))});n&&await n({previousHead:v,newHead:y,type:l!=null&&l.length>0?"file":"branch"})}if(!u){let b=await V.expand({fs:t,gitdir:a,ref:o});b.startsWith("refs/heads")?await V.writeSymbolicRef({fs:t,gitdir:a,ref:"HEAD",value:b}):await V.writeRef({fs:t,gitdir:a,ref:"HEAD",value:y})}}async function W4({fs:t,cache:e,onProgress:r,dir:n,gitdir:i,ref:a,force:s,filepaths:o}){let l=0;return ra({fs:t,cache:e,dir:n,gitdir:i,trees:[Rr({ref:a}),yo(),Ya()],map:async function(c,[u,f,d]){if(c===".")return;if(o&&!o.some(p=>tS(c,p)))return null;switch(r&&await r({phase:"Analyzing workdir",loaded:++l}),[!!d,!!u,!!f].map(Number).join("")){case"000":return;case"001":return s&&o&&o.includes(c)?["delete",c]:void 0;case"010":switch(await u.type()){case"tree":return["mkdir",c];case"blob":return["create",c,await u.oid(),await u.mode()];case"commit":return["mkdir-index",c,await u.oid(),await u.mode()];default:return["error",`new entry Unhandled type ${await u.type()}`]}case"011":switch(`${await u.type()}-${await f.type()}`){case"tree-tree":return;case"tree-blob":case"blob-tree":return["conflict",c];case"blob-blob":return await u.oid()!==await f.oid()?s?["update",c,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",c]:await u.mode()!==await f.mode()?s?["update",c,await u.oid(),await u.mode(),!0]:["conflict",c]:["create-index",c,await u.oid(),await u.mode()];case"commit-tree":return;case"commit-blob":return["conflict",c];default:return["error",`new entry Unhandled type ${u.type}`]}case"100":return["delete-index",c];case"101":switch(await d.type()){case"tree":return["rmdir-index",c];case"blob":return await d.oid()!==await f.oid()?s?["delete",c]:["conflict",c]:["delete",c];case"commit":return["rmdir-index",c];default:return["error",`delete entry Unhandled type ${await d.type()}`]}case"110":case"111":switch(`${await d.type()}-${await u.type()}`){case"tree-tree":return;case"blob-blob":{if(await d.oid()===await u.oid()&&await d.mode()===await u.mode()&&!s)return;if(f){if(await f.oid()!==await d.oid()&&await f.oid()!==await u.oid())return s?["update",c,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",c]}else if(s)return["update",c,await u.oid(),await u.mode(),await u.mode()!==await d.mode()];return await u.mode()!==await d.mode()?["update",c,await u.oid(),await u.mode(),!0]:await u.oid()!==await d.oid()?["update",c,await u.oid(),await u.mode(),!1]:void 0}case"tree-blob":return["update-dir-to-blob",c,await u.oid()];case"blob-tree":return["update-blob-to-tree",c];case"commit-commit":return["mkdir-index",c,await u.oid(),await u.mode()];default:return["error",`update entry Unhandled type ${await d.type()}-${await u.type()}`]}}},reduce:async function(c,u){return u=Hx(u),c?c&&c[0]==="rmdir"?(u.push(c),u):(u.unshift(c),u):u}})}async function Y4({index:t,fullpath:e,stats:r,oid:n}){try{t.insert({filepath:e,stats:r,oid:n})}catch(i){console.warn(`Error inserting ${e} into index:`,i)}}async function X4({fs:t,cache:e,gitdir:r,dir:n},[i,a,s,o,l]){let c=`${n}/${a}`;if(i!=="create-index"&&i!=="mkdir-index"){let{object:f}=await Ge({fs:t,cache:e,gitdir:r,oid:s});if(l&&await t.rm(c),o===33188)await t.write(c,f);else if(o===33261)await t.write(c,f,{mode:511});else if(o===40960)await t.writelink(c,f);else throw new pe(`Invalid mode 0o${o.toString(8)} detected in blob ${s}`)}let u=await t.lstat(c);return o===33261&&(u.mode=493),i==="mkdir-index"&&(u.mode=57344),[a,s,u]}async function xx(t,e,r,n){let i=[];try{for(let a=0;al());(await Promise.allSettled(s)).forEach(l=>{l.status==="fulfilled"&&i.push(l.value)}),r&&await r({phase:"Updating workdir",loaded:a+s.length,total:e.length})}return i}catch(a){console.error(`Error during ${t}: ${a}`)}return i}async function dg({fs:t,onProgress:e,onPostCheckout:r,dir:n,gitdir:i=F.join(n,".git"),remote:a="origin",ref:s,filepaths:o,noCheckout:l=!1,noUpdateHead:c=s===void 0,dryRun:u=!1,force:f=!1,track:d=!0,cache:h={},nonBlocking:p=!1,batchSize:g=100}){try{P("fs",t),P("dir",n),P("gitdir",i);let v=s||"HEAD";return await fg({fs:new Q(t),cache:h,onProgress:e,onPostCheckout:r,dir:n,gitdir:i,remote:a,ref:v,filepaths:o,noCheckout:l,noUpdateHead:c,dryRun:u,force:f,track:d,nonBlocking:p,batchSize:g})}catch(v){throw v.caller="git.checkout",v}}var K4=new RegExp("^refs/(heads/|tags/|remotes/)?(.*)");function za(t){let e=K4.exec(t);return e?e[1]==="remotes/"&&t.endsWith("/HEAD")?e[2].slice(0,-5):e[2]:t}async function sa({fs:t,gitdir:e,fullname:r=!1,test:n=!1}){let i=await V.resolve({fs:t,gitdir:e,ref:"HEAD",depth:2});if(n)try{await V.resolve({fs:t,gitdir:e,ref:i})}catch(a){return}if(i.startsWith("refs/"))return r?i:za(i)}function Z4(t){return t=t.replace(/^git@([^:]+):/,"https://$1/"),t=t.replace(/^ssh:\/\//,"https://"),t}function rS({username:t="",password:e=""}){return`Basic ${Buffer.from(`${t}:${e}`).toString("base64")}`}async function uc(t,e){let r=jx(t);for(;;){let{value:n,done:i}=await r.next();if(n&&await e(n),i)break}r.return&&r.return()}async function Ff(t){let e=0,r=[];await uc(t,a=>{r.push(a),e+=a.byteLength});let n=new Uint8Array(e),i=0;for(let a of r)n.set(a,i),i+=a.byteLength;return n}function Sx(t){let e=t.match(/^https?:\/\/([^/]+)@/);if(e==null)return{url:t,auth:{}};e=e[1];let[r,n]=e.split(":");return t=t.replace(`${e}@`,""),{url:t,auth:{username:r,password:n}}}function lg(t,e){let r=e.toString(16);return"0".repeat(t-r.length)+r}var Qe=class{static flush(){return Buffer.from("0000","utf8")}static delim(){return Buffer.from("0001","utf8")}static encode(e){typeof e=="string"&&(e=Buffer.from(e));let r=e.length+4,n=lg(4,r);return Buffer.concat([Buffer.from(n,"utf8"),e])}static streamReader(e){let r=new Mf(e);return async function(){try{let i=await r.read(4);if(i==null)return!0;if(i=parseInt(i.toString("utf8"),16),i===0||i===1)return null;let a=await r.read(i-4);return a==null?!0:a}catch(i){return e.error=i,!0}}}};async function Ex(t){let e={},r;for(;r=await t(),r!==!0;){if(r===null)continue;r=r.toString("utf8").replace(/\n$/,"");let n=r.indexOf("=");if(n>-1){let i=r.slice(0,n),a=r.slice(n+1);e[i]=a}else e[r]=!0}return{protocolVersion:2,capabilities2:e}}async function Ax(t,{service:e}){let r=new Set,n=new Map,i=new Map,a=Qe.streamReader(t),s=await a();for(;s===null;)s=await a();if(s===!0)throw new Zl;if(s.includes("version 2"))return Ex(a);if(s.toString("utf8").replace(/\n$/,"")!==`# service=${e}`)throw new Va(`# service=${e}\\n`,s.toString("utf8"));let o=await a();for(;o===null;)o=await a();if(o===!0)return{capabilities:r,refs:n,symrefs:i};if(o=o.toString("utf8"),o.includes("version 2"))return Ex(a);let[l,c]=qm(o,"\0","\\x00");if(c.split(" ").map(u=>r.add(u)),l!=="0000000000000000000000000000000000000000 capabilities^{}"){let[u,f]=qm(l," "," ");for(n.set(f,u);;){let d=await a();if(d===!0)break;if(d!==null){let[h,p]=qm(d.toString("utf8")," "," ");n.set(p,h)}}}for(let u of r)if(u.startsWith("symref=")){let f=u.match(/symref=([^:]+):(.*)/);f.length===3&&i.set(f[1],f[2])}return{protocolVersion:1,capabilities:r,refs:n,symrefs:i}}function qm(t,e,r){let n=t.trim().split(e);if(n.length!==2)throw new Va(`Two strings separated by '${r}'`,t.toString("utf8"));return n}var kx=(t,e)=>t.endsWith("?")?`${t}${e}`:`${t}/${e.replace(/^https?:\/\//,"")}`,Tx=(t,e)=>{(e.username||e.password)&&(t.Authorization=rS(e)),e.headers&&Object.assign(t,e.headers)},Wm=async t=>{try{let e=Buffer.from(await Ff(t.body)),r=e.toString("utf8");return{preview:r.length<256?r:r.slice(0,256)+"...",response:r,data:e}}catch(e){return{}}},mo=class{static async capabilities(){return["discover","connect"]}static async discover({http:e,onProgress:r,onAuth:n,onAuthSuccess:i,onAuthFailure:a,corsProxy:s,service:o,url:l,headers:c,protocolVersion:u}){let{url:f,auth:d}=Sx(l),h=s?kx(s,f):f;(d.username||d.password)&&(c.Authorization=rS(d)),u===2&&(c["Git-Protocol"]="version=2");let p,g,v=!1;do if(p=await e.request({onProgress:r,method:"GET",url:`${h}/info/refs?service=${o}`,headers:c}),g=!1,p.statusCode===401||p.statusCode===203){let y=v?a:n;if(y){if(d=await y(f,{...d,headers:{...c}}),d&&d.cancel)throw new uo;d&&(Tx(c,d),v=!0,g=!0)}}else p.statusCode===200&&v&&i&&await i(f,d);while(g);if(p.statusCode!==200){let{response:y}=await Wm(p);throw new so(p.statusCode,p.statusMessage,y)}if(p.headers["content-type"]===`application/x-${o}-advertisement`){let y=await Ax(p.body,{service:o});return y.auth=d,y}else{let{preview:y,response:b,data:E}=await Wm(p);try{let S=await Ax([E],{service:o});return S.auth=d,S}catch(S){throw new rc(y,b)}}}static async connect({http:e,onProgress:r,corsProxy:n,service:i,url:a,auth:s,body:o,headers:l}){let c=Sx(a);c&&(a=c.url),n&&(a=kx(n,a)),l["content-type"]=`application/x-${i}-request`,l.accept=`application/x-${i}-result`,Tx(l,s);let u=await e.request({onProgress:r,method:"POST",url:`${a}/${i}`,body:o,headers:l});if(u.statusCode!==200){let{response:f}=Wm(u);throw new so(u.statusCode,u.statusMessage,f)}return u}};function J4({url:t}){if(t.startsWith("git@"))return{transport:"ssh",address:t};let e=t.match(/(\w+)(:\/\/|::)(.*)/);if(e!==null){if(e[2]==="://")return{transport:e[1],address:e[0]};if(e[2]==="::")return{transport:e[1],address:e[3]}}}var go=class{static getRemoteHelperFor({url:e}){let r=new Map;r.set("http",mo),r.set("https",mo);let n=J4({url:e});if(!n)throw new ic(e);if(r.has(n.transport))return r.get(n.transport);throw new nc(e,n.transport,n.transport==="ssh"?Z4(e):void 0)}},Ga=null,qa=class{static async read({fs:e,gitdir:r}){Ga===null&&(Ga=new zl);let n=F.join(r,"shallow"),i=new Set;return await Ga.acquire(n,async function(){let a=await e.read(n,{encoding:"utf8"});if(a===null||a.trim()==="")return i;a.trim().split(` -`).map(s=>i.add(s))}),i}static async write({fs:e,gitdir:r,oids:n}){Ga===null&&(Ga=new zl);let i=F.join(r,"shallow");if(n.size>0){let a=[...n].join(` -`)+` -`;await Ga.acquire(i,async function(){await e.write(i,a,{encoding:"utf8"})})}else await Ga.acquire(i,async function(){await e.rm(i)})}};async function Q4({fs:t,gitdir:e,oid:r}){let n=`objects/${r.slice(0,2)}/${r.slice(2)}`;return t.exists(`${e}/${n}`)}async function eD({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:i}){let a=await t.readdir(F.join(r,"objects/pack"));a=a.filter(s=>s.endsWith(".idx"));for(let s of a){let o=`${r}/objects/pack/${s}`,l=await ug({fs:t,cache:e,filename:o,getExternalRefDelta:i});if(l.error)throw new pe(l.error);if(l.offsets.has(n))return!0}return!1}async function Cx({fs:t,cache:e,gitdir:r,oid:n,format:i="content"}){let a=o=>Ge({fs:t,cache:e,gitdir:r,oid:o}),s=await Q4({fs:t,gitdir:r,oid:n});return s||(s=await eD({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:a})),s}function tD(t){let i="5041434b"+"00000002"+"00000000";return t.slice(0,12).toString("hex")===i}function nS(t,e){let r=t.map(n=>n.split("=",1)[0]);return e.filter(n=>{let i=n.split("=",1)[0];return r.includes(i)})}var Bf={name:"isomorphic-git",version:"1.32.2",agent:"git/isomorphic-git@1.32.2"},ro=class{constructor(){this._queue=[]}write(e){if(this._ended)throw Error("You cannot write to a FIFO that has already been ended!");if(this._waiting){let r=this._waiting;this._waiting=null,r({value:e})}else this._queue.push(e)}end(){if(this._ended=!0,this._waiting){let e=this._waiting;this._waiting=null,e({done:!0})}}destroy(e){this.error=e,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error("You cannot call read until the previous call to read has returned!");return new Promise(e=>{this._waiting=e})}};function rD(t){let e=t.indexOf("\r"),r=t.indexOf(` -`);return e===-1&&r===-1?-1:e===-1?r+1:r===-1?e+1:r===e+1?r+1:Math.min(e,r)+1}function iS(t){let e=new ro,r="";return(async()=>(await uc(t,n=>{for(n=n.toString("utf8"),r+=n;;){let i=rD(r);if(i===-1)break;e.write(r.slice(0,i)),r=r.slice(i)}}),r.length>0&&e.write(r),e.end()))(),e}var $f=class{static demux(e){let r=Qe.streamReader(e),n=new ro,i=new ro,a=new ro,s=async function(){let o=await r();if(o===null)return s();if(o===!0){n.end(),a.end(),e.error?i.destroy(e.error):i.end();return}switch(o[0]){case 1:{i.write(o.slice(1));break}case 2:{a.write(o.slice(1));break}case 3:{let l=o.slice(1);a.write(l),n.end(),a.end(),i.destroy(new Error(l.toString("utf8")));return}default:n.write(o)}s()};return s(),{packetlines:n,packfile:i,progress:a}}};async function nD(t){let{packetlines:e,packfile:r,progress:n}=$f.demux(t),i=[],a=[],s=[],o=!1,l=!1;return new Promise((c,u)=>{uc(e,f=>{let d=f.toString("utf8").trim();if(d.startsWith("shallow")){let h=d.slice(-41).trim();h.length!==40&&u(new Qi(h)),i.push(h)}else if(d.startsWith("unshallow")){let h=d.slice(-41).trim();h.length!==40&&u(new Qi(h)),a.push(h)}else if(d.startsWith("ACK")){let[,h,p]=d.split(" ");s.push({oid:h,status:p}),p||(l=!0)}else d.startsWith("NAK")?(o=!0,l=!0):(l=!0,o=!0);l&&(t.error?u(t.error):c({shallows:i,unshallows:a,acks:s,nak:o,packfile:r,progress:n}))}).finally(()=>{l||(t.error?u(t.error):c({shallows:i,unshallows:a,acks:s,nak:o,packfile:r,progress:n}))})})}function iD({capabilities:t=[],wants:e=[],haves:r=[],shallows:n=[],depth:i=null,since:a=null,exclude:s=[]}){let o=[];e=[...new Set(e)];let l=` ${t.join(" ")}`;for(let c of e)o.push(Qe.encode(`want ${c}${l} -`)),l="";for(let c of n)o.push(Qe.encode(`shallow ${c} -`));i!==null&&o.push(Qe.encode(`deepen ${i} -`)),a!==null&&o.push(Qe.encode(`deepen-since ${Math.floor(a.valueOf()/1e3)} -`));for(let c of s)o.push(Qe.encode(`deepen-not ${c} -`));o.push(Qe.flush());for(let c of r)o.push(Qe.encode(`have ${c} -`));return o.push(Qe.encode(`done -`)),o}async function hg({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:l,ref:c,remoteRef:u,remote:f,url:d,corsProxy:h,depth:p=null,since:g=null,exclude:v=[],relative:y=!1,tags:b=!1,singleBranch:E=!1,headers:S={},prune:A=!1,pruneTags:k=!1}){let w=c||await sa({fs:t,gitdir:l,test:!0}),x=await nt.get({fs:t,gitdir:l}),_=f||w&&await x.get(`branch.${w}.remote`)||"origin",T=d||await x.get(`remote.${_}.url`);if(typeof T=="undefined")throw new dr("remote OR url");let C=u||w&&await x.get(`branch.${w}.merge`)||c||"HEAD";h===void 0&&(h=await x.get("http.corsProxy"));let I=go.getRemoteHelperFor({url:T}),L=await I.discover({http:r,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:h,service:"git-upload-pack",url:T,headers:S,protocolVersion:1}),$=L.auth,J=L.refs;if(J.size===0)return{defaultBranch:null,fetchHead:null,fetchHeadDescription:null};if(p!==null&&!L.capabilities.has("shallow"))throw new Ji("shallow","depth");if(g!==null&&!L.capabilities.has("deepen-since"))throw new Ji("deepen-since","since");if(v.length>0&&!L.capabilities.has("deepen-not"))throw new Ji("deepen-not","exclude");if(y===!0&&!L.capabilities.has("deepen-relative"))throw new Ji("deepen-relative","relative");let{oid:de,fullref:le}=V.resolveAgainstMap({ref:C,map:J});for(let U of J.keys())U===le||U==="HEAD"||U.startsWith("refs/heads/")||b&&U.startsWith("refs/tags/")||J.delete(U);let ce=nS([...L.capabilities],["multi_ack_detailed","no-done","side-band-64k","ofs-delta",`agent=${Bf.agent}`]);y&&ce.push("deepen-relative");let Te=E?[de]:J.values(),ne=E?[w]:await V.listRefs({fs:t,gitdir:l,filepath:"refs"}),N=[];for(let U of ne)try{U=await V.expand({fs:t,gitdir:l,ref:U});let Je=await V.resolve({fs:t,gitdir:l,ref:U});await Cx({fs:t,cache:e,gitdir:l,oid:Je})&&N.push(Je)}catch(Je){}N=[...new Set(N)];let W=await qa.read({fs:t,gitdir:l}),B=L.capabilities.has("shallow")?[...W]:[],$e=iD({capabilities:ce,wants:Te,haves:N,shallows:B,depth:p,since:g,exclude:v}),lr=Buffer.from(await Ff($e)),Ut=await I.connect({http:r,onProgress:n,corsProxy:h,service:"git-upload-pack",url:T,auth:$,body:[lr],headers:S}),X=await nD(Ut.body);Ut.headers&&(X.headers=Ut.headers);for(let U of X.shallows)if(!W.has(U))try{let{object:Je}=await Ge({fs:t,cache:e,gitdir:l,oid:U}),j=new pr(Je),Z=await Promise.all(j.headers().parent.map(We=>Cx({fs:t,cache:e,gitdir:l,oid:We})));Z.length===0||Z.every(We=>We)||W.add(U)}catch(Je){W.add(U)}for(let U of X.unshallows)W.delete(U);if(await qa.write({fs:t,gitdir:l,oids:W}),E){let U=new Map([[le,de]]),Je=new Map,j=10,Z=le;for(;j--;){let Rt=L.symrefs.get(Z);if(Rt===void 0)break;Je.set(Z,Rt),Z=Rt}let Se=J.get(Z);Se&&U.set(Z,Se);let{pruned:We}=await V.updateRemoteRefs({fs:t,gitdir:l,remote:_,refs:U,symrefs:Je,tags:b,prune:A});A&&(X.pruned=We)}else{let{pruned:U}=await V.updateRemoteRefs({fs:t,gitdir:l,remote:_,refs:J,symrefs:L.symrefs,tags:b,prune:A,pruneTags:k});A&&(X.pruned=U)}if(X.HEAD=L.symrefs.get("HEAD"),X.HEAD===void 0){let{oid:U}=V.resolveAgainstMap({ref:"HEAD",map:J});for(let[Je,j]of J.entries())if(Je!=="HEAD"&&j===U){X.HEAD=Je;break}}let Oe=le.startsWith("refs/tags")?"tag":"branch";if(X.FETCH_HEAD={oid:de,description:`${Oe} '${za(le)}' of ${T}`},n||i){let U=iS(X.progress);uc(U,async Je=>{if(i&&await i(Je),n){let j=Je.match(/([^:]*).*\((\d+?)\/(\d+?)\)/);j&&await n({phase:j[1].trim(),loaded:parseInt(j[2],10),total:parseInt(j[3],10)})}})}let De=Buffer.from(await Ff(X.packfile));if(Ut.body.error)throw Ut.body.error;let Pt=De.slice(-20).toString("hex"),Le={defaultBranch:X.HEAD,fetchHead:X.FETCH_HEAD.oid,fetchHeadDescription:X.FETCH_HEAD.description};if(X.headers&&(Le.headers=X.headers),A&&(Le.pruned=X.pruned),Pt!==""&&!tD(De)){Le.packfile=`objects/pack/pack-${Pt}.pack`;let U=F.join(l,Le.packfile);await t.write(U,De);let Je=Z=>Ge({fs:t,cache:e,gitdir:l,oid:Z}),j=await Wl.fromPack({pack:De,getExternalRefDelta:Je,onProgress:n});await t.write(U.replace(/\.pack$/,".idx"),await j.toBuffer())}return Le}async function aS({fs:t,bare:e=!1,dir:r,gitdir:n=e?r:F.join(r,".git"),defaultBranch:i="master"}){if(await t.exists(n+"/config"))return;let a=["hooks","info","objects/info","objects/pack","refs/heads","refs/tags"];a=a.map(s=>n+"/"+s);for(let s of a)await t.mkdir(s);await t.write(n+"/config",`[core] - repositoryformatversion = 0 - filemode = false - bare = ${e} -`+(e?"":` logallrefupdates = true -`)+` symlinks = false - ignorecase = true -`),await t.write(n+"/HEAD",`ref: refs/heads/${i} -`)}async function aD({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPostCheckout:l,dir:c,gitdir:u,url:f,corsProxy:d,ref:h,remote:p,depth:g,since:v,exclude:y,relative:b,singleBranch:E,noCheckout:S,noTags:A,headers:k,nonBlocking:w,batchSize:x=100}){try{if(await aS({fs:t,gitdir:u}),await Zx({fs:t,gitdir:u,remote:p,url:f,force:!1}),d){let C=await nt.get({fs:t,gitdir:u});await C.set("http.corsProxy",d),await nt.save({fs:t,gitdir:u,config:C})}let{defaultBranch:_,fetchHead:T}=await hg({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:u,ref:h,remote:p,corsProxy:d,depth:g,since:v,exclude:y,relative:b,singleBranch:E,headers:k,tags:!A});if(T===null)return;h=h||_,h=h.replace("refs/heads/",""),await fg({fs:t,cache:e,onProgress:n,onPostCheckout:l,dir:c,gitdir:u,ref:h,remote:p,noCheckout:S,nonBlocking:w,batchSize:x})}catch(_){throw await t.rmdir(u,{recursive:!0,maxRetries:10}).catch(()=>{}),_}}async function sS({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:l,gitdir:c=F.join(l,".git"),url:u,corsProxy:f=void 0,ref:d=void 0,remote:h="origin",depth:p=void 0,since:g=void 0,exclude:v=[],relative:y=!1,singleBranch:b=!1,noCheckout:E=!1,noTags:S=!1,headers:A={},cache:k={},nonBlocking:w=!1,batchSize:x=100}){try{return P("fs",t),P("http",e),P("gitdir",c),E||P("dir",l),P("url",u),await aD({fs:new Q(t),cache:k,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:l,gitdir:c,url:u,corsProxy:f,ref:d,remote:h,depth:p,since:g,exclude:v,relative:y,singleBranch:b,noCheckout:E,noTags:S,headers:A,nonBlocking:w,batchSize:x})}catch(_){throw _.caller="git.clone",_}}async function oS({fs:t,onSign:e,dir:r,gitdir:n=F.join(r,".git"),message:i,author:a,committer:s,signingKey:o,amend:l=!1,dryRun:c=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h,cache:p={}}){try{P("fs",t),l||P("message",i),o&&P("onSign",e);let g=new Q(t);return await Nf({fs:g,cache:p,onSign:e,gitdir:n,message:i,author:a,committer:s,signingKey:o,amend:l,dryRun:c,noUpdateBranch:u,ref:f,parent:d,tree:h})}catch(g){throw g.caller="git.commit",g}}async function lS({fs:t,dir:e,gitdir:r=F.join(e,".git"),fullname:n=!1,test:i=!1}){try{return P("fs",t),P("gitdir",r),await sa({fs:new Q(t),gitdir:r,fullname:n,test:i})}catch(a){throw a.caller="git.currentBranch",a}}async function sD({fs:t,gitdir:e,ref:r}){if(r=r.startsWith("refs/heads/")?r:`refs/heads/${r}`,!await V.exists({fs:t,gitdir:e,ref:r}))throw new je(r);let i=await V.expand({fs:t,gitdir:e,ref:r}),a=await sa({fs:t,gitdir:e,fullname:!0});if(i===a){let l=await V.resolve({fs:t,gitdir:e,ref:i});await V.writeRef({fs:t,gitdir:e,ref:"HEAD",value:l})}await V.deleteRef({fs:t,gitdir:e,ref:i});let s=za(r),o=await nt.get({fs:t,gitdir:e});await o.deleteSection("branch",s),await nt.save({fs:t,gitdir:e,config:o})}async function cS({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n}){try{return P("fs",t),P("ref",n),await sD({fs:new Q(t),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteBranch",i}}async function uS({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n}){try{P("fs",t),P("ref",n),await V.deleteRef({fs:new Q(t),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteRef",i}}async function oD({fs:t,gitdir:e,remote:r}){let n=await nt.get({fs:t,gitdir:e});await n.deleteSection("remote",r),await nt.save({fs:t,gitdir:e,config:n})}async function fS({fs:t,dir:e,gitdir:r=F.join(e,".git"),remote:n}){try{return P("fs",t),P("remote",n),await oD({fs:new Q(t),gitdir:r,remote:n})}catch(i){throw i.caller="git.deleteRemote",i}}async function lD({fs:t,gitdir:e,ref:r}){r=r.startsWith("refs/tags/")?r:`refs/tags/${r}`,await V.deleteRef({fs:t,gitdir:e,ref:r})}async function dS({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n}){try{return P("fs",t),P("ref",n),await lD({fs:new Q(t),gitdir:r,ref:n})}catch(i){throw i.caller="git.deleteTag",i}}async function cD({fs:t,gitdir:e,oid:r}){let n=r.slice(0,2);return(await t.readdir(`${e}/objects/${n}`)).map(a=>`${n}${a}`).filter(a=>a.startsWith(r))}async function uD({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:i}){let a=[],s=await t.readdir(F.join(r,"objects/pack"));s=s.filter(o=>o.endsWith(".idx"));for(let o of s){let l=`${r}/objects/pack/${o}`,c=await ug({fs:t,cache:e,filename:l,getExternalRefDelta:i});if(c.error)throw new pe(c.error);for(let u of c.offsets.keys())u.startsWith(n)&&a.push(u)}return a}async function fD({fs:t,cache:e,gitdir:r,oid:n}){let i=o=>Ge({fs:t,cache:e,gitdir:r,oid:o}),a=await cD({fs:t,gitdir:r,oid:n}),s=await uD({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:i});for(let o of s)a.indexOf(o)===-1&&a.push(o);if(a.length===1)return a[0];throw a.length>1?new Yl("oids",n,a):new je(`an object matching "${n}"`)}async function hS({fs:t,dir:e,gitdir:r=F.join(e,".git"),oid:n,cache:i={}}){try{return P("fs",t),P("gitdir",r),P("oid",n),await fD({fs:new Q(t),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.expandOid",a}}async function pS({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n}){try{return P("fs",t),P("gitdir",r),P("ref",n),await V.expand({fs:new Q(t),gitdir:r,ref:n})}catch(i){throw i.caller="git.expandRef",i}}async function pg({fs:t,cache:e,gitdir:r,oids:n}){let i={},a=n.length,s=n.map((o,l)=>({index:l,oid:o}));for(;s.length;){let o=new Set;for(let{oid:c,index:u}of s)i[c]||(i[c]=new Set),i[c].add(u),i[c].size===a&&o.add(c);if(o.size>0)return[...o];let l=new Map;for(let{oid:c,index:u}of s)try{let{object:f}=await Ge({fs:t,cache:e,gitdir:r,oid:c}),d=pr.from(f),{parent:h}=d.parseHeaders();for(let p of h)(!i[p]||!i[p].has(u))&&l.set(p+":"+u,{oid:p,index:u})}catch(f){}s=Array.from(l.values())}return[]}var Ym=/^.*(\r?\n|$)/gm;function dD({branches:t,contents:e}){let r=t[1],n=t[2],i=e[0],a=e[1],s=e[2],o=a.match(Ym),l=i.match(Ym),c=s.match(Ym),u=W8(o,l,c),f=7,d="",h=!0;for(let p of u)p.ok&&(d+=p.ok.join("")),p.conflict&&(h=!1,d+=`${"<".repeat(f)} ${r} -`,d+=p.conflict.a.join(""),d+=`${"=".repeat(f)} -`,d+=p.conflict.b.join(""),d+=`${">".repeat(f)} ${n} -`);return{cleanMerge:h,mergedText:d}}async function hD({fs:t,cache:e,dir:r,gitdir:n=F.join(r,".git"),index:i,ourOid:a,baseOid:s,theirOid:o,ourName:l="ours",baseName:c="base",theirName:u="theirs",dryRun:f=!1,abortOnConflict:d=!0,mergeDriver:h}){let p=Rr({ref:a}),g=Rr({ref:s}),v=Rr({ref:o}),y=[],b=[],E=[],S=[],A=await ra({fs:t,cache:e,dir:r,gitdir:n,trees:[p,g,v],map:async function(k,[w,x,_]){let T=Cf(k),C=await If(w,x),I=await If(_,x);switch(`${C}-${I}`){case"false-false":return{mode:await x.mode(),path:T,oid:await x.oid(),type:await x.type()};case"false-true":return!_&&await w.type()==="tree"?{mode:await w.mode(),path:T,oid:await w.oid(),type:await w.type()}:_?{mode:await _.mode(),path:T,oid:await _.oid(),type:await _.type()}:void 0;case"true-false":return!w&&await _.type()==="tree"?{mode:await _.mode(),path:T,oid:await _.oid(),type:await _.type()}:w?{mode:await w.mode(),path:T,oid:await w.oid(),type:await w.type()}:void 0;case"true-true":{if(w&&_&&await w.type()==="tree"&&await _.type()==="tree")return{mode:await w.mode(),path:T,oid:await w.oid(),type:"tree"};if(w&&_&&await w.type()==="blob"&&await _.type()==="blob")return pD({fs:t,gitdir:n,path:T,ours:w,base:x,theirs:_,ourName:l,baseName:c,theirName:u,mergeDriver:h}).then(async L=>{if(L.cleanMerge)d||i.insert({filepath:k,oid:L.mergeResult.oid,stage:0});else if(y.push(k),b.push(k),!d){let $="";x&&await x.type()==="blob"&&($=await x.oid());let J=await w.oid(),de=await _.oid();i.delete({filepath:k}),$&&i.insert({filepath:k,oid:$,stage:1}),i.insert({filepath:k,oid:J,stage:2}),i.insert({filepath:k,oid:de,stage:3})}return L.mergeResult});if(x&&!w&&_&&await x.type()==="blob"&&await _.type()==="blob"){if(y.push(k),E.push(k),!d){let L=await x.oid(),$=await _.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:L,stage:1}),i.insert({filepath:k,oid:$,stage:3})}return{mode:await _.mode(),oid:await _.oid(),type:"blob",path:T}}if(x&&w&&!_&&await x.type()==="blob"&&await w.type()==="blob"){if(y.push(k),S.push(k),!d){let L=await x.oid(),$=await w.oid();i.delete({filepath:k}),i.insert({filepath:k,oid:L,stage:1}),i.insert({filepath:k,oid:$,stage:2})}return{mode:await w.mode(),oid:await w.oid(),type:"blob",path:T}}if(x&&!w&&!_&&(await x.type()==="blob"||await x.type()==="tree"))return;throw new oo}}},reduce:y.length!==0&&(!r||d)?void 0:async(k,w)=>{let x=w.filter(Boolean);if(k&&!(k&&k.type==="tree"&&x.length===0&&k.path!==".")){if(x.length>0||k.path==="."&&x.length===0){let T=new hr(x).toObject(),C=await mr({fs:t,gitdir:n,type:"tree",object:T,dryRun:f});k.oid=C}return k}}});return y.length!==0?(r&&!d&&await ra({fs:t,cache:e,dir:r,gitdir:n,trees:[Rr({ref:A.oid})],map:async function(k,[w]){let x=`${r}/${k}`;if(await w.type()==="blob"){let _=await w.mode(),T=new TextDecoder().decode(await w.content());await t.write(x,T,{mode:_})}return!0}}),new lo(y,b,E,S)):A.oid}async function pD({fs:t,gitdir:e,path:r,ours:n,base:i,theirs:a,ourName:s,theirName:o,baseName:l,dryRun:c,mergeDriver:u=dD}){let f="blob",d="100755",h="",p="";i&&await i.type()==="blob"&&(d=await i.mode(),h=await i.oid(),p=Buffer.from(await i.content()).toString("utf8"));let g=d===await n.mode()?await a.mode():await n.mode();if(await n.oid()===await a.oid())return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await n.oid(),type:f}};if(await n.oid()===h)return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await a.oid(),type:f}};if(await a.oid()===h)return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await n.oid(),type:f}};let v=Buffer.from(await n.content()).toString("utf8"),y=Buffer.from(await a.content()).toString("utf8"),{mergedText:b,cleanMerge:E}=await u({branches:[l,s,o],contents:[p,v,y],path:r}),S=await mr({fs:t,gitdir:e,type:"blob",object:Buffer.from(b,"utf8"),dryRun:c});return{cleanMerge:E,mergeResult:{mode:g,path:r,oid:S,type:f}}}async function mS({fs:t,cache:e,dir:r,gitdir:n,ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,onSign:g,mergeDriver:v,allowUnrelatedHistories:y=!1}){i===void 0&&(i=await sa({fs:t,gitdir:n,fullname:!0})),i=await V.expand({fs:t,gitdir:n,ref:i}),a=await V.expand({fs:t,gitdir:n,ref:a});let b=await V.resolve({fs:t,gitdir:n,ref:i}),E=await V.resolve({fs:t,gitdir:n,ref:a}),S=await pg({fs:t,cache:e,gitdir:n,oids:[b,E]});if(S.length!==1)if(S.length===0&&y)S.push("4b825dc642cb6eb9a060e54bf8d69288fbee4904");else throw new oo;let A=S[0];if(A===E)return{oid:b,alreadyMerged:!0};if(s&&A===b)return!l&&!c&&await V.writeRef({fs:t,gitdir:n,ref:i,value:E}),{oid:E,fastForward:!0};{if(o)throw new Jl;let k=await ct.acquire({fs:t,gitdir:n,cache:e,allowUnmerged:!1},async x=>hD({fs:t,cache:e,dir:r,gitdir:n,index:x,ourOid:b,theirOid:E,baseOid:A,ourName:za(i),baseName:"base",theirName:za(a),dryRun:l,abortOnConflict:u,mergeDriver:v}));if(k instanceof lo)throw k;return f||(f=`Merge branch '${za(a)}' into ${za(i)}`),{oid:await Nf({fs:t,cache:e,gitdir:n,message:f,ref:i,tree:k,parent:[b,E],author:d,committer:h,signingKey:p,onSign:g,dryRun:l,noUpdateBranch:c}),tree:k,mergeCommit:!0}}}async function gS({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,dir:l,gitdir:c,ref:u,url:f,remote:d,remoteRef:h,prune:p,pruneTags:g,fastForward:v,fastForwardOnly:y,corsProxy:b,singleBranch:E,headers:S,author:A,committer:k,signingKey:w}){try{if(!u){let T=await sa({fs:t,gitdir:c});if(!T)throw new dr("ref");u=T}let{fetchHead:x,fetchHeadDescription:_}=await hg({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:c,corsProxy:b,ref:u,url:f,remote:d,remoteRef:h,singleBranch:E,headers:S,prune:p,pruneTags:g});await mS({fs:t,cache:e,gitdir:c,ours:u,theirs:x,fastForward:v,fastForwardOnly:y,message:`Merge ${_}`,author:A,committer:k,signingKey:w,dryRun:!1,noUpdateBranch:!1}),await fg({fs:t,cache:e,onProgress:n,dir:l,gitdir:c,ref:u,remote:d,noCheckout:!1})}catch(x){throw x.caller="git.pull",x}}async function vS({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:l=F.join(o,".git"),ref:c,url:u,remote:f,remoteRef:d,corsProxy:h,singleBranch:p,headers:g={},cache:v={}}){try{P("fs",t),P("http",e),P("gitdir",l);let y={name:"",email:"",timestamp:Date.now(),timezoneOffset:0};return await gS({fs:new Q(t),cache:v,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:l,ref:c,url:u,remote:f,remoteRef:d,fastForwardOnly:!0,corsProxy:h,singleBranch:p,headers:g,author:y,committer:y})}catch(y){throw y.caller="git.fastForward",y}}async function yS({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:l=F.join(o,".git"),ref:c,remote:u,remoteRef:f,url:d,corsProxy:h,depth:p=null,since:g=null,exclude:v=[],relative:y=!1,tags:b=!1,singleBranch:E=!1,headers:S={},prune:A=!1,pruneTags:k=!1,cache:w={}}){try{return P("fs",t),P("http",e),P("gitdir",l),await hg({fs:new Q(t),cache:w,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,gitdir:l,ref:c,remote:u,remoteRef:f,url:d,corsProxy:h,depth:p,since:g,exclude:v,relative:y,tags:b,singleBranch:E,headers:S,prune:A,pruneTags:k})}catch(x){throw x.caller="git.fetch",x}}async function wS({fs:t,dir:e,gitdir:r=F.join(e,".git"),oids:n,cache:i={}}){try{return P("fs",t),P("gitdir",r),P("oids",n),await pg({fs:new Q(t),cache:i,gitdir:r,oids:n})}catch(a){throw a.caller="git.findMergeBase",a}}async function bS({fs:t,filepath:e}){if(await t.exists(F.join(e,".git")))return e;{let r=ao(e);if(r===e)throw new je(`git root for ${e}`);return bS({fs:t,filepath:r})}}async function _S({fs:t,filepath:e}){try{return P("fs",t),P("filepath",e),await bS({fs:new Q(t),filepath:e})}catch(r){throw r.caller="git.findRoot",r}}async function xS({fs:t,dir:e,gitdir:r=F.join(e,".git"),path:n}){try{return P("fs",t),P("gitdir",r),P("path",n),await oc({fs:new Q(t),gitdir:r,path:n})}catch(i){throw i.caller="git.getConfig",i}}async function mD({fs:t,gitdir:e,path:r}){return(await nt.get({fs:t,gitdir:e})).getall(r)}async function SS({fs:t,dir:e,gitdir:r=F.join(e,".git"),path:n}){try{return P("fs",t),P("gitdir",r),P("path",n),await mD({fs:new Q(t),gitdir:r,path:n})}catch(i){throw i.caller="git.getConfigAll",i}}async function ES({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1}){try{P("http",t),P("url",a);let c=await go.getRemoteHelperFor({url:a}).discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:1}),u={capabilities:[...c.capabilities]};for(let[f,d]of c.refs){let h=f.split("/"),p=h.pop(),g=u;for(let v of h)g[v]=g[v]||{},g=g[v];g[p]=d}for(let[f,d]of c.symrefs){let h=f.split("/"),p=h.pop(),g=u;for(let v of h)g[v]=g[v]||{},g=g[v];g[p]=d}return u}catch(l){throw l.caller="git.getRemoteInfo",l}}function AS(t,e,r,n){let i=[];for(let[a,s]of t.refs){if(e&&!a.startsWith(e))continue;if(a.endsWith("^{}")){if(n){let l=a.replace("^{}",""),c=i[i.length-1],u=c.ref===l?c:i.find(f=>f.ref===l);if(u===void 0)throw new Error("I did not expect this to happen");u.peeled=s}continue}let o={ref:a,oid:s};r&&t.symrefs.has(a)&&(o.target=t.symrefs.get(a)),i.push(o)}return i}async function kS({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1,protocolVersion:l=2}){try{P("http",t),P("url",a);let u=await go.getRemoteHelperFor({url:a}).discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:l});if(u.protocolVersion===2)return{protocolVersion:u.protocolVersion,capabilities:u.capabilities2};let f={};for(let d of u.capabilities){let[h,p]=d.split("=");p?f[h]=p:f[h]=!0}return{protocolVersion:1,capabilities:f,refs:AS(u,void 0,!0,!0)}}catch(c){throw c.caller="git.getRemoteInfo2",c}}async function gD({type:t,object:e,format:r="content",oid:n=void 0}){return r!=="deflated"&&(r!=="wrapped"&&(e=ea.wrap({type:t,object:e})),n=await bi(e)),{oid:n,object:e}}async function TS({object:t}){try{P("object",t),typeof t=="string"?t=Buffer.from(t,"utf8"):t=Buffer.from(t);let e="blob",{oid:r,object:n}=await gD({type:"blob",format:"content",object:t});return{oid:r,type:e,object:new Uint8Array(n),format:"wrapped"}}catch(e){throw e.caller="git.hashBlob",e}}async function vD({fs:t,cache:e,onProgress:r,dir:n,gitdir:i,filepath:a}){try{a=F.join(n,a);let s=await t.read(a),o=c=>Ge({fs:t,cache:e,gitdir:i,oid:c}),l=await Wl.fromPack({pack:s,getExternalRefDelta:o,onProgress:r});return await t.write(a.replace(/\.pack$/,".idx"),await l.toBuffer()),{oids:[...l.hashes]}}catch(s){throw s.caller="git.indexPack",s}}async function CS({fs:t,onProgress:e,dir:r,gitdir:n=F.join(r,".git"),filepath:i,cache:a={}}){try{return P("fs",t),P("dir",r),P("gitdir",r),P("filepath",i),await vD({fs:new Q(t),cache:a,onProgress:e,dir:r,gitdir:n,filepath:i})}catch(s){throw s.caller="git.indexPack",s}}async function PS({fs:t,bare:e=!1,dir:r,gitdir:n=e?r:F.join(r,".git"),defaultBranch:i="master"}){try{return P("fs",t),P("gitdir",n),e||P("dir",r),await aS({fs:new Q(t),bare:e,dir:r,gitdir:n,defaultBranch:i})}catch(a){throw a.caller="git.init",a}}async function RS({fs:t,cache:e,gitdir:r,oid:n,ancestor:i,depth:a}){let s=await qa.read({fs:t,gitdir:r});if(!n)throw new dr("oid");if(!i)throw new dr("ancestor");if(n===i)return!1;let o=[n],l=new Set,c=0;for(;o.length;){if(c++===a)throw new ec(a);let u=o.shift(),{type:f,object:d}=await Ge({fs:t,cache:e,gitdir:r,oid:u});if(f!=="commit")throw new tr(u,f,"commit");let h=pr.from(d).parse();for(let p of h.parent)if(p===i)return!0;if(!s.has(u))for(let p of h.parent)l.has(p)||(o.push(p),l.add(p))}return!1}async function MS({fs:t,dir:e,gitdir:r=F.join(e,".git"),oid:n,ancestor:i,depth:a=-1,cache:s={}}){try{return P("fs",t),P("gitdir",r),P("oid",n),P("ancestor",i),await RS({fs:new Q(t),cache:s,gitdir:r,oid:n,ancestor:i,depth:a})}catch(o){throw o.caller="git.isDescendent",o}}async function OS({fs:t,dir:e,gitdir:r=F.join(e,".git"),filepath:n}){try{return P("fs",t),P("dir",e),P("gitdir",r),P("filepath",n),na.isIgnored({fs:new Q(t),dir:e,gitdir:r,filepath:n})}catch(i){throw i.caller="git.isIgnored",i}}async function IS({fs:t,dir:e,gitdir:r=F.join(e,".git"),remote:n}){try{return P("fs",t),P("gitdir",r),V.listBranches({fs:new Q(t),gitdir:r,remote:n})}catch(i){throw i.caller="git.listBranches",i}}async function yD({fs:t,gitdir:e,ref:r,cache:n}){if(r){let i=await V.resolve({gitdir:e,fs:t,ref:r}),a=[];return await FS({fs:t,cache:n,gitdir:e,oid:i,filenames:a,prefix:""}),a}else return ct.acquire({fs:t,gitdir:e,cache:n},async function(i){return i.entries.map(a=>a.path)})}async function FS({fs:t,cache:e,gitdir:r,oid:n,filenames:i,prefix:a}){let{tree:s}=await wo({fs:t,cache:e,gitdir:r,oid:n});for(let o of s)o.type==="tree"?await FS({fs:t,cache:e,gitdir:r,oid:o.oid,filenames:i,prefix:F.join(a,o.path)}):i.push(F.join(a,o.path))}async function $S({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n,cache:i={}}){try{return P("fs",t),P("gitdir",r),await yD({fs:new Q(t),cache:i,gitdir:r,ref:n})}catch(a){throw a.caller="git.listFiles",a}}async function wD({fs:t,cache:e,gitdir:r,ref:n}){let i;try{i=await V.resolve({gitdir:r,fs:t,ref:n})}catch(o){if(o instanceof je)return[]}return(await wo({fs:t,cache:e,gitdir:r,oid:i})).tree.map(o=>({target:o.path,note:o.oid}))}async function DS({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n="refs/notes/commits",cache:i={}}){try{return P("fs",t),P("gitdir",r),P("ref",n),await wD({fs:new Q(t),cache:i,gitdir:r,ref:n})}catch(a){throw a.caller="git.listNotes",a}}async function LS({fs:t,dir:e,gitdir:r=F.join(e,".git"),filepath:n}){try{return P("fs",t),P("gitdir",r),V.listRefs({fs:new Q(t),gitdir:r,filepath:n})}catch(i){throw i.caller="git.listRefs",i}}async function bD({fs:t,gitdir:e}){let r=await nt.get({fs:t,gitdir:e}),n=await r.getSubsections("remote");return Promise.all(n.map(async a=>{let s=await r.get(`remote.${a}.url`);return{remote:a,url:s}}))}async function jS({fs:t,dir:e,gitdir:r=F.join(e,".git")}){try{return P("fs",t),P("gitdir",r),await bD({fs:new Q(t),gitdir:r})}catch(n){throw n.caller="git.listRemotes",n}}async function _D(t){let e=Qe.streamReader(t),r=[],n;for(;n=await e(),n!==!0;){if(n===null)continue;n=n.toString("utf8").replace(/\n$/,"");let[i,a,...s]=n.split(" "),o={ref:a,oid:i};for(let l of s){let[c,u]=l.split(":");c==="symref-target"?o.target=u:c==="peeled"&&(o.peeled=u)}r.push(o)}return r}async function xD({prefix:t,symrefs:e,peelTags:r}){let n=[];return n.push(Qe.encode(`command=ls-refs -`)),n.push(Qe.encode(`agent=${Bf.agent} -`)),(r||e||t)&&n.push(Qe.delim()),r&&n.push(Qe.encode("peel")),e&&n.push(Qe.encode("symrefs")),t&&n.push(Qe.encode(`ref-prefix ${t}`)),n.push(Qe.flush()),n}async function NS({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:a,headers:s={},forPush:o=!1,protocolVersion:l=2,prefix:c,symrefs:u,peelTags:f}){try{P("http",t),P("url",a);let d=await mo.discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:l});if(d.protocolVersion===1)return AS(d,c,u,f);let h=await xD({prefix:c,symrefs:u,peelTags:f}),p=await mo.connect({http:t,auth:d.auth,headers:s,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,body:h});return _D(p.body)}catch(d){throw d.caller="git.listServerRefs",d}}async function BS({fs:t,dir:e,gitdir:r=F.join(e,".git")}){try{return P("fs",t),P("gitdir",r),V.listTags({fs:new Q(t),gitdir:r})}catch(n){throw n.caller="git.listTags",n}}function SD(t,e){return t.committer.timestamp-e.committer.timestamp}var ED="e69de29bb2d1d6434b8b29ae775ad8c2e48c5391";async function Px({fs:t,cache:e,gitdir:r,oid:n,fileId:i}){if(i===ED)return;let a=n,s,o=await fo({fs:t,cache:e,gitdir:r,oid:n}),l=o.tree;return i===o.oid?s=o.path:(s=await HS({fs:t,cache:e,gitdir:r,tree:l,fileId:i,oid:a}),Array.isArray(s)&&(s.length===0?s=void 0:s.length===1&&(s=s[0]))),s}async function HS({fs:t,cache:e,gitdir:r,tree:n,fileId:i,oid:a,filepaths:s=[],parentPath:o=""}){let l=n.entries().map(function(c){let u;return c.oid===i?(u=F.join(o,c.path),s.push(u)):c.type==="tree"&&(u=Ge({fs:t,cache:e,gitdir:r,oid:c.oid}).then(function({object:f}){return HS({fs:t,cache:e,gitdir:r,tree:hr.from(f),fileId:i,oid:a,filepaths:s,parentPath:F.join(o,c.path)})})),u});return await Promise.all(l),s}async function AD({fs:t,cache:e,gitdir:r,filepath:n,ref:i,depth:a,since:s,force:o,follow:l}){let c=typeof s=="undefined"?void 0:Math.floor(s.valueOf()/1e3),u=[],f=await qa.read({fs:t,gitdir:r}),d=await V.resolve({fs:t,gitdir:r,ref:i}),h=[await po({fs:t,cache:e,gitdir:r,oid:d})],p,g,v;function y(b){v&&n&&u.push(b)}for(;h.length>0;){let b=h.pop();if(c!==void 0&&b.commit.committer.timestamp<=c)break;if(n){let E;try{E=await lc({fs:t,cache:e,gitdir:r,oid:b.commit.tree,filepath:n}),g&&p!==E&&u.push(g),p=E,g=b,v=!0}catch(S){if(S instanceof je){let A=l&&p;if(A&&(A=await Px({fs:t,cache:e,gitdir:r,oid:b.commit.tree,fileId:p}),A))if(Array.isArray(A)){if(g){let k=await Px({fs:t,cache:e,gitdir:r,oid:g.commit.tree,fileId:p});if(Array.isArray(k))if(A=A.filter(w=>k.indexOf(w)===-1),A.length===1)A=A[0],n=A,g&&u.push(g);else{A=!1,g&&u.push(g);break}}}else n=A,g&&u.push(g);if(!A){if(v&&p&&(u.push(g),!o))break;if(!o&&!l)throw S}g=b,v=!1}else throw S}}else u.push(b);if(a!==void 0&&u.length===a){y(b);break}if(!f.has(b.oid))for(let E of b.commit.parent){let S=await po({fs:t,cache:e,gitdir:r,oid:E});h.map(A=>A.oid).includes(S.oid)||h.push(S)}h.length===0&&y(b),h.sort((E,S)=>SD(E.commit,S.commit))}return u}async function US({fs:t,dir:e,gitdir:r=F.join(e,".git"),filepath:n,ref:i="HEAD",depth:a,since:s,force:o,follow:l,cache:c={}}){try{return P("fs",t),P("gitdir",r),P("ref",i),await AD({fs:new Q(t),cache:c,gitdir:r,filepath:n,ref:i,depth:a,since:s,force:o,follow:l})}catch(u){throw u.caller="git.log",u}}async function GS({fs:t,onSign:e,dir:r,gitdir:n=F.join(r,".git"),ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,cache:g={},mergeDriver:v,allowUnrelatedHistories:y=!1}){try{P("fs",t),p&&P("onSign",e);let b=new Q(t),E=await ia({fs:b,gitdir:n,author:d});if(!E&&(!o||!s))throw new zt("author");let S=await ho({fs:b,gitdir:n,author:E,committer:h});if(!S&&(!o||!s))throw new zt("committer");return await mS({fs:b,cache:g,dir:r,gitdir:n,ours:i,theirs:a,fastForward:s,fastForwardOnly:o,dryRun:l,noUpdateBranch:c,abortOnConflict:u,message:f,author:E,committer:S,signingKey:p,onSign:e,mergeDriver:v,allowUnrelatedHistories:y})}catch(b){throw b.caller="git.merge",b}}var kD={commit:16,tree:32,blob:48,tag:64,ofs_delta:96,ref_delta:112};async function zS({fs:t,cache:e,dir:r,gitdir:n=F.join(r,".git"),oids:i}){let a=new Mx,s=[];function o(u,f){let d=Buffer.from(u,f);s.push(d),a.update(d)}async function l({stype:u,object:f}){let d=kD[u],h=f.length,p=h>15?128:0,g=h&15;h=h>>>4;let v=(p|d|g).toString(16);for(o(v,"hex");p;)p=h>127?128:0,v=p|h&127,o(lg(2,v),"hex"),h=h>>>7;o(Buffer.from(await Gx(f)))}o("PACK"),o("00000002","hex"),o(lg(8,i.length),"hex");for(let u of i){let{type:f,object:d}=await Ge({fs:t,cache:e,gitdir:n,oid:u});await l({write:o,object:d,stype:f})}let c=a.digest();return s.push(c),s}async function TD({fs:t,cache:e,gitdir:r,oids:n,write:i}){let a=await zS({fs:t,cache:e,gitdir:r,oids:n}),s=Buffer.from(await Ff(a)),l=`pack-${s.slice(-20).toString("hex")}.pack`;return i?(await t.write(F.join(r,`objects/pack/${l}`),s),{filename:l}):{filename:l,packfile:new Uint8Array(s)}}async function VS({fs:t,dir:e,gitdir:r=F.join(e,".git"),oids:n,write:i=!1,cache:a={}}){try{return P("fs",t),P("gitdir",r),P("oids",n),await TD({fs:new Q(t),cache:a,gitdir:r,oids:n,write:i})}catch(s){throw s.caller="git.packObjects",s}}async function qS({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:l=F.join(o,".git"),ref:c,url:u,remote:f,remoteRef:d,prune:h=!1,pruneTags:p=!1,fastForward:g=!0,fastForwardOnly:v=!1,corsProxy:y,singleBranch:b,headers:E={},author:S,committer:A,signingKey:k,cache:w={}}){try{P("fs",t),P("gitdir",l);let x=new Q(t),_=await ia({fs:x,gitdir:l,author:S});if(!_)throw new zt("author");let T=await ho({fs:x,gitdir:l,author:_,committer:A});if(!T)throw new zt("committer");return await gS({fs:x,cache:w,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,dir:o,gitdir:l,ref:c,url:u,remote:f,remoteRef:d,fastForward:g,fastForwardOnly:v,corsProxy:y,singleBranch:b,headers:E,author:_,committer:T,signingKey:k,prune:h,pruneTags:p})}catch(x){throw x.caller="git.pull",x}}async function CD({fs:t,cache:e,dir:r,gitdir:n=F.join(r,".git"),start:i,finish:a}){let s=await qa.read({fs:t,gitdir:n}),o=new Set,l=new Set;for(let f of i)o.add(await V.resolve({fs:t,gitdir:n,ref:f}));for(let f of a)try{let d=await V.resolve({fs:t,gitdir:n,ref:f});l.add(d)}catch(d){}let c=new Set;async function u(f){c.add(f);let{type:d,object:h}=await Ge({fs:t,cache:e,gitdir:n,oid:f});if(d==="tag"){let g=Mr.from(h).headers().object;return u(g)}if(d!=="commit")throw new tr(f,d,"commit");if(!s.has(f)){let g=pr.from(h).headers().parent;for(f of g)!l.has(f)&&!c.has(f)&&await u(f)}}for(let f of o)await u(f);return c}async function Xm({fs:t,cache:e,dir:r,gitdir:n=F.join(r,".git"),oids:i}){let a=new Set;async function s(o){if(a.has(o))return;a.add(o);let{type:l,object:c}=await Ge({fs:t,cache:e,gitdir:n,oid:o});if(l==="tag"){let f=Mr.from(c).headers().object;await s(f)}else if(l==="commit"){let f=pr.from(c).headers().tree;await s(f)}else if(l==="tree"){let u=hr.from(c);for(let f of u)f.type==="blob"&&a.add(f.oid),f.type==="tree"&&await s(f.oid)}}for(let o of i)await s(o);return a}async function PD(t){let e={},r="",n=Qe.streamReader(t),i=await n();for(;i!==!0;)i!==null&&(r+=i.toString("utf8")+` -`),i=await n();let a=r.toString("utf8").split(` -`);if(i=a.shift(),!i.startsWith("unpack "))throw new Va('unpack ok" or "unpack [error message]',i);e.ok=i==="unpack ok",e.ok||(e.error=i.slice(7)),e.refs={};for(let s of a){if(s.trim()==="")continue;let o=s.slice(0,2),l=s.slice(3),c=l.indexOf(" ");c===-1&&(c=l.length);let u=l.slice(0,c),f=l.slice(c+1);e.refs[u]={ok:o==="ok",error:f}}return e}async function RD({capabilities:t=[],triplets:e=[]}){let r=[],n=`\0 ${t.join(" ")}`;for(let i of e)r.push(Qe.encode(`${i.oldoid} ${i.oid} ${i.fullRef}${n} -`)),n="";return r.push(Qe.flush()),r}async function MD({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPrePush:l,gitdir:c,ref:u,remoteRef:f,remote:d,url:h,force:p=!1,delete:g=!1,corsProxy:v,headers:y={}}){let b=u||await sa({fs:t,gitdir:c});if(typeof b=="undefined")throw new dr("ref");let E=await nt.get({fs:t,gitdir:c});d=d||await E.get(`branch.${b}.pushRemote`)||await E.get("remote.pushDefault")||await E.get(`branch.${b}.remote`)||"origin";let S=h||await E.get(`remote.${d}.pushurl`)||await E.get(`remote.${d}.url`);if(typeof S=="undefined")throw new dr("remote OR url");let A=f||await E.get(`branch.${b}.merge`);if(typeof S=="undefined")throw new dr("remoteRef");v===void 0&&(v=await E.get("http.corsProxy"));let k=await V.expand({fs:t,gitdir:c,ref:b}),w=g?"0000000000000000000000000000000000000000":await V.resolve({fs:t,gitdir:c,ref:k}),x=go.getRemoteHelperFor({url:S}),_=await x.discover({http:r,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:v,service:"git-receive-pack",url:S,headers:y,protocolVersion:1}),T=_.auth,C;if(!A)C=k;else try{C=await V.expandAgainstMap({ref:A,map:_.refs})}catch(W){if(W instanceof je)C=A.startsWith("refs/")?A:`refs/heads/${A}`;else throw W}let I=_.refs.get(C)||"0000000000000000000000000000000000000000";if(l&&!await l({remote:d,url:S,localRef:{ref:g?"(delete)":k,oid:w},remoteRef:{ref:C,oid:I}}))throw new uo;let L=!_.capabilities.has("no-thin"),$=new Set;if(!g){let W=[..._.refs.values()],B=new Set;if(I!=="0000000000000000000000000000000000000000"){let $e=await pg({fs:t,cache:e,gitdir:c,oids:[w,I]});for(let lr of $e)W.push(lr);L&&(B=await Xm({fs:t,cache:e,gitdir:c,oids:$e}))}if(!W.includes(w)){let $e=await CD({fs:t,cache:e,gitdir:c,start:[w],finish:W});$=await Xm({fs:t,cache:e,gitdir:c,oids:$e})}if(L){try{let $e=await V.resolve({fs:t,gitdir:c,ref:`refs/remotes/${d}/HEAD`,depth:2}),{oid:lr}=await V.resolveAgainstMap({ref:$e.replace(`refs/remotes/${d}/`,""),fullref:$e,map:_.refs}),Ut=[lr];for(let X of await Xm({fs:t,cache:e,gitdir:c,oids:Ut}))B.add(X)}catch($e){}for(let $e of B)$.delete($e)}if(w===I&&(p=!0),!p){if(k.startsWith("refs/tags")&&I!=="0000000000000000000000000000000000000000")throw new co("tag-exists");if(w!=="0000000000000000000000000000000000000000"&&I!=="0000000000000000000000000000000000000000"&&!await RS({fs:t,cache:e,gitdir:c,oid:w,ancestor:I,depth:-1}))throw new co("not-fast-forward")}}let J=nS([..._.capabilities],["report-status","side-band-64k",`agent=${Bf.agent}`]),de=await RD({capabilities:J,triplets:[{oldoid:I,oid:w,fullRef:C}]}),le=g?[]:await zS({fs:t,cache:e,gitdir:c,oids:[...$]}),ce=await x.connect({http:r,onProgress:n,corsProxy:v,service:"git-receive-pack",url:S,auth:T,headers:y,body:[...de,...le]}),{packfile:Te,progress:ne}=await $f.demux(ce.body);if(i){let W=iS(ne);uc(W,async B=>{await i(B)})}let N=await PD(Te);if(ce.headers&&(N.headers=ce.headers),d&&N.ok&&N.refs[C].ok&&!k.startsWith("refs/tags")){let W=`refs/remotes/${d}/${C.replace("refs/heads","")}`;g?await V.deleteRef({fs:t,gitdir:c,ref:W}):await V.writeRef({fs:t,gitdir:c,ref:W,value:w})}if(N.ok&&Object.values(N.refs).every(W=>W.ok))return N;{let W=Object.entries(N.refs).filter(([B,$e])=>!$e.ok).map(([B,$e])=>` - - ${B}: ${$e.error}`).join("");throw new Ql(W,N)}}async function WS({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,dir:l,gitdir:c=F.join(l,".git"),ref:u,remoteRef:f,remote:d="origin",url:h,force:p=!1,delete:g=!1,corsProxy:v,headers:y={},cache:b={}}){try{return P("fs",t),P("http",e),P("gitdir",c),await MD({fs:new Q(t),cache:b,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,gitdir:c,ref:u,remoteRef:f,remote:d,url:h,force:p,delete:g,corsProxy:v,headers:y})}catch(E){throw E.caller="git.push",E}}async function YS({fs:t,cache:e,gitdir:r,oid:n}){let{type:i,object:a}=await Ge({fs:t,cache:e,gitdir:r,oid:n});if(i==="tag")return n=Mr.from(a).parse().object,YS({fs:t,cache:e,gitdir:r,oid:n});if(i!=="blob")throw new tr(n,i,"blob");return{oid:n,blob:new Uint8Array(a)}}async function XS({fs:t,cache:e,gitdir:r,oid:n,filepath:i=void 0}){return i!==void 0&&(n=await lc({fs:t,cache:e,gitdir:r,oid:n,filepath:i})),await YS({fs:t,cache:e,gitdir:r,oid:n})}async function KS({fs:t,dir:e,gitdir:r=F.join(e,".git"),oid:n,filepath:i,cache:a={}}){try{return P("fs",t),P("gitdir",r),P("oid",n),await XS({fs:new Q(t),cache:a,gitdir:r,oid:n,filepath:i})}catch(s){throw s.caller="git.readBlob",s}}async function mg({fs:t,dir:e,gitdir:r=F.join(e,".git"),oid:n,cache:i={}}){try{return P("fs",t),P("gitdir",r),P("oid",n),await po({fs:new Q(t),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.readCommit",a}}async function OD({fs:t,cache:e,gitdir:r,ref:n="refs/notes/commits",oid:i}){let a=await V.resolve({gitdir:r,fs:t,ref:n}),{blob:s}=await XS({fs:t,cache:e,gitdir:r,oid:a,filepath:i});return s}async function ZS({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n="refs/notes/commits",oid:i,cache:a={}}){try{return P("fs",t),P("gitdir",r),P("ref",n),P("oid",i),await OD({fs:new Q(t),cache:a,gitdir:r,ref:n,oid:i})}catch(s){throw s.caller="git.readNote",s}}async function JS({fs:t,dir:e,gitdir:r=F.join(e,".git"),oid:n,format:i="parsed",filepath:a=void 0,encoding:s=void 0,cache:o={}}){try{P("fs",t),P("gitdir",r),P("oid",n);let l=new Q(t);a!==void 0&&(n=await lc({fs:l,cache:o,gitdir:r,oid:n,filepath:a}));let u=await Ge({fs:l,cache:o,gitdir:r,oid:n,format:i==="parsed"?"content":i});if(u.oid=n,i==="parsed")switch(u.format="parsed",u.type){case"commit":u.object=pr.from(u.object).parse();break;case"tree":u.object=hr.from(u.object).entries();break;case"blob":s?u.object=u.object.toString(s):(u.object=new Uint8Array(u.object),u.format="content");break;case"tag":u.object=Mr.from(u.object).parse();break;default:throw new tr(u.oid,u.type,"blob|commit|tag|tree")}else(u.format==="deflated"||u.format==="wrapped")&&(u.type=u.format);return u}catch(l){throw l.caller="git.readObject",l}}async function ID({fs:t,cache:e,gitdir:r,oid:n}){let{type:i,object:a}=await Ge({fs:t,cache:e,gitdir:r,oid:n,format:"content"});if(i!=="tag")throw new tr(n,i,"tag");let s=Mr.from(a);return{oid:n,tag:s.parse(),payload:s.payload()}}async function QS({fs:t,dir:e,gitdir:r=F.join(e,".git"),oid:n,cache:i={}}){try{return P("fs",t),P("gitdir",r),P("oid",n),await ID({fs:new Q(t),cache:i,gitdir:r,oid:n})}catch(a){throw a.caller="git.readTag",a}}async function eE({fs:t,dir:e,gitdir:r=F.join(e,".git"),oid:n,filepath:i=void 0,cache:a={}}){try{return P("fs",t),P("gitdir",r),P("oid",n),await wo({fs:new Q(t),cache:a,gitdir:r,oid:n,filepath:i})}catch(s){throw s.caller="git.readTree",s}}async function tE({fs:t,dir:e,gitdir:r=F.join(e,".git"),filepath:n,cache:i={}}){try{P("fs",t),P("gitdir",r),P("filepath",n),await ct.acquire({fs:new Q(t),gitdir:r,cache:i},async function(a){a.delete({filepath:n})})}catch(a){throw a.caller="git.remove",a}}async function FD({fs:t,cache:e,onSign:r,gitdir:n,ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:l}){let c;try{c=await V.resolve({gitdir:n,fs:t,ref:i})}catch(p){if(!(p instanceof je))throw p}let f=(await wo({fs:t,gitdir:n,oid:c||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;f=f.filter(p=>p.path!==a);let d=await cc({fs:t,gitdir:n,tree:f});return await Nf({fs:t,cache:e,onSign:r,gitdir:n,ref:i,tree:d,parent:c&&[c],message:`Note removed by 'isomorphic-git removeNote' -`,author:s,committer:o,signingKey:l})}async function rE({fs:t,onSign:e,dir:r,gitdir:n=F.join(r,".git"),ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:l,cache:c={}}){try{P("fs",t),P("gitdir",n),P("oid",a);let u=new Q(t),f=await ia({fs:u,gitdir:n,author:s});if(!f)throw new zt("author");let d=await ho({fs:u,gitdir:n,author:f,committer:o});if(!d)throw new zt("committer");return await FD({fs:u,cache:c,onSign:e,gitdir:n,ref:i,oid:a,author:f,committer:d,signingKey:l})}catch(u){throw u.caller="git.removeNote",u}}async function $D({fs:t,gitdir:e,oldref:r,ref:n,checkout:i=!1}){if(n!==zn.clean(n))throw new mn(n,zn.clean(n));if(r!==zn.clean(r))throw new mn(r,zn.clean(r));let a=`refs/heads/${r}`,s=`refs/heads/${n}`;if(await V.exists({fs:t,gitdir:e,ref:s}))throw new pn("branch",n,!1);let l=await V.resolve({fs:t,gitdir:e,ref:a,depth:1});await V.writeRef({fs:t,gitdir:e,ref:s,value:l}),await V.deleteRef({fs:t,gitdir:e,ref:a});let u=await sa({fs:t,gitdir:e,fullname:!0})===a;(i||u)&&await V.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:s})}async function nE({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n,oldref:i,checkout:a=!1}){try{return P("fs",t),P("gitdir",r),P("ref",n),P("oldref",i),await $D({fs:new Q(t),gitdir:r,ref:n,oldref:i,checkout:a})}catch(s){throw s.caller="git.renameBranch",s}}async function iE({gitdir:t,type:e,object:r}){return bi(ea.wrap({type:e,object:r}))}async function aE({fs:t,dir:e,gitdir:r=F.join(e,".git"),filepath:n,ref:i,cache:a={}}){try{P("fs",t),P("gitdir",r),P("filepath",n);let s=new Q(t),o,l;try{o=await V.resolve({fs:s,gitdir:r,ref:i||"HEAD"})}catch(f){if(i)throw f}if(o)try{o=await lc({fs:s,cache:a,gitdir:r,oid:o,filepath:n})}catch(f){o=null}let c={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:0,uid:0,gid:0,size:0},u=e&&await s.read(F.join(e,n));u&&(l=await iE({gitdir:r,type:"blob",object:u}),o===l&&(c=await s.lstat(F.join(e,n)))),await ct.acquire({fs:s,gitdir:r,cache:a},async function(f){f.delete({filepath:n}),o&&f.insert({filepath:n,stats:c,oid:o})})}catch(s){throw s.caller="git.reset",s}}async function sE({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n,depth:i}){try{return P("fs",t),P("gitdir",r),P("ref",n),await V.resolve({fs:new Q(t),gitdir:r,ref:n,depth:i})}catch(a){throw a.caller="git.resolveRef",a}}async function oE({fs:t,dir:e,gitdir:r=F.join(e,".git"),path:n,value:i,append:a=!1}){try{P("fs",t),P("gitdir",r),P("path",n);let s=new Q(t),o=await nt.get({fs:s,gitdir:r});a?await o.append(n,i):await o.set(n,i),await nt.save({fs:s,gitdir:r,config:o})}catch(s){throw s.caller="git.setConfig",s}}async function lE({fs:t,gitdir:e,commit:r}){let n=pr.from(r).toObject();return await mr({fs:t,gitdir:e,type:"commit",object:n,format:"content"})}var Df=class t{static get timezoneOffsetForRefLogEntry(){let e=new Date().getTimezoneOffset(),r=Math.abs(Math.floor(e/60)),n=Math.abs(e%60).toString().padStart(2,"0");return`${e>0?"-":"+"}${r.toString().padStart(2,"0")}${n}`}static createStashReflogEntry(e,r,n){let i=e.name.replace(/\s/g,""),a="0000000000000000000000000000000000000000",s=Math.floor(Date.now()/1e3),o=t.timezoneOffsetForRefLogEntry;return`${a} ${r} ${i} ${e.email} ${s} ${o} ${n} -`}static getStashReflogEntry(e,r=!1){return e.split(` -`).filter(a=>a).reverse().map((a,s)=>r?`stash@{${s}}: ${a.split(" ")[1]}`:a)}},DD={stage:Ya,workdir:yo},Km;async function vo(t,e){return Km===void 0&&(Km=new zl),Km.acquire(t,e)}async function LD(t,e,r,n,i=null){let a=F.join(r,n),s=await t.lstat(a);if(!s)throw new je(a);if(s.isDirectory())throw new pe(`${a}: file expected, but found directory`);let o=i?await Lx({fs:t,gitdir:e,oid:i}):void 0,l=o?i:void 0;return o||await vo({fs:t,gitdir:e,currentFilepath:a},async()=>{let c=s.isSymbolicLink()?await t.readlink(a).then(zx):await t.read(a);if(c===null)throw new je(a);l=await mr({fs:t,gitdir:e,type:"blob",object:c})}),l}async function jD({fs:t,dir:e,gitdir:r,entries:n}){async function i(a){if(a.type==="tree"){if(!a.oid){let s=await Promise.all(a.children.map(i));a.oid=await cc({fs:t,gitdir:r,tree:s}),a.mode=16384}}else a.type==="blob"&&(a.oid=await LD(t,r,e,a.path,a.oid),a.mode=33188);return a.path=a.path.split("/").pop(),a}return Promise.all(n.map(i))}async function Rx({fs:t,dir:e,gitdir:r,treePair:n}){let i=n[1]==="stage",a=n.map(h=>typeof h=="string"?DD[h]():h),s=[],u=await ra({fs:t,cache:{},dir:e,gitdir:r,trees:a,map:async(h,[p,g])=>{if(!(h==="."||await na.isIgnored({fs:t,dir:e,gitdir:r,filepath:h}))&&g)return(!p||await p.oid()!==await g.oid()&&await g.oid()!==void 0)&&s.push([p,g]),{mode:await g.mode(),path:h,oid:await g.oid(),type:await g.type()}},reduce:async(h,p)=>(p=p.filter(Boolean),h?(h.children=p,h):p.length>0?p:void 0),iterate:async(h,p)=>{let g=[];for(let v of p){let[y,b]=v;i?b&&(await t.exists(`${e}/${b.toString()}`)?g.push(v):s.push([null,b])):y&&(b?g.push(v):s.push([y,null]))}return g.length?Promise.all(g.map(h)):[]}});if(s.length===0||u.length===0)return null;let d=(await jD({fs:t,dir:e,gitdir:r,entries:u})).filter(Boolean).map(h=>({mode:h.mode,path:h.path,oid:h.oid,type:h.type}));return cc({fs:t,gitdir:r,tree:d})}async function ND({fs:t,dir:e,gitdir:r,stashCommit:n,parentCommit:i,wasStaged:a}){let s=[],o=[],l=await ra({fs:t,cache:{},dir:e,gitdir:r,trees:[Rr({ref:i}),Rr({ref:n})],map:async(c,[u,f])=>{if(c==="."||await na.isIgnored({fs:t,dir:e,gitdir:r,filepath:c}))return;let d=f?await f.type():await u.type();if(d!=="tree"&&d!=="blob")return;if(!f&&u){let p=d==="tree"?"rmdir":"rm";return d==="tree"&&s.push(c),d==="blob"&&a&&o.push({filepath:c,oid:await u.oid()}),{method:p,filepath:c}}let h=await f.oid();if(!u||await u.oid()!==h)return d==="tree"?{method:"mkdir",filepath:c}:(a&&o.push({filepath:c,oid:h,stats:await t.lstat(F.join(e,c))}),{method:"write",filepath:c,oid:h})}});await vo({fs:t,gitdir:r,dirRemoved:s,ops:l},async()=>{for(let c of l){let u=F.join(e,c.filepath);switch(c.method){case"rmdir":await t.rmdir(u);break;case"mkdir":await t.mkdir(u);break;case"rm":await t.rm(u);break;case"write":if(!s.some(f=>u.startsWith(f))){let{object:f}=await Ge({fs:t,cache:{},gitdir:r,oid:c.oid});await t.exists(u)&&await t.rm(u),await t.write(u,f)}break}}}),await ct.acquire({fs:t,gitdir:r,cache:{}},async c=>{o.forEach(({filepath:u,stats:f,oid:d})=>{c.insert({filepath:u,stats:f,oid:d})})})}var Wa=class t{constructor({fs:e,dir:r,gitdir:n=F.join(r,".git")}){Object.assign(this,{fs:e,dir:r,gitdir:n,_author:null})}static get refStash(){return"refs/stash"}static get refLogsStash(){return"logs/refs/stash"}get refStashPath(){return F.join(this.gitdir,t.refStash)}get refLogsStashPath(){return F.join(this.gitdir,t.refLogsStash)}async getAuthor(){if(!this._author&&(this._author=await ia({fs:this.fs,gitdir:this.gitdir,author:{}}),!this._author))throw new zt("author");return this._author}async getStashSHA(e,r){return await this.fs.exists(this.refStashPath)?(r||await this.readStashReflogs({parsed:!1}))[e].split(" ")[1]:null}async writeStashCommit({message:e,tree:r,parent:n}){return lE({fs:this.fs,gitdir:this.gitdir,commit:{message:e,tree:r,parent:n,author:await this.getAuthor(),committer:await this.getAuthor()}})}async readStashCommit(e){let r=await this.readStashReflogs({parsed:!1});if(e!==0&&(e<0||e>r.length-1))throw new mn(`stash@${e}`,"number that is in range of [0, num of stash pushed]");let n=await this.getStashSHA(e,r);return n?po({fs:this.fs,cache:{},gitdir:this.gitdir,oid:n}):{}}async writeStashRef(e){return V.writeRef({fs:this.fs,gitdir:this.gitdir,ref:t.refStash,value:e})}async writeStashReflogEntry({stashCommit:e,message:r}){let n=await this.getAuthor(),i=Df.createStashReflogEntry(n,e,r),a=this.refLogsStashPath;await vo({filepath:a,entry:i},async()=>{let s=await this.fs.exists(a)?await this.fs.read(a,"utf8"):"";await this.fs.write(a,s+i,"utf8")})}async readStashReflogs({parsed:e=!1}){if(!await this.fs.exists(this.refLogsStashPath))return[];let n=(await this.fs.read(this.refLogsStashPath)).toString();return Df.getStashReflogEntry(n,e)}};async function BD({fs:t,dir:e,gitdir:r,message:n=""}){let i=new Wa({fs:t,dir:e,gitdir:r});await i.getAuthor();let a=await sa({fs:t,gitdir:r,fullname:!1}),s=await V.resolve({fs:t,gitdir:r,ref:"HEAD"}),l=(await mg({fs:t,dir:e,gitdir:r,oid:s})).commit.message,c=[s],u=null,f=Rr({ref:"HEAD"}),d=await Rx({fs:t,dir:e,gitdir:r,treePair:[Rr({ref:"HEAD"}),"stage"]});if(d){let v=await i.writeStashCommit({message:`stash-Index: WIP on ${a} - ${new Date().toISOString()}`,tree:d,parent:c});c.push(v),u=d,f=Ya()}let h=await Rx({fs:t,dir:e,gitdir:r,treePair:[f,"workdir"]});if(h){let v=await i.writeStashCommit({message:`stash-WorkDir: WIP on ${a} - ${new Date().toISOString()}`,tree:h,parent:[c[c.length-1]]});c.push(v),u=h}if(!u||!d&&!h)throw new je("changes, nothing to stash");let p=(n.trim()||`WIP on ${a}`)+`: ${s.substring(0,7)} ${l}`,g=await i.writeStashCommit({message:p,tree:u,parent:c});return await i.writeStashRef(g),await i.writeStashReflogEntry({stashCommit:g,message:p}),await dg({fs:t,dir:e,gitdir:r,ref:a,track:!1,force:!0}),g}async function cE({fs:t,dir:e,gitdir:r,refIdx:n=0}){let a=await new Wa({fs:t,dir:e,gitdir:r}).readStashCommit(n),{parent:s=null}=a.commit?a.commit:{};if(!(!s||!Array.isArray(s)))for(let o=0;o{await t.exists(s)&&await t.rm(s)});let o=await i.readStashReflogs({parsed:!1});if(!o.length)return;o.splice(n,1);let l=i.refLogsStashPath;await vo({reflogEntries:o,stashReflogPath:l,stashMgr:i},async()=>{if(o.length){await t.write(l,o.join(` -`),"utf8");let c=o[o.length-1].split(" ")[1];await i.writeStashRef(c)}else await t.rm(l)})}async function HD({fs:t,dir:e,gitdir:r}){return new Wa({fs:t,dir:e,gitdir:r}).readStashReflogs({parsed:!0})}async function UD({fs:t,dir:e,gitdir:r}){let n=new Wa({fs:t,dir:e,gitdir:r}),i=[n.refStashPath,n.refLogsStashPath];await vo(i,async()=>{await Promise.all(i.map(async a=>{if(await t.exists(a))return t.rm(a)}))})}async function GD({fs:t,dir:e,gitdir:r,refIdx:n=0}){await cE({fs:t,dir:e,gitdir:r,refIdx:n}),await uE({fs:t,dir:e,gitdir:r,refIdx:n})}async function fE({fs:t,dir:e,gitdir:r=F.join(e,".git"),op:n="push",message:i="",refIdx:a=0}){P("fs",t),P("dir",e),P("gitdir",r),P("op",n);let s={push:BD,apply:cE,drop:uE,list:HD,clear:UD,pop:GD},o=["apply","drop","pop"];try{let l=new Q(t);["refs","logs","logs/refs"].map(f=>F.join(r,f)).forEach(async f=>{await l.exists(f)||await l.mkdir(f)});let u=s[n];if(u){if(o.includes(n)&&a<0)throw new mn(`stash@${a}`,"number that is in range of [0, num of stash pushed]");return await u({fs:l,dir:e,gitdir:r,message:i,refIdx:a})}throw new Error(`To be implemented: ${n}`)}catch(l){throw l.caller="git.stash",l}}async function dE({fs:t,dir:e,gitdir:r=F.join(e,".git"),filepath:n,cache:i={}}){try{P("fs",t),P("gitdir",r),P("filepath",n);let a=new Q(t);if(await na.isIgnored({fs:a,gitdir:r,dir:e,filepath:n}))return"ignored";let o=await zD({fs:a,cache:i,gitdir:r}),l=await hE({fs:a,cache:i,gitdir:r,tree:o,path:n}),c=await ct.acquire({fs:a,gitdir:r,cache:i},async function(g){for(let v of g)if(v.path===n)return v;return null}),u=await a.lstat(F.join(e,n)),f=l!==null,d=c!==null,h=u!==null,p=async()=>{if(d&&!Tf(c,u))return c.oid;{let g=await a.read(F.join(e,n)),v=await iE({gitdir:r,type:"blob",object:g});return d&&c.oid===v&&u.size!==-1&&ct.acquire({fs:a,gitdir:r,cache:i},async function(y){y.insert({filepath:n,stats:u,oid:v})}),v}};if(!f&&!h&&!d)return"absent";if(!f&&!h&&d)return"*absent";if(!f&&h&&!d)return"*added";if(!f&&h&&d)return await p()===c.oid?"added":"*added";if(f&&!h&&!d)return"deleted";if(f&&!h&&d)return l===c.oid,"*deleted";if(f&&h&&!d)return await p()===l?"*undeleted":"*undeletemodified";if(f&&h&&d){let g=await p();return g===l?g===c.oid?"unmodified":"*unmodified":g===c.oid?"modified":"*modified"}}catch(a){throw a.caller="git.status",a}}async function hE({fs:t,cache:e,gitdir:r,tree:n,path:i}){typeof i=="string"&&(i=i.split("/"));let a=i.shift();for(let s of n)if(s.path===a){if(i.length===0)return s.oid;let{type:o,object:l}=await Ge({fs:t,cache:e,gitdir:r,oid:s.oid});if(o==="tree"){let c=hr.from(l);return hE({fs:t,cache:e,gitdir:r,tree:c,path:i})}if(o==="blob")throw new tr(s.oid,o,"blob",i.join("/"))}return null}async function zD({fs:t,cache:e,gitdir:r}){let n;try{n=await V.resolve({fs:t,gitdir:r,ref:"HEAD"})}catch(a){if(a instanceof je)return[]}let{tree:i}=await wo({fs:t,cache:e,gitdir:r,oid:n});return i}async function pE({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n="HEAD",filepaths:i=["."],filter:a,cache:s={},ignored:o=!1}){try{P("fs",t),P("gitdir",r),P("ref",n);let l=new Q(t);return await ra({fs:l,cache:s,dir:e,gitdir:r,trees:[Rr({ref:n}),yo(),Ya()],map:async function(c,[u,f,d]){if(!u&&!d&&f&&!o&&await na.isIgnored({fs:l,dir:e,filepath:c})||!i.some(k=>tS(c,k)))return null;if(a&&!a(c))return;let[h,p,g]=await Promise.all([u&&u.type(),f&&f.type(),d&&d.type()]),v=[h,p,g].includes("blob");if((h==="tree"||h==="special")&&!v)return;if(h==="commit")return null;if((p==="tree"||p==="special")&&!v)return;if(g==="commit")return null;if((g==="tree"||g==="special")&&!v)return;let y=h==="blob"?await u.oid():void 0,b=g==="blob"?await d.oid():void 0,E;h!=="blob"&&p==="blob"&&g!=="blob"?E="42":p==="blob"&&(E=await f.oid());let S=[void 0,y,E,b],A=S.map(k=>S.indexOf(k));return A.shift(),[c,...A]}})}catch(l){throw l.caller="git.statusMatrix",l}}async function mE({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n,object:i,force:a=!1}){try{P("fs",t),P("gitdir",r),P("ref",n);let s=new Q(t);if(n===void 0)throw new dr("ref");n=n.startsWith("refs/tags/")?n:`refs/tags/${n}`;let o=await V.resolve({fs:s,gitdir:r,ref:i||"HEAD"});if(!a&&await V.exists({fs:s,gitdir:r,ref:n}))throw new pn("tag",n);await V.writeRef({fs:s,gitdir:r,ref:n,value:o})}catch(s){throw s.caller="git.tag",s}}async function gE({fs:t,dir:e,gitdir:r=F.join(e,".git"),cache:n={},filepath:i,oid:a,mode:s,add:o,remove:l,force:c}){try{P("fs",t),P("gitdir",r),P("filepath",i);let u=new Q(t);if(l)return await ct.acquire({fs:u,gitdir:r,cache:n},async function(d){if(!c){let h=await u.lstat(F.join(e,i));if(h){if(h.isDirectory())throw new ta("directory");return}}d.has({filepath:i})&&d.delete({filepath:i})});let f;if(!a){if(f=await u.lstat(F.join(e,i)),!f)throw new je(`file at "${i}" on disk and "remove" not set`);if(f.isDirectory())throw new ta("directory")}return await ct.acquire({fs:u,gitdir:r,cache:n},async function(d){if(!o&&!d.has({filepath:i}))throw new je(`file at "${i}" in index and "add" not set`);let h;if(a)h={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:s,uid:0,gid:0,size:0};else{h=f;let p=h.isSymbolicLink()?await u.readlink(F.join(e,i)):await u.read(F.join(e,i));a=await mr({fs:u,gitdir:r,type:"blob",format:"content",object:p})}return d.insert({filepath:i,oid:a,stats:h}),a})}catch(u){throw u.caller="git.updateIndex",u}}function vE(){try{return Bf.version}catch(t){throw t.caller="git.version",t}}async function yE({fs:t,dir:e,gitdir:r=F.join(e,".git"),trees:n,map:i,reduce:a,iterate:s,cache:o={}}){try{return P("fs",t),P("gitdir",r),P("trees",n),await ra({fs:new Q(t),cache:o,dir:e,gitdir:r,trees:n,map:i,reduce:a,iterate:s})}catch(l){throw l.caller="git.walk",l}}async function wE({fs:t,dir:e,gitdir:r=F.join(e,".git"),blob:n}){try{return P("fs",t),P("gitdir",r),P("blob",n),await mr({fs:new Q(t),gitdir:r,type:"blob",object:n,format:"content"})}catch(i){throw i.caller="git.writeBlob",i}}async function bE({fs:t,dir:e,gitdir:r=F.join(e,".git"),commit:n}){try{return P("fs",t),P("gitdir",r),P("commit",n),await lE({fs:new Q(t),gitdir:r,commit:n})}catch(i){throw i.caller="git.writeCommit",i}}async function _E({fs:t,dir:e,gitdir:r=F.join(e,".git"),type:n,object:i,format:a="parsed",oid:s,encoding:o=void 0}){try{let l=new Q(t);if(a==="parsed"){switch(n){case"commit":i=pr.from(i).toObject();break;case"tree":i=hr.from(i).toObject();break;case"blob":i=Buffer.from(i,o);break;case"tag":i=Mr.from(i).toObject();break;default:throw new tr(s||"",n,"blob|commit|tag|tree")}a="content"}return s=await mr({fs:l,gitdir:r,type:n,object:i,oid:s,format:a}),s}catch(l){throw l.caller="git.writeObject",l}}async function xE({fs:t,dir:e,gitdir:r=F.join(e,".git"),ref:n,value:i,force:a=!1,symbolic:s=!1}){try{P("fs",t),P("gitdir",r),P("ref",n),P("value",i);let o=new Q(t);if(n!==zn.clean(n))throw new mn(n,zn.clean(n));if(!a&&await V.exists({fs:o,gitdir:r,ref:n}))throw new pn("ref",n);s?await V.writeSymbolicRef({fs:o,gitdir:r,ref:n,value:i}):(i=await V.resolve({fs:o,gitdir:r,ref:i}),await V.writeRef({fs:o,gitdir:r,ref:n,value:i}))}catch(o){throw o.caller="git.writeRef",o}}async function VD({fs:t,gitdir:e,tag:r}){let n=Mr.from(r).toObject();return await mr({fs:t,gitdir:e,type:"tag",object:n,format:"content"})}async function SE({fs:t,dir:e,gitdir:r=F.join(e,".git"),tag:n}){try{return P("fs",t),P("gitdir",r),P("tag",n),await VD({fs:new Q(t),gitdir:r,tag:n})}catch(i){throw i.caller="git.writeTag",i}}async function EE({fs:t,dir:e,gitdir:r=F.join(e,".git"),tree:n}){try{return P("fs",t),P("gitdir",r),P("tree",n),await cc({fs:new Q(t),gitdir:r,tree:n})}catch(i){throw i.caller="git.writeTree",i}}var qD={Errors:Bx,STAGE:Ya,TREE:Rr,WORKDIR:yo,add:Vx,abortMerge:Ux,addNote:Kx,addRemote:Jx,annotatedTag:Qx,branch:eS,checkout:dg,clone:sS,commit:oS,getConfig:xS,getConfigAll:SS,setConfig:oE,currentBranch:lS,deleteBranch:cS,deleteRef:uS,deleteRemote:fS,deleteTag:dS,expandOid:hS,expandRef:pS,fastForward:vS,fetch:yS,findMergeBase:wS,findRoot:_S,getRemoteInfo:ES,getRemoteInfo2:kS,hashBlob:TS,indexPack:CS,init:PS,isDescendent:MS,isIgnored:OS,listBranches:IS,listFiles:$S,listNotes:DS,listRefs:LS,listRemotes:jS,listServerRefs:NS,listTags:BS,log:US,merge:GS,packObjects:VS,pull:qS,push:WS,readBlob:KS,readCommit:mg,readNote:ZS,readObject:JS,readTag:QS,readTree:eE,remove:tE,removeNote:rE,renameBranch:nE,resetIndex:aE,updateIndex:gE,resolveRef:sE,status:dE,statusMatrix:pE,tag:mE,version:vE,walk:yE,writeBlob:wE,writeCommit:bE,writeObject:_E,writeRef:xE,writeTag:SE,writeTree:EE,stash:fE};Y.Errors=Bx;Y.STAGE=Ya;Y.TREE=Rr;Y.WORKDIR=yo;Y.abortMerge=Ux;Y.add=Vx;Y.addNote=Kx;Y.addRemote=Jx;Y.annotatedTag=Qx;Y.branch=eS;Y.checkout=dg;Y.clone=sS;Y.commit=oS;Y.currentBranch=lS;Y.default=qD;Y.deleteBranch=cS;Y.deleteRef=uS;Y.deleteRemote=fS;Y.deleteTag=dS;Y.expandOid=hS;Y.expandRef=pS;Y.fastForward=vS;Y.fetch=yS;Y.findMergeBase=wS;Y.findRoot=_S;Y.getConfig=xS;Y.getConfigAll=SS;Y.getRemoteInfo=ES;Y.getRemoteInfo2=kS;Y.hashBlob=TS;Y.indexPack=CS;Y.init=PS;Y.isDescendent=MS;Y.isIgnored=OS;Y.listBranches=IS;Y.listFiles=$S;Y.listNotes=DS;Y.listRefs=LS;Y.listRemotes=jS;Y.listServerRefs=NS;Y.listTags=BS;Y.log=US;Y.merge=GS;Y.packObjects=VS;Y.pull=qS;Y.push=WS;Y.readBlob=KS;Y.readCommit=mg;Y.readNote=ZS;Y.readObject=JS;Y.readTag=QS;Y.readTree=eE;Y.remove=tE;Y.removeNote=rE;Y.renameBranch=nE;Y.resetIndex=aE;Y.resolveRef=sE;Y.setConfig=oE;Y.stash=fE;Y.status=dE;Y.statusMatrix=pE;Y.tag=mE;Y.updateIndex=gE;Y.version=vE;Y.walk=yE;Y.writeBlob=wE;Y.writeCommit=bE;Y.writeObject=_E;Y.writeRef=xE;Y.writeTag=SE;Y.writeTree=EE});var kE=M((UY,AE)=>{m();var bo=1e3,_o=bo*60,xo=_o*60,Xa=xo*24,WD=Xa*7,YD=Xa*365.25;AE.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return XD(t);if(r==="number"&&isFinite(t))return e.long?ZD(t):KD(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function XD(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*YD;case"weeks":case"week":case"w":return r*WD;case"days":case"day":case"d":return r*Xa;case"hours":case"hour":case"hrs":case"hr":case"h":return r*xo;case"minutes":case"minute":case"mins":case"min":case"m":return r*_o;case"seconds":case"second":case"secs":case"sec":case"s":return r*bo;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function KD(t){var e=Math.abs(t);return e>=Xa?Math.round(t/Xa)+"d":e>=xo?Math.round(t/xo)+"h":e>=_o?Math.round(t/_o)+"m":e>=bo?Math.round(t/bo)+"s":t+"ms"}function ZD(t){var e=Math.abs(t);return e>=Xa?Hf(t,e,Xa,"day"):e>=xo?Hf(t,e,xo,"hour"):e>=_o?Hf(t,e,_o,"minute"):e>=bo?Hf(t,e,bo,"second"):t+" ms"}function Hf(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var CE=M((zY,TE)=>{m();function JD(t){r.debug=r,r.default=r,r.coerce=l,r.disable=s,r.enable=i,r.enabled=o,r.humanize=kE(),r.destroy=c,Object.keys(t).forEach(u=>{r[u]=t[u]}),r.names=[],r.skips=[],r.formatters={};function e(u){let f=0;for(let d=0;d{if(k==="%%")return"%";S++;let x=r.formatters[w];if(typeof x=="function"){let _=v[S];k=x.call(y,_),v.splice(S,1),S--}return k}),r.formatArgs.call(y,v),(y.log||r.log).apply(y,v)}return g.namespace=u,g.useColors=r.useColors(),g.color=r.selectColor(u),g.extend=n,g.destroy=r.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,p=r.enabled(u)),p),set:v=>{d=v}}),typeof r.init=="function"&&r.init(g),g}function n(u,f){let d=r(this.namespace+(typeof f=="undefined"?":":f)+u);return d.log=this.log,d}function i(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let d of f)d[0]==="-"?r.skips.push(d.slice(1)):r.names.push(d)}function a(u,f){let d=0,h=0,p=-1,g=0;for(;d"-"+f)].join(",");return r.enable(""),u}function o(u){for(let f of r.skips)if(a(u,f))return!1;for(let f of r.names)if(a(u,f))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}TE.exports=JD});var Gf=M((gr,Uf)=>{m();gr.formatArgs=eL;gr.save=tL;gr.load=rL;gr.useColors=QD;gr.storage=nL();gr.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();gr.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function QD(){if(typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function eL(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Uf.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}gr.log=console.debug||console.log||(()=>{});function tL(t){try{t?gr.storage.setItem("debug",t):gr.storage.removeItem("debug")}catch(e){}}function rL(){let t;try{t=gr.storage.getItem("debug")||gr.storage.getItem("DEBUG")}catch(e){}return!t&&typeof process!="undefined"&&"env"in process&&(t=process.env.DEBUG),t}function nL(){try{return localStorage}catch(t){}}Uf.exports=CE()(gr);var{formatters:iL}=Uf.exports;iL.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var PE=M(Or=>{"use strict";m();var aL=Or&&Or.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Or,"__esModule",{value:!0});var sL=require("fs"),oL=aL(Gf()),So=oL.default("@kwsites/file-exists");function lL(t,e,r){So("checking %s",t);try{let n=sL.statSync(t);return n.isFile()&&e?(So("[OK] path represents a file"),!0):n.isDirectory()&&r?(So("[OK] path represents a directory"),!0):(So("[FAIL] path represents something other than a file or directory"),!1)}catch(n){if(n.code==="ENOENT")return So("[FAIL] path is not accessible: %o",n),!1;throw So("[FATAL] %o",n),n}}function cL(t,e=Or.READABLE){return lL(t,(e&Or.FILE)>0,(e&Or.FOLDER)>0)}Or.exists=cL;Or.FILE=1;Or.FOLDER=2;Or.READABLE=Or.FILE+Or.FOLDER});var RE=M(zf=>{"use strict";m();function uL(t){for(var e in t)zf.hasOwnProperty(e)||(zf[e]=t[e])}Object.defineProperty(zf,"__esModule",{value:!0});uL(PE())});var yg=M(Ka=>{"use strict";m();Object.defineProperty(Ka,"__esModule",{value:!0});Ka.createDeferred=Ka.deferred=void 0;function vg(){let t,e,r="pending";return{promise:new Promise((i,a)=>{t=i,e=a}),done(i){r==="pending"&&(r="resolved",t(i))},fail(i){r==="pending"&&(r="rejected",e(i))},get fulfilled(){return r!=="pending"},get status(){return r}}}Ka.deferred=vg;Ka.createDeferred=vg;Ka.default=vg});var yT=M((FX,vT)=>{"use strict";m();vT.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var bT=M((DX,wT)=>{m();var c0={px:{px:1,cm:37.79527559055118,mm:3.7795275590551185,in:96,pt:1.3333333333333333,pc:16},cm:{px:.026458333333333334,cm:1,mm:.1,in:2.54,pt:.035277777777777776,pc:.42333333333333334},mm:{px:.26458333333333334,cm:10,mm:1,in:25.4,pt:.35277777777777775,pc:4.233333333333333},in:{px:.010416666666666666,cm:.39370078740157477,mm:.03937007874015748,in:1,pt:.013888888888888888,pc:.16666666666666666},pt:{px:.75,cm:28.346456692913385,mm:2.834645669291339,in:72,pt:1,pc:12},pc:{px:.0625,cm:2.3622047244094486,mm:.2362204724409449,in:6,pt:.08333333333333333,pc:1},deg:{deg:1,grad:.9,rad:180/Math.PI,turn:360},grad:{deg:1.1111111111111112,grad:1,rad:200/Math.PI,turn:400},rad:{deg:Math.PI/180,grad:Math.PI/200,rad:1,turn:Math.PI*2},turn:{deg:.002777777777777778,grad:.0025,rad:.5/Math.PI,turn:1},s:{s:1,ms:.001},ms:{s:1e3,ms:1},Hz:{Hz:1,kHz:1e3},kHz:{Hz:.001,kHz:1},dpi:{dpi:1,dpcm:.39370078740157477,dppx:.010416666666666666},dpcm:{dpi:2.54,dpcm:1,dppx:.026458333333333334},dppx:{dpi:96,dpcm:37.79527559055118,dppx:1}};wT.exports=function(t,e,r,n){if(!c0.hasOwnProperty(r))throw new Error("Cannot convert to "+r);if(!c0[r].hasOwnProperty(e))throw new Error("Cannot convert from "+e+" to "+r);var i=c0[r][e]*t;return n!==!1?(n=Math.pow(10,parseInt(n)||5),Math.round(i*n)/n):i}});var FT=M(xi=>{"use strict";m();Object.defineProperty(xi,"__esModule",{value:!0});xi.fromRgba=Po;xi.fromRgb=u0;xi.fromHsla=md;xi.fromHsl=OT;xi.fromString=IT;xi.default=void 0;var _T=ET(yT()),bB=ET(bT());function ET(t){return t&&t.__esModule?t:{default:t}}function _B(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function xT(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r-1}function TB(t,e,r){var n=t/255,i=e/255,a=r/255,s=Math.max(n,i,a),o=Math.min(n,i,a),l=s-o,c=(s+o)/2;if(l===0)return[0,0,c*100];var u=l/(1-Math.abs(2*c-1)),f=function(){switch(s){case n:return(i-a)/l%6;case i:return(a-n)/l+2;default:return(n-i)/l+4}}();return[f*60,u*100,c*100]}function CB(t,e,r){var n=t/60,i=e/100,a=r/100,s=(1-Math.abs(2*a-1))*i,o=s*(1-Math.abs(n%2-1)),l=a-s/2,c=function(){return n<1?[s,o,0]:n<2?[o,s,0]:n<3?[0,s,o]:n<4?[0,o,s]:n<5?[o,0,s]:[s,0,o]}(),u=nr(c,3),f=u[0],d=u[1],h=u[2];return[(f+l)*255,(d+l)*255,(h+l)*255]}var PB=function(){function t(e){var r=nr(e,4),n=r[0],i=r[1],a=r[2],s=r[3];_B(this,t),this.values=[Math.max(Math.min(parseInt(n,10),255),0),Math.max(Math.min(parseInt(i,10),255),0),Math.max(Math.min(parseInt(a,10),255),0),s==null?1:Math.max(Math.min(parseFloat(s),255),0)]}return xB(t,[{key:"toRgbString",value:function(){var r=nr(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3];return s===1?"rgb(".concat(n,", ").concat(i,", ").concat(a,")"):"rgba(".concat(n,", ").concat(i,", ").concat(a,", ").concat(s,")")}},{key:"toHslString",value:function(){var r=this.toHslaArray(),n=nr(r,4),i=n[0],a=n[1],s=n[2],o=n[3];return o===1?"hsl(".concat(i,", ").concat(a,"%, ").concat(s,"%)"):"hsla(".concat(i,", ").concat(a,"%, ").concat(s,"%, ").concat(o,")")}},{key:"toHexString",value:function(){var r=nr(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3];return n=Number(n).toString(16).padStart(2,"0"),i=Number(i).toString(16).padStart(2,"0"),a=Number(a).toString(16).padStart(2,"0"),s=s<1?parseInt(s*255,10).toString(16).padStart(2,"0"):"","#".concat(n).concat(i).concat(a).concat(s)}},{key:"toRgbaArray",value:function(){return this.values}},{key:"toHslaArray",value:function(){var r=nr(this.values,4),n=r[0],i=r[1],a=r[2],s=r[3],o=TB(n,i,a),l=nr(o,3),c=l[0],u=l[1],f=l[2];return[c,u,f,s]}}]),t}();function Po(t){var e=nr(t,4),r=e[0],n=e[1],i=e[2],a=e[3];return new PB([r,n,i,a])}function u0(t){var e=nr(t,3),r=e[0],n=e[1],i=e[2];return Po([r,n,i,1])}function md(t){var e=nr(t,4),r=e[0],n=e[1],i=e[2],a=e[3],s=CB(r,n,i),o=nr(s,3),l=o[0],c=o[1],u=o[2];return Po([l,c,u,a])}function OT(t){var e=nr(t,3),r=e[0],n=e[1],i=e[2];return md([r,n,i,1])}function RB(t){var e=AT.exec(t)||kT.exec(t),r=nr(e,5),n=r[1],i=r[2],a=r[3],s=r[4];return n=parseInt(n.length<2?n.repeat(2):n,16),i=parseInt(i.length<2?i.repeat(2):i,16),a=parseInt(a.length<2?a.repeat(2):a,16),s=s&&(parseInt(s.length<2?s.repeat(2):s,16)/255).toPrecision(1)||1,Po([n,i,a,s])}function MB(t){var e=TT.exec(t)||PT.exec(t)||CT.exec(t)||RT.exec(t),r=nr(e,5),n=r[1],i=r[2],a=r[3],s=r[4];return n=bc(n,"%")?parseInt(n,10)*255/100:parseInt(n,10),i=bc(i,"%")?parseInt(i,10)*255/100:parseInt(i,10),a=bc(a,"%")>0?parseInt(a,10)*255/100:parseInt(a,10),s=s===void 0?1:parseFloat(s)/(bc(s,"%")?100:1),Po([n,i,a,s])}function OB(t){var e=MT.exec(t),r=nr(e,6),n=r[1],i=r[2],a=r[3],s=r[4],o=r[5];return i=i||"deg",n=(0,bB.default)(parseFloat(n),i,"deg"),a=parseFloat(a),s=parseFloat(s),o=o===void 0?1:parseFloat(o)/(bc(o,"%")?100:1),md([n,a,s,o])}function IT(t){return _T.default[t]?u0(_T.default[t]):AT.test(t)||kT.test(t)?RB(t):TT.test(t)||PT.test(t)||CT.test(t)||RT.test(t)?MB(t):MT.test(t)?OB(t):null}var IB={fromString:IT,fromRgb:u0,fromRgba:Po,fromHsl:OT,fromHsla:md};xi.default=IB});var f0=M((BX,DT)=>{"use strict";m();var $T=Object.prototype.toString;DT.exports=function(e){var r=$T.call(e),n=r==="[object Arguments]";return n||(n=r!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&$T.call(e.callee)==="[object Function]"),n}});var VT=M((UX,zT)=>{"use strict";m();var GT;Object.keys||(_c=Object.prototype.hasOwnProperty,d0=Object.prototype.toString,LT=f0(),h0=Object.prototype.propertyIsEnumerable,jT=!h0.call({toString:null},"toString"),NT=h0.call(function(){},"prototype"),xc=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],gd=function(t){var e=t.constructor;return e&&e.prototype===t},BT={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},HT=function(){if(typeof window=="undefined")return!1;for(var t in window)try{if(!BT["$"+t]&&_c.call(window,t)&&window[t]!==null&&typeof window[t]=="object")try{gd(window[t])}catch(e){return!0}}catch(e){return!0}return!1}(),UT=function(t){if(typeof window=="undefined"||!HT)return gd(t);try{return gd(t)}catch(e){return!1}},GT=function(e){var r=e!==null&&typeof e=="object",n=d0.call(e)==="[object Function]",i=LT(e),a=r&&d0.call(e)==="[object String]",s=[];if(!r&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var o=NT&&n;if(a&&e.length>0&&!_c.call(e,0))for(var l=0;l0)for(var c=0;c{"use strict";m();var FB=Array.prototype.slice,$B=f0(),qT=Object.keys,vd=qT?function(e){return qT(e)}:VT(),WT=Object.keys;vd.shim=function(){if(Object.keys){var e=function(){var r=Object.keys(arguments);return r&&r.length===arguments.length}(1,2);e||(Object.keys=function(n){return $B(n)?WT(FB.call(n)):WT(n)})}else Object.keys=vd;return Object.keys||vd};YT.exports=vd});var fa=M((qX,JT)=>{"use strict";m();var DB=yd(),LB=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",jB=Object.prototype.toString,NB=Array.prototype.concat,XT=Qu(),BB=function(t){return typeof t=="function"&&jB.call(t)==="[object Function]"},KT=ef()(),HB=function(t,e,r,n){if(e in t){if(n===!0){if(t[e]===r)return}else if(!BB(n)||!n())return}KT?XT(t,e,r,!0):XT(t,e,r)},ZT=function(t,e){var r=arguments.length>2?arguments[2]:{},n=DB(e);LB&&(n=NB.call(n,Object.getOwnPropertySymbols(e)));for(var i=0;i{"use strict";m();var UB=yd(),eC=xl()(),tC=xt(),wd=Nu(),GB=tC("Array.prototype.push"),QT=tC("Object.prototype.propertyIsEnumerable"),zB=eC?wd.getOwnPropertySymbols:null;rC.exports=function(e,r){if(e==null)throw new TypeError("target must be an object");var n=wd(e);if(arguments.length===1)return n;for(var i=1;i{"use strict";m();var m0=p0(),VB=function(){if(!Object.assign)return!1;for(var t="abcdefghijklmnopqrst",e=t.split(""),r={},n=0;n{"use strict";m();var WB=fa(),YB=g0();iC.exports=function(){var e=YB();return WB(Object,{assign:e},{assign:function(){return Object.assign!==e}}),e}});var cC=M((eK,lC)=>{"use strict";m();var XB=fa(),KB=Fa(),ZB=p0(),sC=g0(),JB=aC(),QB=KB.apply(sC()),oC=function(e,r){return QB(Object,arguments)};XB(oC,{getPolyfill:sC,implementation:ZB,shim:JB});lC.exports=oC});var v0=M((rK,dC)=>{"use strict";m();var uC=Fn(),fC=Fa(),e7=fC(uC("String.prototype.indexOf"));dC.exports=function(e,r){var n=uC(e,!!r);return typeof n=="function"&&e7(e,".prototype.")>-1?fC(n):n}});var pC=M((iK,hC)=>{"use strict";m();var Ec=function(){return typeof function(){}.name=="string"},Sc=Object.getOwnPropertyDescriptor;if(Sc)try{Sc([],"length")}catch(t){Sc=null}Ec.functionsHaveConfigurableNames=function(){if(!Ec()||!Sc)return!1;var e=Sc(function(){},"name");return!!e&&!!e.configurable};var t7=Function.prototype.bind;Ec.boundFunctionsHaveNames=function(){return Ec()&&typeof t7=="function"&&function(){}.bind().name!==""};hC.exports=Ec});var vC=M((sK,gC)=>{"use strict";m();var mC=Qu(),r7=ef()(),n7=pC().functionsHaveConfigurableNames(),i7=ur();gC.exports=function(e,r){if(typeof e!="function")throw new i7("`fn` is not a function");var n=arguments.length>2&&!!arguments[2];return(!n||n7)&&(r7?mC(e,"name",r,!0,!0):mC(e,"name",r)),e}});var y0=M((lK,yC)=>{"use strict";m();var a7=vC(),s7=ur(),o7=Object;yC.exports=a7(function(){if(this==null||this!==o7(this))throw new s7("RegExp.prototype.flags getter called on non-object");var e="";return this.hasIndices&&(e+="d"),this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.unicodeSets&&(e+="v"),this.sticky&&(e+="y"),e},"get flags",!0)});var w0=M((uK,wC)=>{"use strict";m();var l7=y0(),c7=fa().supportsDescriptors,u7=Object.getOwnPropertyDescriptor;wC.exports=function(){if(c7&&/a/mig.flags==="gim"){var e=u7(RegExp.prototype,"flags");if(e&&typeof e.get=="function"&&"dotAll"in RegExp.prototype&&"hasIndices"in RegExp.prototype){var r="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){r+="d"}}),Object.defineProperty(n,"sticky",{get:function(){r+="y"}}),e.get.call(n),r==="dy")return e.get}}return l7}});var xC=M((dK,_C)=>{"use strict";m();var f7=fa().supportsDescriptors,d7=w0(),h7=Gi(),p7=Object.defineProperty,m7=Fp(),bC=Wu(),g7=/a/;_C.exports=function(){if(!f7||!bC)throw new m7("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=d7(),r=bC(g7),n=h7(r,"flags");return(!n||n.get!==e)&&p7(r,"flags",{configurable:!0,enumerable:!1,get:e}),e}});var kC=M((pK,AC)=>{"use strict";m();var v7=fa(),y7=Fa(),w7=y0(),SC=w0(),b7=xC(),EC=y7(SC());v7(EC,{getPolyfill:SC,implementation:w7,shim:b7});AC.exports=EC});var _0=M((gK,CC)=>{"use strict";m();var _7=zi()(),x7=xt(),b0=x7("Object.prototype.toString"),bd=function(e){return _7&&e&&typeof e=="object"&&Symbol.toStringTag in e?!1:b0(e)==="[object Arguments]"},TC=function(e){return bd(e)?!0:e!==null&&typeof e=="object"&&"length"in e&&typeof e.length=="number"&&e.length>=0&&b0(e)!=="[object Array]"&&"callee"in e&&b0(e.callee)==="[object Function]"},S7=function(){return bd(arguments)}();bd.isLegacyArguments=TC;CC.exports=S7?bd:TC});var PC=M(()=>{m()});var Pc=M((_K,XC)=>{m();var M0=typeof Map=="function"&&Map.prototype,x0=Object.getOwnPropertyDescriptor&&M0?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,xd=M0&&x0&&typeof x0.get=="function"?x0.get:null,RC=M0&&Map.prototype.forEach,O0=typeof Set=="function"&&Set.prototype,S0=Object.getOwnPropertyDescriptor&&O0?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Sd=O0&&S0&&typeof S0.get=="function"?S0.get:null,MC=O0&&Set.prototype.forEach,E7=typeof WeakMap=="function"&&WeakMap.prototype,kc=E7?WeakMap.prototype.has:null,A7=typeof WeakSet=="function"&&WeakSet.prototype,Tc=A7?WeakSet.prototype.has:null,k7=typeof WeakRef=="function"&&WeakRef.prototype,OC=k7?WeakRef.prototype.deref:null,T7=Boolean.prototype.valueOf,C7=Object.prototype.toString,P7=Function.prototype.toString,R7=String.prototype.match,I0=String.prototype.slice,da=String.prototype.replace,M7=String.prototype.toUpperCase,IC=String.prototype.toLowerCase,UC=RegExp.prototype.test,FC=Array.prototype.concat,Wn=Array.prototype.join,O7=Array.prototype.slice,$C=Math.floor,k0=typeof BigInt=="function"?BigInt.prototype.valueOf:null,E0=Object.getOwnPropertySymbols,T0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Ro=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Cc=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Ro||!0)?Symbol.toStringTag:null,GC=Object.prototype.propertyIsEnumerable,DC=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function LC(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||UC.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-$C(-t):$C(t);if(n!==t){var i=String(n),a=I0.call(e,i.length+1);return da.call(i,r,"$&_")+"."+da.call(da.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return da.call(e,r,"$&_")}var C0=PC(),jC=C0.custom,NC=qC(jC)?jC:null,zC={__proto__:null,double:'"',single:"'"},I7={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};XC.exports=function t(e,r,n,i){var a=r||{};if(Si(a,"quoteStyle")&&!Si(zC,a.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Si(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var s=Si(a,"customInspect")?a.customInspect:!0;if(typeof s!="boolean"&&s!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Si(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Si(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=a.numericSeparator;if(typeof e=="undefined")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return YC(e,a);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var l=String(e);return o?LC(e,l):l}if(typeof e=="bigint"){var c=String(e)+"n";return o?LC(e,c):c}var u=typeof a.depth=="undefined"?5:a.depth;if(typeof n=="undefined"&&(n=0),n>=u&&u>0&&typeof e=="object")return P0(e)?"[Array]":"[Object]";var f=Z7(a,n);if(typeof i=="undefined")i=[];else if(WC(i,e)>=0)return"[Circular]";function d(L,$,J){if($&&(i=O7.call(i),i.push($)),J){var de={depth:a.depth};return Si(a,"quoteStyle")&&(de.quoteStyle=a.quoteStyle),t(L,de,n+1,i)}return t(L,a,n+1,i)}if(typeof e=="function"&&!BC(e)){var h=U7(e),p=_d(e,d);return"[Function"+(h?": "+h:" (anonymous)")+"]"+(p.length>0?" { "+Wn.call(p,", ")+" }":"")}if(qC(e)){var g=Ro?da.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):T0.call(e);return typeof e=="object"&&!Ro?Ac(g):g}if(Y7(e)){for(var v="<"+IC.call(String(e.nodeName)),y=e.attributes||[],b=0;b",v}if(P0(e)){if(e.length===0)return"[]";var E=_d(e,d);return f&&!K7(E)?"["+R0(E,f)+"]":"[ "+Wn.call(E,", ")+" ]"}if(D7(e)){var S=_d(e,d);return!("cause"in Error.prototype)&&"cause"in e&&!GC.call(e,"cause")?"{ ["+String(e)+"] "+Wn.call(FC.call("[cause]: "+d(e.cause),S),", ")+" }":S.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Wn.call(S,", ")+" }"}if(typeof e=="object"&&s){if(NC&&typeof e[NC]=="function"&&C0)return C0(e,{depth:u-n});if(s!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(G7(e)){var A=[];return RC&&RC.call(e,function(L,$){A.push(d($,e,!0)+" => "+d(L,e))}),HC("Map",xd.call(e),A,f)}if(q7(e)){var k=[];return MC&&MC.call(e,function(L){k.push(d(L,e))}),HC("Set",Sd.call(e),k,f)}if(z7(e))return A0("WeakMap");if(W7(e))return A0("WeakSet");if(V7(e))return A0("WeakRef");if(j7(e))return Ac(d(Number(e)));if(B7(e))return Ac(d(k0.call(e)));if(N7(e))return Ac(T7.call(e));if(L7(e))return Ac(d(String(e)));if(typeof window!="undefined"&&e===window)return"{ [object Window] }";if(typeof globalThis!="undefined"&&e===globalThis||typeof global!="undefined"&&e===global)return"{ [object globalThis] }";if(!$7(e)&&!BC(e)){var w=_d(e,d),x=DC?DC(e)===Object.prototype:e instanceof Object||e.constructor===Object,_=e instanceof Object?"":"null prototype",T=!x&&Cc&&Object(e)===e&&Cc in e?I0.call(ha(e),8,-1):_?"Object":"",C=x||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",I=C+(T||_?"["+Wn.call(FC.call([],T||[],_||[]),": ")+"] ":"");return w.length===0?I+"{}":f?I+"{"+R0(w,f)+"}":I+"{ "+Wn.call(w,", ")+" }"}return String(e)};function VC(t,e,r){var n=r.quoteStyle||e,i=zC[n];return i+t+i}function F7(t){return da.call(String(t),/"/g,""")}function ts(t){return!Cc||!(typeof t=="object"&&(Cc in t||typeof t[Cc]!="undefined"))}function P0(t){return ha(t)==="[object Array]"&&ts(t)}function $7(t){return ha(t)==="[object Date]"&&ts(t)}function BC(t){return ha(t)==="[object RegExp]"&&ts(t)}function D7(t){return ha(t)==="[object Error]"&&ts(t)}function L7(t){return ha(t)==="[object String]"&&ts(t)}function j7(t){return ha(t)==="[object Number]"&&ts(t)}function N7(t){return ha(t)==="[object Boolean]"&&ts(t)}function qC(t){if(Ro)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!T0)return!1;try{return T0.call(t),!0}catch(e){}return!1}function B7(t){if(!t||typeof t!="object"||!k0)return!1;try{return k0.call(t),!0}catch(e){}return!1}var H7=Object.prototype.hasOwnProperty||function(t){return t in this};function Si(t,e){return H7.call(t,e)}function ha(t){return C7.call(t)}function U7(t){if(t.name)return t.name;var e=R7.call(P7.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function WC(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return YC(I0.call(t,0,e.maxStringLength),e)+n}var i=I7[e.quoteStyle||"single"];i.lastIndex=0;var a=da.call(da.call(t,i,"\\$1"),/[\x00-\x1f]/g,X7);return VC(a,"single",e)}function X7(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+M7.call(e.toString(16))}function Ac(t){return"Object("+t+")"}function A0(t){return t+" { ? }"}function HC(t,e,r,n){var i=n?R0(r,n):Wn.call(r,", ");return t+" ("+e+") {"+i+"}"}function K7(t){for(var e=0;e=0)return!1;return!0}function Z7(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=Wn.call(Array(t.indent+1)," ");else return null;return{base:r,prev:Wn.call(Array(e+1),r)}}function R0(t,e){if(t.length===0)return"";var r=` -`+e.prev+e.base;return r+Wn.call(t,","+r)+` -`+e.prev}function _d(t,e){var r=P0(t),n=[];if(r){n.length=t.length;for(var i=0;i{"use strict";m();var J7=Pc(),Q7=ur(),Ed=function(t,e,r){for(var n=t,i;(i=n.next)!=null;n=i)if(i.key===e)return n.next=i.next,r||(i.next=t.next,t.next=i),i},e9=function(t,e){if(t){var r=Ed(t,e);return r&&r.value}},t9=function(t,e,r){var n=Ed(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},r9=function(t,e){return t?!!Ed(t,e):!1},n9=function(t,e){if(t)return Ed(t,e,!0)};KC.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Q7("Side channel does not contain "+J7(n))},delete:function(n){var i=e&&e.next,a=n9(e,n);return a&&i&&i===a&&(e=void 0),!!a},get:function(n){return e9(e,n)},has:function(n){return r9(e,n)},set:function(n,i){e||(e={next:void 0}),t9(e,n,i)}};return r}});var F0=M((AK,QC)=>{"use strict";m();var i9=Fn(),Rc=xt(),a9=Pc(),s9=ur(),JC=i9("%Map%",!0),o9=Rc("Map.prototype.get",!0),l9=Rc("Map.prototype.set",!0),c9=Rc("Map.prototype.has",!0),u9=Rc("Map.prototype.delete",!0),f9=Rc("Map.prototype.size",!0);QC.exports=!!JC&&function(){var e,r={assert:function(n){if(!r.has(n))throw new s9("Side channel does not contain "+a9(n))},delete:function(n){if(e){var i=u9(e,n);return f9(e)===0&&(e=void 0),i}return!1},get:function(n){if(e)return o9(e,n)},has:function(n){return e?c9(e,n):!1},set:function(n,i){e||(e=new JC),l9(e,n,i)}};return r}});var tP=M((TK,eP)=>{"use strict";m();var d9=Fn(),kd=xt(),h9=Pc(),Ad=F0(),p9=ur(),Mo=d9("%WeakMap%",!0),m9=kd("WeakMap.prototype.get",!0),g9=kd("WeakMap.prototype.set",!0),v9=kd("WeakMap.prototype.has",!0),y9=kd("WeakMap.prototype.delete",!0);eP.exports=Mo?function(){var e,r,n={assert:function(i){if(!n.has(i))throw new p9("Side channel does not contain "+h9(i))},delete:function(i){if(Mo&&i&&(typeof i=="object"||typeof i=="function")){if(e)return y9(e,i)}else if(Ad&&r)return r.delete(i);return!1},get:function(i){return Mo&&i&&(typeof i=="object"||typeof i=="function")&&e?m9(e,i):r&&r.get(i)},has:function(i){return Mo&&i&&(typeof i=="object"||typeof i=="function")&&e?v9(e,i):!!r&&r.has(i)},set:function(i,a){Mo&&i&&(typeof i=="object"||typeof i=="function")?(e||(e=new Mo),g9(e,i,a)):Ad&&(r||(r=Ad()),r.set(i,a))}};return n}:Ad});var $0=M((PK,rP)=>{"use strict";m();var w9=ur(),b9=Pc(),_9=ZC(),x9=F0(),S9=tP(),E9=S9||x9||_9;rP.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new w9("Side channel does not contain "+b9(n))},delete:function(n){return!!e&&e.delete(n)},get:function(n){return e&&e.get(n)},has:function(n){return!!e&&e.has(n)},set:function(n,i){e||(e=E9()),e.set(n,i)}};return r}});var iP=M((MK,nP)=>{"use strict";m();var A9=Yu(),Mc=$0()(),Ei=ur(),D0={assert:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Ei("`O` is not an object");if(typeof e!="string")throw new Ei("`slot` must be a string");if(Mc.assert(t),!D0.has(t,e))throw new Ei("`"+e+"` is not present on `O`")},get:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Ei("`O` is not an object");if(typeof e!="string")throw new Ei("`slot` must be a string");var r=Mc.get(t);return r&&r["$"+e]},has:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Ei("`O` is not an object");if(typeof e!="string")throw new Ei("`slot` must be a string");var r=Mc.get(t);return!!r&&A9(r,"$"+e)},set:function(t,e,r){if(!t||typeof t!="object"&&typeof t!="function")throw new Ei("`O` is not an object");if(typeof e!="string")throw new Ei("`slot` must be a string");var n=Mc.get(t);n||(n={},Mc.set(t,n)),n["$"+e]=r}};Object.freeze&&Object.freeze(D0);nP.exports=D0});var oP=M((IK,sP)=>{"use strict";m();var Oc=iP(),k9=Bu(),aP=typeof StopIteration=="object"?StopIteration:null;sP.exports=function(e){if(!aP)throw new k9("this environment lacks StopIteration");Oc.set(e,"[[Done]]",!1);var r={next:function(){var i=Oc.get(this,"[[Iterator]]"),a=!!Oc.get(i,"[[Done]]");try{return{done:a,value:a?void 0:i.next()}}catch(s){if(Oc.set(i,"[[Done]]",!0),s!==aP)throw s;return{done:!0,value:void 0}}}};return Oc.set(r,"[[Iterator]]",e),r}});var L0=M(($K,cP)=>{"use strict";m();var lP=xt(),T9=lP("String.prototype.valueOf"),C9=function(e){try{return T9(e),!0}catch(r){return!1}},P9=lP("Object.prototype.toString"),R9="[object String]",M9=zi()();cP.exports=function(e){return typeof e=="string"?!0:!e||typeof e!="object"?!1:M9?C9(e):P9(e)===R9}});var N0=M((LK,dP)=>{"use strict";m();var j0=typeof Map=="function"&&Map.prototype?Map:null,O9=typeof Set=="function"&&Set.prototype?Set:null,Td;j0||(Td=function(e){return!1});var fP=j0?Map.prototype.has:null,uP=O9?Set.prototype.has:null;!Td&&!fP&&(Td=function(e){return!1});dP.exports=Td||function(e){if(!e||typeof e!="object")return!1;try{if(fP.call(e),uP)try{uP.call(e)}catch(r){return!0}return e instanceof j0}catch(r){}return!1}});var H0=M((NK,mP)=>{"use strict";m();var I9=typeof Map=="function"&&Map.prototype?Map:null,B0=typeof Set=="function"&&Set.prototype?Set:null,Cd;B0||(Cd=function(e){return!1});var hP=I9?Map.prototype.has:null,pP=B0?Set.prototype.has:null;!Cd&&!pP&&(Cd=function(e){return!1});mP.exports=Cd||function(e){if(!e||typeof e!="object")return!1;try{if(pP.call(e),hP)try{hP.call(e)}catch(r){return!0}return e instanceof B0}catch(r){}return!1}});var TP=M((HK,Md)=>{"use strict";m();var gP=_0(),vP=oP();Gu()()||xl()()?(Pd=Symbol.iterator,Md.exports=function(e){if(e!=null&&typeof e[Pd]!="undefined")return e[Pd]();if(gP(e))return Array.prototype[Pd].call(e)}):(yP=ju(),wP=L0(),U0=Fn(),bP=U0("%Map%",!0),_P=U0("%Set%",!0),Jr=v0(),G0=Jr("Array.prototype.push"),z0=Jr("String.prototype.charCodeAt"),xP=Jr("String.prototype.slice"),SP=function(e,r){var n=e.length;if(r+1>=n)return r+1;var i=z0(e,r);if(i<55296||i>56319)return r+1;var a=z0(e,r+1);return a<56320||a>57343?r+1:r+2},Rd=function(e){var r=0;return{next:function(){var i=r>=e.length,a;return i||(a=e[r],r+=1),{done:i,value:a}}}},V0=function(e,r){if(yP(e)||gP(e))return Rd(e);if(wP(e)){var n=0;return{next:function(){var a=SP(e,n),s=xP(e,n,a);return n=a,{done:a>e.length,value:s}}}}if(r&&typeof e["_es6-shim iterator_"]!="undefined")return e["_es6-shim iterator_"]()},!bP&&!_P?Md.exports=function(e){if(e!=null)return V0(e,!0)}:(EP=N0(),AP=H0(),q0=Jr("Map.prototype.forEach",!0),W0=Jr("Set.prototype.forEach",!0),(typeof process=="undefined"||!process.versions||!process.versions.node)&&(Y0=Jr("Map.prototype.iterator",!0),X0=Jr("Set.prototype.iterator",!0)),K0=Jr("Map.prototype.@@iterator",!0)||Jr("Map.prototype._es6-shim iterator_",!0),Z0=Jr("Set.prototype.@@iterator",!0)||Jr("Set.prototype._es6-shim iterator_",!0),kP=function(e){if(EP(e)){if(Y0)return vP(Y0(e));if(K0)return K0(e);if(q0){var r=[];return q0(e,function(i,a){G0(r,[a,i])}),Rd(r)}}if(AP(e)){if(X0)return vP(X0(e));if(Z0)return Z0(e);if(W0){var n=[];return W0(e,function(i){G0(n,i)}),Rd(n)}}},Md.exports=function(e){return kP(e)||V0(e)}));var Pd,yP,wP,U0,bP,_P,Jr,G0,z0,xP,SP,Rd,V0,EP,AP,q0,W0,Y0,X0,K0,Z0,kP});var J0=M((GK,PP)=>{"use strict";m();var CP=function(t){return t!==t};PP.exports=function(e,r){return e===0&&r===0?1/e===1/r:!!(e===r||CP(e)&&CP(r))}});var Q0=M((VK,RP)=>{"use strict";m();var F9=J0();RP.exports=function(){return typeof Object.is=="function"?Object.is:F9}});var OP=M((WK,MP)=>{"use strict";m();var $9=Q0(),D9=fa();MP.exports=function(){var e=$9();return D9(Object,{is:e},{is:function(){return Object.is!==e}}),e}});var DP=M((XK,$P)=>{"use strict";m();var L9=fa(),j9=Fa(),N9=J0(),IP=Q0(),B9=OP(),FP=j9(IP(),Object);L9(FP,{getPolyfill:IP,implementation:N9,shim:B9});$P.exports=FP});var tv=M((ZK,BP)=>{"use strict";m();var H9=Fa(),NP=xt(),U9=Fn(),ev=U9("%ArrayBuffer%",!0),Od=NP("ArrayBuffer.prototype.byteLength",!0),G9=NP("Object.prototype.toString"),LP=!!ev&&!Od&&new ev(0).slice,jP=!!LP&&H9(LP);BP.exports=Od||jP?function(e){if(!e||typeof e!="object")return!1;try{return Od?Od(e):jP(e,0),!0}catch(r){return!1}}:ev?function(e){return G9(e)==="[object ArrayBuffer]"}:function(e){return!1}});var GP=M((QK,UP)=>{"use strict";m();var HP=xt(),z9=HP("Date.prototype.getDay"),V9=function(e){try{return z9(e),!0}catch(r){return!1}},q9=HP("Object.prototype.toString"),W9="[object Date]",Y9=zi()();UP.exports=function(e){return typeof e!="object"||e===null?!1:Y9?V9(e):q9(e)===W9}});var av=M((tZ,YP)=>{"use strict";m();var zP=xt(),X9=zi()(),K9=Yu(),Z9=Gi(),iv;X9?(VP=zP("RegExp.prototype.exec"),rv={},Id=function(){throw rv},nv={toString:Id,valueOf:Id},typeof Symbol.toPrimitive=="symbol"&&(nv[Symbol.toPrimitive]=Id),iv=function(e){if(!e||typeof e!="object")return!1;var r=Z9(e,"lastIndex"),n=r&&K9(r,"value");if(!n)return!1;try{VP(e,nv)}catch(i){return i===rv}}):(qP=zP("Object.prototype.toString"),WP="[object RegExp]",iv=function(e){return!e||typeof e!="object"&&typeof e!="function"?!1:qP(e)===WP});var VP,rv,Id,nv,qP,WP;YP.exports=iv});var ZP=M((nZ,KP)=>{"use strict";m();var J9=xt(),XP=J9("SharedArrayBuffer.prototype.byteLength",!0);KP.exports=XP?function(e){if(!e||typeof e!="object")return!1;try{return XP(e),!0}catch(r){return!1}}:function(e){return!1}});var eR=M((aZ,QP)=>{"use strict";m();var JP=xt(),Q9=JP("Number.prototype.toString"),eH=function(e){try{return Q9(e),!0}catch(r){return!1}},tH=JP("Object.prototype.toString"),rH="[object Number]",nH=zi()();QP.exports=function(e){return typeof e=="number"?!0:!e||typeof e!="object"?!1:nH?eH(e):tH(e)===rH}});var nR=M((oZ,rR)=>{"use strict";m();var tR=xt(),iH=tR("Boolean.prototype.toString"),aH=tR("Object.prototype.toString"),sH=function(e){try{return iH(e),!0}catch(r){return!1}},oH="[object Boolean]",lH=zi()();rR.exports=function(e){return typeof e=="boolean"?!0:e===null||typeof e!="object"?!1:lH?sH(e):aH(e)===oH}});var aR=M((cZ,iR)=>{"use strict";m();var cH=xt(),uH=av(),fH=cH("RegExp.prototype.exec"),dH=ur();iR.exports=function(e){if(!uH(e))throw new dH("`regex` must be a RegExp");return function(n){return fH(e,n)!==null}}});var uR=M((fZ,sv)=>{"use strict";m();var cR=xt(),hH=cR("Object.prototype.toString"),pH=Gu()(),mH=aR();pH?(sR=cR("Symbol.prototype.toString"),oR=mH(/^Symbol\(.*\)$/),lR=function(e){return typeof e.valueOf()!="symbol"?!1:oR(sR(e))},sv.exports=function(e){if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||hH(e)!=="[object Symbol]")return!1;try{return lR(e)}catch(r){return!1}}):sv.exports=function(e){return!1};var sR,oR,lR});var hR=M((hZ,dR)=>{"use strict";m();var fR=typeof BigInt!="undefined"&&BigInt;dR.exports=function(){return typeof fR=="function"&&typeof BigInt=="function"&&typeof fR(42)=="bigint"&&typeof BigInt(42)=="bigint"}});var gR=M((mZ,ov)=>{"use strict";m();var gH=hR()();gH?(pR=BigInt.prototype.valueOf,mR=function(e){try{return pR.call(e),!0}catch(r){}return!1},ov.exports=function(e){return e===null||typeof e=="undefined"||typeof e=="boolean"||typeof e=="string"||typeof e=="number"||typeof e=="symbol"||typeof e=="function"?!1:typeof e=="bigint"?!0:mR(e)}):ov.exports=function(e){return!1};var pR,mR});var yR=M((vZ,vR)=>{"use strict";m();var vH=L0(),yH=eR(),wH=nR(),bH=uR(),_H=gR();vR.exports=function(e){if(e==null||typeof e!="object"&&typeof e!="function")return null;if(vH(e))return"String";if(yH(e))return"Number";if(wH(e))return"Boolean";if(bH(e))return"Symbol";if(_H(e))return"BigInt"}});var _R=M((wZ,bR)=>{"use strict";m();var Fd=typeof WeakMap=="function"&&WeakMap.prototype?WeakMap:null,wR=typeof WeakSet=="function"&&WeakSet.prototype?WeakSet:null,$d;Fd||($d=function(e){return!1});var cv=Fd?Fd.prototype.has:null,lv=wR?wR.prototype.has:null;!$d&&!cv&&($d=function(e){return!1});bR.exports=$d||function(e){if(!e||typeof e!="object")return!1;try{if(cv.call(e,cv),lv)try{lv.call(e,lv)}catch(r){return!0}return e instanceof Fd}catch(r){}return!1}});var SR=M((_Z,fv)=>{"use strict";m();var xH=Fn(),xR=xt(),SH=xH("%WeakSet%",!0),uv=xR("WeakSet.prototype.has",!0);uv?(Dd=xR("WeakMap.prototype.has",!0),fv.exports=function(e){if(!e||typeof e!="object")return!1;try{if(uv(e,uv),Dd)try{Dd(e,Dd)}catch(r){return!0}return e instanceof SH}catch(r){}return!1}):fv.exports=function(e){return!1};var Dd});var AR=M((SZ,ER)=>{"use strict";m();var EH=N0(),AH=H0(),kH=_R(),TH=SR();ER.exports=function(e){if(e&&typeof e=="object"){if(EH(e))return"Map";if(AH(e))return"Set";if(kH(e))return"WeakMap";if(TH(e))return"WeakSet"}return!1}});var CR=M((AZ,TR)=>{"use strict";m();var CH=xt(),kR=CH("ArrayBuffer.prototype.byteLength",!0),PH=tv();TR.exports=function(e){return PH(e)?kR?kR(e):e.byteLength:NaN}});var QR=M((TZ,JR)=>{"use strict";m();var XR=cC(),Yn=v0(),PR=kC(),RH=Fn(),Oo=TP(),MH=$0(),RR=DP(),MR=_0(),OR=ju(),IR=tv(),FR=GP(),$R=av(),DR=ZP(),LR=yd(),jR=yR(),NR=AR(),BR=Kp(),HR=CR(),UR=Yn("SharedArrayBuffer.prototype.byteLength",!0),GR=Yn("Date.prototype.getTime"),dv=Object.getPrototypeOf,zR=Yn("Object.prototype.toString"),jd=RH("%Set%",!0),hv=Yn("Map.prototype.has",!0),Nd=Yn("Map.prototype.get",!0),VR=Yn("Map.prototype.size",!0),Bd=Yn("Set.prototype.add",!0),KR=Yn("Set.prototype.delete",!0),Hd=Yn("Set.prototype.has",!0),Ld=Yn("Set.prototype.size",!0);function qR(t,e,r,n){for(var i=Oo(t),a;(a=i.next())&&!a.done;)if(gn(e,a.value,r,n))return KR(t,a.value),!0;return!1}function ZR(t){if(typeof t=="undefined")return null;if(typeof t!="object")return typeof t=="symbol"?!1:typeof t=="string"||typeof t=="number"?+t==+t:!0}function OH(t,e,r,n,i,a){var s=ZR(r);if(s!=null)return s;var o=Nd(e,s),l=XR({},i,{strict:!1});return typeof o=="undefined"&&!hv(e,s)||!gn(n,o,l,a)?!1:!hv(t,s)&&gn(n,o,l,a)}function IH(t,e,r){var n=ZR(r);return n!=null?n:Hd(e,n)&&!Hd(t,n)}function WR(t,e,r,n,i,a){for(var s=Oo(t),o,l;(o=s.next())&&!o.done;)if(l=o.value,gn(r,l,i,a)&&gn(n,Nd(e,l),i,a))return KR(t,l),!0;return!1}function gn(t,e,r,n){var i=r||{};if(i.strict?RR(t,e):t===e)return!0;var a=jR(t),s=jR(e);if(a!==s)return!1;if(!t||!e||typeof t!="object"&&typeof e!="object")return i.strict?RR(t,e):t==e;var o=n.has(t),l=n.has(e),c;if(o&&l){if(n.get(t)===n.get(e))return!0}else c={};return o||n.set(t,c),l||n.set(e,c),DH(t,e,i,n)}function YR(t){return!t||typeof t!="object"||typeof t.length!="number"||typeof t.copy!="function"||typeof t.slice!="function"||t.length>0&&typeof t[0]!="number"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))}function FH(t,e,r,n){if(Ld(t)!==Ld(e))return!1;for(var i=Oo(t),a=Oo(e),s,o,l;(s=i.next())&&!s.done;)if(s.value&&typeof s.value=="object")l||(l=new jd),Bd(l,s.value);else if(!Hd(e,s.value)){if(r.strict||!IH(t,e,s.value))return!1;l||(l=new jd),Bd(l,s.value)}if(l){for(;(o=a.next())&&!o.done;)if(o.value&&typeof o.value=="object"){if(!qR(l,o.value,r.strict,n))return!1}else if(!r.strict&&!Hd(t,o.value)&&!qR(l,o.value,r.strict,n))return!1;return Ld(l)===0}return!0}function $H(t,e,r,n){if(VR(t)!==VR(e))return!1;for(var i=Oo(t),a=Oo(e),s,o,l,c,u,f;(s=i.next())&&!s.done;)if(c=s.value[0],u=s.value[1],c&&typeof c=="object")l||(l=new jd),Bd(l,c);else if(f=Nd(e,c),typeof f=="undefined"&&!hv(e,c)||!gn(u,f,r,n)){if(r.strict||!OH(t,e,c,u,r,n))return!1;l||(l=new jd),Bd(l,c)}if(l){for(;(o=a.next())&&!o.done;)if(c=o.value[0],f=o.value[1],c&&typeof c=="object"){if(!WR(l,t,c,f,r,n))return!1}else if(!r.strict&&(!t.has(c)||!gn(Nd(t,c),f,r,n))&&!WR(l,t,c,f,XR({},r,{strict:!1}),n))return!1;return Ld(l)===0}return!0}function DH(t,e,r,n){var i,a;if(typeof t!=typeof e||t==null||e==null||zR(t)!==zR(e)||MR(t)!==MR(e))return!1;var s=OR(t),o=OR(e);if(s!==o)return!1;var l=t instanceof Error,c=e instanceof Error;if(l!==c||(l||c)&&(t.name!==e.name||t.message!==e.message))return!1;var u=$R(t),f=$R(e);if(u!==f||(u||f)&&(t.source!==e.source||PR(t)!==PR(e)))return!1;var d=FR(t),h=FR(e);if(d!==h||(d||h)&&GR(t)!==GR(e)||r.strict&&dv&&dv(t)!==dv(e))return!1;var p=BR(t),g=BR(e);if(p!==g)return!1;if(p||g){if(t.length!==e.length)return!1;for(i=0;i=0;i--)if(k[i]!=w[i])return!1;for(i=k.length-1;i>=0;i--)if(a=k[i],!gn(t[a],e[a],r,n))return!1;var x=NR(t),_=NR(e);return x!==_?!1:x==="Set"||_==="Set"?FH(t,e,r,n):x==="Map"?$H(t,e,r,n):!0}JR.exports=function(e,r,n){return gn(e,r,n,MH())}});var _v=M((exports,module)=>{m();(function(){"use strict";var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&typeof module=="object"&&module.exports,AMD=typeof define=="function"&&define.amd,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer!="undefined",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(t){return Object.prototype.toString.call(t)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(t){return typeof t=="object"&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t,e){return function(r){return new Sha256(e,!0).update(r)[t]()}},createMethod=function(t){var e=createOutputMethod("hex",t);NODE_JS&&(e=nodeWrap(e,t)),e.create=function(){return new Sha256(t)},e.update=function(i){return e.create().update(i)};for(var r=0;r>2]|=t[i]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|n&63)<=57344?(o[a>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<=64?(this.block=o[16],this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex;t[16]=this.block,t[e>>2]|=EXTRA[e&3],this.block=t[16],e>=56&&(this.hashed||this.hash(),t[0]=this.block,t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.hBytes<<3|this.bytes>>>29,t[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var t=this.h0,e=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,l=this.blocks,c,u,f,d,h,p,g,v,y,b,E;for(c=16;c<64;++c)h=l[c-15],u=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,h=l[c-2],f=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,l[c]=l[c-16]+u+l[c-7]+f<<0;for(E=e&r,c=0;c<64;c+=4)this.first?(this.is224?(v=300032,h=l[0]-1413257819,o=h-150054599<<0,n=h+24177077<<0):(v=704751109,h=l[0]-210244248,o=h-1521486534<<0,n=h+143694565<<0),this.first=!1):(u=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),f=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),v=t&e,d=v^t&r^E,g=i&a^~i&s,h=o+f+g+K[c]+l[c],p=u+d,o=n+h<<0,n=h+p<<0),u=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),f=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),y=n&t,d=y^n&e^v,g=o&i^~o&a,h=s+f+g+K[c+1]+l[c+1],p=u+d,s=r+h<<0,r=h+p<<0,u=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),f=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),b=r&n,d=b^r&t^y,g=s&o^~s&i,h=a+f+g+K[c+2]+l[c+2],p=u+d,a=e+h<<0,e=h+p<<0,u=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),f=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),E=e&r,d=E^e&n^b,g=a&s^~a&o,h=i+f+g+K[c+3]+l[c+3],p=u+d,i=t+h<<0,t=h+p<<0;this.h0=this.h0+t<<0,this.h1=this.h1+e<<0,this.h2=this.h2+r<<0,this.h3=this.h3+n<<0,this.h4=this.h4+i<<0,this.h5=this.h5+a<<0,this.h6=this.h6+s<<0,this.h7=this.h7+o<<0},Sha256.prototype.hex=function(){this.finalize();var t=this.h0,e=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,l=HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15];return this.is224||(l+=HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]),l},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var t=this.h0,e=this.h1,r=this.h2,n=this.h3,i=this.h4,a=this.h5,s=this.h6,o=this.h7,l=[t>>24&255,t>>16&255,t>>8&255,t&255,e>>24&255,e>>16&255,e>>8&255,e&255,r>>24&255,r>>16&255,r>>8&255,r&255,n>>24&255,n>>16&255,n>>8&255,n&255,i>>24&255,i>>16&255,i>>8&255,i&255,a>>24&255,a>>16&255,a>>8&255,a&255,s>>24&255,s>>16&255,s>>8&255,s&255];return this.is224||l.push(o>>24&255,o>>16&255,o>>8&255,o&255),l},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(this.is224?28:32),e=new DataView(t);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),t};function HmacSha256(t,e,r){var n,i=typeof t;if(i==="string"){var a=[],s=t.length,o=0,l;for(n=0;n>6,a[o++]=128|l&63):l<55296||l>=57344?(a[o++]=224|l>>12,a[o++]=128|l>>6&63,a[o++]=128|l&63):(l=65536+((l&1023)<<10|t.charCodeAt(++n)&1023),a[o++]=240|l>>18,a[o++]=128|l>>12&63,a[o++]=128|l>>6&63,a[o++]=128|l&63);t=a}else if(i==="object"){if(t===null)throw new Error(ERROR);if(ARRAY_BUFFER&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(t)))throw new Error(ERROR)}else throw new Error(ERROR);t.length>64&&(t=new Sha256(e,!0).update(t).array());var c=[],u=[];for(n=0;n<64;++n){var f=t[n]||0;c[n]=92^f,u[n]=54^f}Sha256.call(this,e,r),this.update(u),this.oKeyPad=c,this.inner=!0,this.sharedMemory=r}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(t),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&define(function(){return exports}))})()});var bM=M(Wv=>{m();(function(t){var e=/\S/,r=/\"/g,n=/\n/g,i=/\r/g,a=/\\/g,s=/\u2028/,o=/\u2029/;t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(x,_){var T=x.length,C=0,I=1,L=2,$=C,J=null,de=null,le="",ce=[],Te=!1,ne=0,N=0,W="{{",B="}}";function $e(){le.length>0&&(ce.push({tag:"_t",text:new String(le)}),le="")}function lr(){for(var Oe=!0,De=N;De"&&(Le.indent=ce[Pt].text.toString()),ce.splice(Pt,1));else De||ce.push({tag:` -`});Te=!1,N=ce.length}function X(Oe,De){var Pt="="+B,Le=Oe.indexOf(Pt,De),U=c(Oe.substring(Oe.indexOf("=",De)+1,Le)).split(" ");return W=U[0],B=U[U.length-1],Le+Pt.length-1}for(_&&(_=_.split(" "),W=_[0],B=_[1]),ne=0;ne0;){if($=w.shift(),L&&L.tag=="<"&&!($.tag in f))throw new Error("Illegal content in < super tag.");if(t.tags[$.tag]<=t.tags.$||h($,T))_.push($),$.nodes=d(w,$.tag,_,T);else if($.tag=="/"){if(_.length===0)throw new Error("Closing tag without opener: /"+$.n);if(I=_.pop(),$.n!=I.n&&!p($.n,I.n,T))throw new Error("Nesting error: "+I.n+" vs. "+$.n);return I.end=$.i,C}else $.tag==` -`&&($.last=w.length==0||w[0].tag==` -`);C.push($)}if(_.length>0)throw new Error("missing closing tag: "+_.pop().n);return C}function h(w,x){for(var _=0,T=x.length;_":S,"<":function(w,x){var _={partials:{},code:"",subs:{},inPartial:!0};t.walk(w.nodes,_);var T=x.partials[S(w,x)];T.subs=_.subs,T.partials=_.partials},$:function(w,x){var _={subs:{},code:"",partials:x.partials,prefix:w.n};t.walk(w.nodes,_),x.subs[w.n]=_.code,x.inPartial||(x.code+='t.sub("'+b(w.n)+'",c,p,i);')},"\n":function(w,x){x.code+=k('"\\n"'+(w.last?"":" + i"))},_v:function(w,x){x.code+="t.b(t.v(t."+E(w.n)+'("'+b(w.n)+'",c,p,0)));'},_t:function(w,x){x.code+=k('"'+b(w.text)+'"')},"{":A,"&":A};function A(w,x){x.code+="t.b(t.t(t."+E(w.n)+'("'+b(w.n)+'",c,p,0)));'}function k(w){return"t.b("+w+");"}t.walk=function(w,x){for(var _,T=0,C=w.length;T{m();var BU={};(function(t){t.Template=function(d,h,p,g){d=d||{},this.r=d.code||this.r,this.c=p,this.options=g||{},this.text=h||"",this.partials=d.partials||{},this.subs=d.subs||{},this.buf=""},t.Template.prototype={r:function(d,h,p){return""},v:u,t:c,render:function(h,p,g){return this.ri([h],p||{},g)},ri:function(d,h,p){return this.r(d,h,p)},ep:function(d,h){var p=this.partials[d],g=h[p.name];if(p.instance&&p.base==g)return p.instance;if(typeof g=="string"){if(!this.c)throw new Error("No compiler available.");g=this.c.compile(g,this.options)}if(!g)return null;if(this.partials[d].base=g,p.subs){h.stackText||(h.stackText={});for(key in p.subs)h.stackText[key]||(h.stackText[key]=this.activeSub!==void 0&&h.stackText[this.activeSub]?h.stackText[this.activeSub]:this.text);g=r(g,p.subs,p.partials,this.stackSubs,this.stackPartials,h.stackText)}return this.partials[d].instance=g,g},rp:function(d,h,p,g){var v=this.ep(d,p);return v?v.ri(h,p,g):""},rs:function(d,h,p){var g=d[d.length-1];if(!f(g)){p(d,h,this);return}for(var v=0;v=0;S--)if(y=h[S],v=e(d,y,E),v!==void 0){b=!0;break}return b?(!g&&typeof v=="function"&&(v=this.mv(v,h,p)),v):g?!1:""},ls:function(d,h,p,g,v){var y=this.options.delimiters;return this.options.delimiters=v,this.b(this.ct(c(d.call(h,g)),h,p)),this.options.delimiters=y,!1},ct:function(d,h,p){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(d,this.options).render(h,p)},b:function(d){this.buf+=d},fl:function(){var d=this.buf;return this.buf="",d},ms:function(d,h,p,g,v,y,b){var E,S=h[h.length-1],A=d.call(S);return typeof A=="function"?g?!0:(E=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(A,S,p,E.substring(v,y),b)):A},mv:function(d,h,p){var g=h[h.length-1],v=d.call(g);return typeof v=="function"?this.ct(c(v.call(g)),g,p):v},sub:function(d,h,p,g){var v=this.subs[d];v&&(this.activeSub=d,v(h,p,this,g),this.activeSub=!1)}};function e(d,h,p){var g;return h&&typeof h=="object"&&(h[d]!==void 0?g=h[d]:p&&h.get&&typeof h.get=="function"&&(g=h.get(d))),g}function r(d,h,p,g,v,y){function b(){}b.prototype=d;function E(){}E.prototype=d.subs;var S,A=new b;A.subs=new E,A.subsText={},A.buf="",g=g||{},A.stackSubs=g,A.subsText=y;for(S in h)g[S]||(g[S]=h[S]);for(S in g)A.subs[S]=g[S];v=v||{},A.stackPartials=v;for(S in p)v[S]||(v[S]=p[S]);for(S in v)A.partials[S]=v[S];return A}var n=/&/g,i=//g,s=/\'/g,o=/\"/g,l=/[&<>\"\']/;function c(d){return String(d==null?"":d)}function u(d){return d=c(d),l.test(d)?d.replace(n,"&").replace(i,"<").replace(a,">").replace(s,"'").replace(o,"""):d}var f=Array.isArray||function(d){return Object.prototype.toString.call(d)==="[object Array]"}})(typeof Yv!="undefined"?Yv:BU)});var Xv=M(($ee,xM)=>{m();var _h=bM();_h.Template=_M().Template;_h.template=_h.Template;xM.exports=_h});var R5=M((Eu,uy)=>{m();(function(e,r){typeof Eu=="object"&&typeof uy=="object"?uy.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Eu=="object"?Eu.feather=r():e.feather=r()})(typeof self!="undefined"?self:Eu,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},r.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=0)}({"./dist/icons.json":function(t){t.exports={activity:'',airplay:'',"alert-circle":'',"alert-octagon":'',"alert-triangle":'',"align-center":'',"align-justify":'',"align-left":'',"align-right":'',anchor:'',aperture:'',archive:'',"arrow-down-circle":'',"arrow-down-left":'',"arrow-down-right":'',"arrow-down":'',"arrow-left-circle":'',"arrow-left":'',"arrow-right-circle":'',"arrow-right":'',"arrow-up-circle":'',"arrow-up-left":'',"arrow-up-right":'',"arrow-up":'',"at-sign":'',award:'',"bar-chart-2":'',"bar-chart":'',"battery-charging":'',battery:'',"bell-off":'',bell:'',bluetooth:'',bold:'',"book-open":'',book:'',bookmark:'',box:'',briefcase:'',calendar:'',"camera-off":'',camera:'',cast:'',"check-circle":'',"check-square":'',check:'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',"chevrons-down":'',"chevrons-left":'',"chevrons-right":'',"chevrons-up":'',chrome:'',circle:'',clipboard:'',clock:'',"cloud-drizzle":'',"cloud-lightning":'',"cloud-off":'',"cloud-rain":'',"cloud-snow":'',cloud:'',code:'',codepen:'',codesandbox:'',coffee:'',columns:'',command:'',compass:'',copy:'',"corner-down-left":'',"corner-down-right":'',"corner-left-down":'',"corner-left-up":'',"corner-right-down":'',"corner-right-up":'',"corner-up-left":'',"corner-up-right":'',cpu:'',"credit-card":'',crop:'',crosshair:'',database:'',delete:'',disc:'',"divide-circle":'',"divide-square":'',divide:'',"dollar-sign":'',"download-cloud":'',download:'',dribbble:'',droplet:'',"edit-2":'',"edit-3":'',edit:'',"external-link":'',"eye-off":'',eye:'',facebook:'',"fast-forward":'',feather:'',figma:'',"file-minus":'',"file-plus":'',"file-text":'',file:'',film:'',filter:'',flag:'',"folder-minus":'',"folder-plus":'',folder:'',framer:'',frown:'',gift:'',"git-branch":'',"git-commit":'',"git-merge":'',"git-pull-request":'',github:'',gitlab:'',globe:'',grid:'',"hard-drive":'',hash:'',headphones:'',heart:'',"help-circle":'',hexagon:'',home:'',image:'',inbox:'',info:'',instagram:'',italic:'',key:'',layers:'',layout:'',"life-buoy":'',"link-2":'',link:'',linkedin:'',list:'',loader:'',lock:'',"log-in":'',"log-out":'',mail:'',"map-pin":'',map:'',"maximize-2":'',maximize:'',meh:'',menu:'',"message-circle":'',"message-square":'',"mic-off":'',mic:'',"minimize-2":'',minimize:'',"minus-circle":'',"minus-square":'',minus:'',monitor:'',moon:'',"more-horizontal":'',"more-vertical":'',"mouse-pointer":'',move:'',music:'',"navigation-2":'',navigation:'',octagon:'',package:'',paperclip:'',"pause-circle":'',pause:'',"pen-tool":'',percent:'',"phone-call":'',"phone-forwarded":'',"phone-incoming":'',"phone-missed":'',"phone-off":'',"phone-outgoing":'',phone:'',"pie-chart":'',"play-circle":'',play:'',"plus-circle":'',"plus-square":'',plus:'',pocket:'',power:'',printer:'',radio:'',"refresh-ccw":'',"refresh-cw":'',repeat:'',rewind:'',"rotate-ccw":'',"rotate-cw":'',rss:'',save:'',scissors:'',search:'',send:'',server:'',settings:'',"share-2":'',share:'',"shield-off":'',shield:'',"shopping-bag":'',"shopping-cart":'',shuffle:'',sidebar:'',"skip-back":'',"skip-forward":'',slack:'',slash:'',sliders:'',smartphone:'',smile:'',speaker:'',square:'',star:'',"stop-circle":'',sun:'',sunrise:'',sunset:'',table:'',tablet:'',tag:'',target:'',terminal:'',thermometer:'',"thumbs-down":'',"thumbs-up":'',"toggle-left":'',"toggle-right":'',tool:'',"trash-2":'',trash:'',trello:'',"trending-down":'',"trending-up":'',triangle:'',truck:'',tv:'',twitch:'',twitter:'',type:'',umbrella:'',underline:'',unlock:'',"upload-cloud":'',upload:'',"user-check":'',"user-minus":'',"user-plus":'',"user-x":'',user:'',users:'',"video-off":'',video:'',voicemail:'',"volume-1":'',"volume-2":'',"volume-x":'',volume:'',watch:'',"wifi-off":'',wifi:'',wind:'',"x-circle":'',"x-octagon":'',"x-square":'',x:'',youtube:'',"zap-off":'',zap:'',"zoom-in":'',"zoom-out":''}},"./node_modules/classnames/dedupe.js":function(t,e,r){var n,i;(function(){"use strict";var a=function(){function s(){}s.prototype=Object.create(null);function o(g,v){for(var y=v.length,b=0;b1?arguments[1]:void 0,v=g!==void 0,y=0,b=c(d),E,S,A,k;if(v&&(g=n(g,p>2?arguments[2]:void 0,2)),b!=null&&!(h==Array&&s(b)))for(k=b.call(d),S=new h;!(A=k.next()).done;y++)l(S,y,v?a(k,g,[A.value,y],!0):A.value);else for(E=o(d.length),S=new h(E);E>y;y++)l(S,y,v?g(d[y],y):d[y]);return S.length=y,S}},"./node_modules/core-js/internals/array-includes.js":function(t,e,r){var n=r("./node_modules/core-js/internals/to-indexed-object.js"),i=r("./node_modules/core-js/internals/to-length.js"),a=r("./node_modules/core-js/internals/to-absolute-index.js");t.exports=function(s){return function(o,l,c){var u=n(o),f=i(u.length),d=a(c,f),h;if(s&&l!=l){for(;f>d;)if(h=u[d++],h!=h)return!0}else for(;f>d;d++)if((s||d in u)&&u[d]===l)return s||d||0;return!s&&-1}}},"./node_modules/core-js/internals/bind-context.js":function(t,e,r){var n=r("./node_modules/core-js/internals/a-function.js");t.exports=function(i,a,s){if(n(i),a===void 0)return i;switch(s){case 0:return function(){return i.call(a)};case 1:return function(o){return i.call(a,o)};case 2:return function(o,l){return i.call(a,o,l)};case 3:return function(o,l,c){return i.call(a,o,l,c)}}return function(){return i.apply(a,arguments)}}},"./node_modules/core-js/internals/call-with-safe-iteration-closing.js":function(t,e,r){var n=r("./node_modules/core-js/internals/an-object.js");t.exports=function(i,a,s,o){try{return o?a(n(s)[0],s[1]):a(s)}catch(c){var l=i.return;throw l!==void 0&&n(l.call(i)),c}}},"./node_modules/core-js/internals/check-correctness-of-iteration.js":function(t,e,r){var n=r("./node_modules/core-js/internals/well-known-symbol.js"),i=n("iterator"),a=!1;try{var s=0,o={next:function(){return{done:!!s++}},return:function(){a=!0}};o[i]=function(){return this},Array.from(o,function(){throw 2})}catch(l){}t.exports=function(l,c){if(!c&&!a)return!1;var u=!1;try{var f={};f[i]=function(){return{next:function(){return{done:u=!0}}}},l(f)}catch(d){}return u}},"./node_modules/core-js/internals/classof-raw.js":function(t,e){var r={}.toString;t.exports=function(n){return r.call(n).slice(8,-1)}},"./node_modules/core-js/internals/classof.js":function(t,e,r){var n=r("./node_modules/core-js/internals/classof-raw.js"),i=r("./node_modules/core-js/internals/well-known-symbol.js"),a=i("toStringTag"),s=n(function(){return arguments}())=="Arguments",o=function(l,c){try{return l[c]}catch(u){}};t.exports=function(l){var c,u,f;return l===void 0?"Undefined":l===null?"Null":typeof(u=o(c=Object(l),a))=="string"?u:s?n(c):(f=n(c))=="Object"&&typeof c.callee=="function"?"Arguments":f}},"./node_modules/core-js/internals/copy-constructor-properties.js":function(t,e,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/own-keys.js"),a=r("./node_modules/core-js/internals/object-get-own-property-descriptor.js"),s=r("./node_modules/core-js/internals/object-define-property.js");t.exports=function(o,l){for(var c=i(l),u=s.f,f=a.f,d=0;d",E="java"+y+":",S;for(p.style.display="none",o.appendChild(p),p.src=String(E),S=p.contentWindow.document,S.open(),S.write(v+y+b+"document.F=Object"+v+"/"+y+b),S.close(),h=S.F;g--;)delete h[f][a[g]];return h()};t.exports=Object.create||function(g,v){var y;return g!==null?(d[f]=n(g),y=new d,d[f]=null,y[u]=g):y=h(),v===void 0?y:i(y,v)},s[u]=!0},"./node_modules/core-js/internals/object-define-properties.js":function(t,e,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/object-define-property.js"),a=r("./node_modules/core-js/internals/an-object.js"),s=r("./node_modules/core-js/internals/object-keys.js");t.exports=n?Object.defineProperties:function(l,c){a(l);for(var u=s(c),f=u.length,d=0,h;f>d;)i.f(l,h=u[d++],c[h]);return l}},"./node_modules/core-js/internals/object-define-property.js":function(t,e,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/ie8-dom-define.js"),a=r("./node_modules/core-js/internals/an-object.js"),s=r("./node_modules/core-js/internals/to-primitive.js"),o=Object.defineProperty;e.f=n?o:function(c,u,f){if(a(c),u=s(u,!0),a(f),i)try{return o(c,u,f)}catch(d){}if("get"in f||"set"in f)throw TypeError("Accessors not supported");return"value"in f&&(c[u]=f.value),c}},"./node_modules/core-js/internals/object-get-own-property-descriptor.js":function(t,e,r){var n=r("./node_modules/core-js/internals/descriptors.js"),i=r("./node_modules/core-js/internals/object-property-is-enumerable.js"),a=r("./node_modules/core-js/internals/create-property-descriptor.js"),s=r("./node_modules/core-js/internals/to-indexed-object.js"),o=r("./node_modules/core-js/internals/to-primitive.js"),l=r("./node_modules/core-js/internals/has.js"),c=r("./node_modules/core-js/internals/ie8-dom-define.js"),u=Object.getOwnPropertyDescriptor;e.f=n?u:function(d,h){if(d=s(d),h=o(h,!0),c)try{return u(d,h)}catch(p){}if(l(d,h))return a(!i.f.call(d,h),d[h])}},"./node_modules/core-js/internals/object-get-own-property-names.js":function(t,e,r){var n=r("./node_modules/core-js/internals/object-keys-internal.js"),i=r("./node_modules/core-js/internals/enum-bug-keys.js"),a=i.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(o){return n(o,a)}},"./node_modules/core-js/internals/object-get-own-property-symbols.js":function(t,e){e.f=Object.getOwnPropertySymbols},"./node_modules/core-js/internals/object-get-prototype-of.js":function(t,e,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/to-object.js"),a=r("./node_modules/core-js/internals/shared-key.js"),s=r("./node_modules/core-js/internals/correct-prototype-getter.js"),o=a("IE_PROTO"),l=Object.prototype;t.exports=s?Object.getPrototypeOf:function(c){return c=i(c),n(c,o)?c[o]:typeof c.constructor=="function"&&c instanceof c.constructor?c.constructor.prototype:c instanceof Object?l:null}},"./node_modules/core-js/internals/object-keys-internal.js":function(t,e,r){var n=r("./node_modules/core-js/internals/has.js"),i=r("./node_modules/core-js/internals/to-indexed-object.js"),a=r("./node_modules/core-js/internals/array-includes.js"),s=r("./node_modules/core-js/internals/hidden-keys.js"),o=a(!1);t.exports=function(l,c){var u=i(l),f=0,d=[],h;for(h in u)!n(s,h)&&n(u,h)&&d.push(h);for(;c.length>f;)n(u,h=c[f++])&&(~o(d,h)||d.push(h));return d}},"./node_modules/core-js/internals/object-keys.js":function(t,e,r){var n=r("./node_modules/core-js/internals/object-keys-internal.js"),i=r("./node_modules/core-js/internals/enum-bug-keys.js");t.exports=Object.keys||function(s){return n(s,i)}},"./node_modules/core-js/internals/object-property-is-enumerable.js":function(t,e,r){"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,a=i&&!n.call({1:2},1);e.f=a?function(o){var l=i(this,o);return!!l&&l.enumerable}:n},"./node_modules/core-js/internals/object-set-prototype-of.js":function(t,e,r){var n=r("./node_modules/core-js/internals/validate-set-prototype-of-arguments.js");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var i=!1,a={},s;try{s=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,s.call(a,[]),i=a instanceof Array}catch(o){}return function(l,c){return n(l,c),i?s.call(l,c):l.__proto__=c,l}}():void 0)},"./node_modules/core-js/internals/own-keys.js":function(t,e,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/object-get-own-property-names.js"),a=r("./node_modules/core-js/internals/object-get-own-property-symbols.js"),s=r("./node_modules/core-js/internals/an-object.js"),o=n.Reflect;t.exports=o&&o.ownKeys||function(c){var u=i.f(s(c)),f=a.f;return f?u.concat(f(c)):u}},"./node_modules/core-js/internals/path.js":function(t,e,r){t.exports=r("./node_modules/core-js/internals/global.js")},"./node_modules/core-js/internals/redefine.js":function(t,e,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/shared.js"),a=r("./node_modules/core-js/internals/hide.js"),s=r("./node_modules/core-js/internals/has.js"),o=r("./node_modules/core-js/internals/set-global.js"),l=r("./node_modules/core-js/internals/function-to-string.js"),c=r("./node_modules/core-js/internals/internal-state.js"),u=c.get,f=c.enforce,d=String(l).split("toString");i("inspectSource",function(h){return l.call(h)}),(t.exports=function(h,p,g,v){var y=v?!!v.unsafe:!1,b=v?!!v.enumerable:!1,E=v?!!v.noTargetGet:!1;if(typeof g=="function"&&(typeof p=="string"&&!s(g,"name")&&a(g,"name",p),f(g).source=d.join(typeof p=="string"?p:"")),h===n){b?h[p]=g:o(p,g);return}else y?!E&&h[p]&&(b=!0):delete h[p];b?h[p]=g:a(h,p,g)})(Function.prototype,"toString",function(){return typeof this=="function"&&u(this).source||l.call(this)})},"./node_modules/core-js/internals/require-object-coercible.js":function(t,e){t.exports=function(r){if(r==null)throw TypeError("Can't call method on "+r);return r}},"./node_modules/core-js/internals/set-global.js":function(t,e,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/hide.js");t.exports=function(a,s){try{i(n,a,s)}catch(o){n[a]=s}return s}},"./node_modules/core-js/internals/set-to-string-tag.js":function(t,e,r){var n=r("./node_modules/core-js/internals/object-define-property.js").f,i=r("./node_modules/core-js/internals/has.js"),a=r("./node_modules/core-js/internals/well-known-symbol.js"),s=a("toStringTag");t.exports=function(o,l,c){o&&!i(o=c?o:o.prototype,s)&&n(o,s,{configurable:!0,value:l})}},"./node_modules/core-js/internals/shared-key.js":function(t,e,r){var n=r("./node_modules/core-js/internals/shared.js"),i=r("./node_modules/core-js/internals/uid.js"),a=n("keys");t.exports=function(s){return a[s]||(a[s]=i(s))}},"./node_modules/core-js/internals/shared.js":function(t,e,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/set-global.js"),a=r("./node_modules/core-js/internals/is-pure.js"),s="__core-js_shared__",o=n[s]||i(s,{});(t.exports=function(l,c){return o[l]||(o[l]=c!==void 0?c:{})})("versions",[]).push({version:"3.1.3",mode:a?"pure":"global",copyright:"\xA9 2019 Denis Pushkarev (zloirock.ru)"})},"./node_modules/core-js/internals/string-at.js":function(t,e,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=r("./node_modules/core-js/internals/require-object-coercible.js");t.exports=function(a,s,o){var l=String(i(a)),c=n(s),u=l.length,f,d;return c<0||c>=u?o?"":void 0:(f=l.charCodeAt(c),f<55296||f>56319||c+1===u||(d=l.charCodeAt(c+1))<56320||d>57343?o?l.charAt(c):f:o?l.slice(c,c+2):(f-55296<<10)+(d-56320)+65536)}},"./node_modules/core-js/internals/to-absolute-index.js":function(t,e,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=Math.max,a=Math.min;t.exports=function(s,o){var l=n(s);return l<0?i(l+o,0):a(l,o)}},"./node_modules/core-js/internals/to-indexed-object.js":function(t,e,r){var n=r("./node_modules/core-js/internals/indexed-object.js"),i=r("./node_modules/core-js/internals/require-object-coercible.js");t.exports=function(a){return n(i(a))}},"./node_modules/core-js/internals/to-integer.js":function(t,e){var r=Math.ceil,n=Math.floor;t.exports=function(i){return isNaN(i=+i)?0:(i>0?n:r)(i)}},"./node_modules/core-js/internals/to-length.js":function(t,e,r){var n=r("./node_modules/core-js/internals/to-integer.js"),i=Math.min;t.exports=function(a){return a>0?i(n(a),9007199254740991):0}},"./node_modules/core-js/internals/to-object.js":function(t,e,r){var n=r("./node_modules/core-js/internals/require-object-coercible.js");t.exports=function(i){return Object(n(i))}},"./node_modules/core-js/internals/to-primitive.js":function(t,e,r){var n=r("./node_modules/core-js/internals/is-object.js");t.exports=function(i,a){if(!n(i))return i;var s,o;if(a&&typeof(s=i.toString)=="function"&&!n(o=s.call(i))||typeof(s=i.valueOf)=="function"&&!n(o=s.call(i))||!a&&typeof(s=i.toString)=="function"&&!n(o=s.call(i)))return o;throw TypeError("Can't convert object to primitive value")}},"./node_modules/core-js/internals/uid.js":function(t,e){var r=0,n=Math.random();t.exports=function(i){return"Symbol(".concat(i===void 0?"":i,")_",(++r+n).toString(36))}},"./node_modules/core-js/internals/validate-set-prototype-of-arguments.js":function(t,e,r){var n=r("./node_modules/core-js/internals/is-object.js"),i=r("./node_modules/core-js/internals/an-object.js");t.exports=function(a,s){if(i(a),!n(s)&&s!==null)throw TypeError("Can't set "+String(s)+" as a prototype")}},"./node_modules/core-js/internals/well-known-symbol.js":function(t,e,r){var n=r("./node_modules/core-js/internals/global.js"),i=r("./node_modules/core-js/internals/shared.js"),a=r("./node_modules/core-js/internals/uid.js"),s=r("./node_modules/core-js/internals/native-symbol.js"),o=n.Symbol,l=i("wks");t.exports=function(c){return l[c]||(l[c]=s&&o[c]||(s?o:a)("Symbol."+c))}},"./node_modules/core-js/modules/es.array.from.js":function(t,e,r){var n=r("./node_modules/core-js/internals/export.js"),i=r("./node_modules/core-js/internals/array-from.js"),a=r("./node_modules/core-js/internals/check-correctness-of-iteration.js"),s=!a(function(o){Array.from(o)});n({target:"Array",stat:!0,forced:s},{from:i})},"./node_modules/core-js/modules/es.string.iterator.js":function(t,e,r){"use strict";var n=r("./node_modules/core-js/internals/string-at.js"),i=r("./node_modules/core-js/internals/internal-state.js"),a=r("./node_modules/core-js/internals/define-iterator.js"),s="String Iterator",o=i.set,l=i.getterFor(s);a(String,"String",function(c){o(this,{type:s,string:String(c),index:0})},function(){var u=l(this),f=u.string,d=u.index,h;return d>=f.length?{value:void 0,done:!0}:(h=n(f,d,!0),u.index+=h.length,{value:h,done:!1})})},"./node_modules/webpack/buildin/global.js":function(t,e){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(n){typeof window=="object"&&(r=window)}t.exports=r},"./src/default-attrs.json":function(t){t.exports={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"}},"./src/icon.js":function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=Object.assign||function(h){for(var p=1;p2&&arguments[2]!==void 0?arguments[2]:[];u(this,h),this.name=p,this.contents=g,this.tags=v,this.attrs=n({},l.default,{class:"feather feather-"+p})}return i(h,[{key:"toSvg",value:function(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=n({},this.attrs,g,{class:(0,s.default)(this.attrs.class,g.class)});return""+this.contents+""}},{key:"toString",value:function(){return this.contents}}]),h}();function d(h){return Object.keys(h).map(function(p){return p+'="'+h[p]+'"'}).join(" ")}e.default=f},"./src/icons.js":function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r("./src/icon.js"),i=c(n),a=r("./dist/icons.json"),s=c(a),o=r("./src/tags.json"),l=c(o);function c(u){return u&&u.__esModule?u:{default:u}}e.default=Object.keys(s.default).map(function(u){return new i.default(u,s.default[u],l.default[u])}).reduce(function(u,f){return u[f.name]=f,u},{})},"./src/index.js":function(t,e,r){"use strict";var n=r("./src/icons.js"),i=c(n),a=r("./src/to-svg.js"),s=c(a),o=r("./src/replace.js"),l=c(o);function c(u){return u&&u.__esModule?u:{default:u}}t.exports={icons:i.default,toSvg:s.default,replace:l.default}},"./src/replace.js":function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=Object.assign||function(d){for(var h=1;h0&&arguments[0]!==void 0?arguments[0]:{};if(typeof document=="undefined")throw new Error("`feather.replace()` only works in a browser environment.");var h=document.querySelectorAll("[data-feather]");Array.from(h).forEach(function(p){return u(p,d)})}function u(d){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=f(d),g=p["data-feather"];if(delete p["data-feather"],o.default[g]===void 0){console.warn("feather: '"+g+"' is not a valid icon");return}var v=o.default[g].toSvg(n({},h,p,{class:(0,a.default)(h.class,p.class)})),y=new DOMParser().parseFromString(v,"image/svg+xml"),b=y.querySelector("svg");d.parentNode.replaceChild(b,d)}function f(d){return Array.from(d.attributes).reduce(function(h,p){return h[p.name]=p.value,h},{})}e.default=c},"./src/tags.json":function(t){t.exports={activity:["pulse","health","action","motion"],airplay:["stream","cast","mirroring"],"alert-circle":["warning","alert","danger"],"alert-octagon":["warning","alert","danger"],"alert-triangle":["warning","alert","danger"],"align-center":["text alignment","center"],"align-justify":["text alignment","justified"],"align-left":["text alignment","left"],"align-right":["text alignment","right"],anchor:[],archive:["index","box"],"at-sign":["mention","at","email","message"],award:["achievement","badge"],aperture:["camera","photo"],"bar-chart":["statistics","diagram","graph"],"bar-chart-2":["statistics","diagram","graph"],battery:["power","electricity"],"battery-charging":["power","electricity"],bell:["alarm","notification","sound"],"bell-off":["alarm","notification","silent"],bluetooth:["wireless"],"book-open":["read","library"],book:["read","dictionary","booklet","magazine","library"],bookmark:["read","clip","marker","tag"],box:["cube"],briefcase:["work","bag","baggage","folder"],calendar:["date"],camera:["photo"],cast:["chromecast","airplay"],"chevron-down":["expand"],"chevron-up":["collapse"],circle:["off","zero","record"],clipboard:["copy"],clock:["time","watch","alarm"],"cloud-drizzle":["weather","shower"],"cloud-lightning":["weather","bolt"],"cloud-rain":["weather"],"cloud-snow":["weather","blizzard"],cloud:["weather"],codepen:["logo"],codesandbox:["logo"],code:["source","programming"],coffee:["drink","cup","mug","tea","cafe","hot","beverage"],columns:["layout"],command:["keyboard","cmd","terminal","prompt"],compass:["navigation","safari","travel","direction"],copy:["clone","duplicate"],"corner-down-left":["arrow","return"],"corner-down-right":["arrow"],"corner-left-down":["arrow"],"corner-left-up":["arrow"],"corner-right-down":["arrow"],"corner-right-up":["arrow"],"corner-up-left":["arrow"],"corner-up-right":["arrow"],cpu:["processor","technology"],"credit-card":["purchase","payment","cc"],crop:["photo","image"],crosshair:["aim","target"],database:["storage","memory"],delete:["remove"],disc:["album","cd","dvd","music"],"dollar-sign":["currency","money","payment"],droplet:["water"],edit:["pencil","change"],"edit-2":["pencil","change"],"edit-3":["pencil","change"],eye:["view","watch"],"eye-off":["view","watch","hide","hidden"],"external-link":["outbound"],facebook:["logo","social"],"fast-forward":["music"],figma:["logo","design","tool"],"file-minus":["delete","remove","erase"],"file-plus":["add","create","new"],"file-text":["data","txt","pdf"],film:["movie","video"],filter:["funnel","hopper"],flag:["report"],"folder-minus":["directory"],"folder-plus":["directory"],folder:["directory"],framer:["logo","design","tool"],frown:["emoji","face","bad","sad","emotion"],gift:["present","box","birthday","party"],"git-branch":["code","version control"],"git-commit":["code","version control"],"git-merge":["code","version control"],"git-pull-request":["code","version control"],github:["logo","version control"],gitlab:["logo","version control"],globe:["world","browser","language","translate"],"hard-drive":["computer","server","memory","data"],hash:["hashtag","number","pound"],headphones:["music","audio","sound"],heart:["like","love","emotion"],"help-circle":["question mark"],hexagon:["shape","node.js","logo"],home:["house","living"],image:["picture"],inbox:["email"],instagram:["logo","camera"],key:["password","login","authentication","secure"],layers:["stack"],layout:["window","webpage"],"life-buoy":["help","life ring","support"],link:["chain","url"],"link-2":["chain","url"],linkedin:["logo","social media"],list:["options"],lock:["security","password","secure"],"log-in":["sign in","arrow","enter"],"log-out":["sign out","arrow","exit"],mail:["email","message"],"map-pin":["location","navigation","travel","marker"],map:["location","navigation","travel"],maximize:["fullscreen"],"maximize-2":["fullscreen","arrows","expand"],meh:["emoji","face","neutral","emotion"],menu:["bars","navigation","hamburger"],"message-circle":["comment","chat"],"message-square":["comment","chat"],"mic-off":["record","sound","mute"],mic:["record","sound","listen"],minimize:["exit fullscreen","close"],"minimize-2":["exit fullscreen","arrows","close"],minus:["subtract"],monitor:["tv","screen","display"],moon:["dark","night"],"more-horizontal":["ellipsis"],"more-vertical":["ellipsis"],"mouse-pointer":["arrow","cursor"],move:["arrows"],music:["note"],navigation:["location","travel"],"navigation-2":["location","travel"],octagon:["stop"],package:["box","container"],paperclip:["attachment"],pause:["music","stop"],"pause-circle":["music","audio","stop"],"pen-tool":["vector","drawing"],percent:["discount"],"phone-call":["ring"],"phone-forwarded":["call"],"phone-incoming":["call"],"phone-missed":["call"],"phone-off":["call","mute"],"phone-outgoing":["call"],phone:["call"],play:["music","start"],"pie-chart":["statistics","diagram"],"play-circle":["music","start"],plus:["add","new"],"plus-circle":["add","new"],"plus-square":["add","new"],pocket:["logo","save"],power:["on","off"],printer:["fax","office","device"],radio:["signal"],"refresh-cw":["synchronise","arrows"],"refresh-ccw":["arrows"],repeat:["loop","arrows"],rewind:["music"],"rotate-ccw":["arrow"],"rotate-cw":["arrow"],rss:["feed","subscribe"],save:["floppy disk"],scissors:["cut"],search:["find","magnifier","magnifying glass"],send:["message","mail","email","paper airplane","paper aeroplane"],settings:["cog","edit","gear","preferences"],"share-2":["network","connections"],shield:["security","secure"],"shield-off":["security","insecure"],"shopping-bag":["ecommerce","cart","purchase","store"],"shopping-cart":["ecommerce","cart","purchase","store"],shuffle:["music"],"skip-back":["music"],"skip-forward":["music"],slack:["logo"],slash:["ban","no"],sliders:["settings","controls"],smartphone:["cellphone","device"],smile:["emoji","face","happy","good","emotion"],speaker:["audio","music"],star:["bookmark","favorite","like"],"stop-circle":["media","music"],sun:["brightness","weather","light"],sunrise:["weather","time","morning","day"],sunset:["weather","time","evening","night"],tablet:["device"],tag:["label"],target:["logo","bullseye"],terminal:["code","command line","prompt"],thermometer:["temperature","celsius","fahrenheit","weather"],"thumbs-down":["dislike","bad","emotion"],"thumbs-up":["like","good","emotion"],"toggle-left":["on","off","switch"],"toggle-right":["on","off","switch"],tool:["settings","spanner"],trash:["garbage","delete","remove","bin"],"trash-2":["garbage","delete","remove","bin"],triangle:["delta"],truck:["delivery","van","shipping","transport","lorry"],tv:["television","stream"],twitch:["logo"],twitter:["logo","social"],type:["text"],umbrella:["rain","weather"],unlock:["security"],"user-check":["followed","subscribed"],"user-minus":["delete","remove","unfollow","unsubscribe"],"user-plus":["new","add","create","follow","subscribe"],"user-x":["delete","remove","unfollow","unsubscribe","unavailable"],user:["person","account"],users:["group"],"video-off":["camera","movie","film"],video:["camera","movie","film"],voicemail:["phone"],volume:["music","sound","mute"],"volume-1":["music","sound"],"volume-2":["music","sound"],"volume-x":["music","sound","mute"],watch:["clock","time"],"wifi-off":["disabled"],wifi:["connection","signal","wireless"],wind:["weather","air"],"x-circle":["cancel","close","delete","remove","times","clear"],"x-octagon":["delete","stop","alert","warning","times","clear"],"x-square":["cancel","close","delete","remove","times","clear"],x:["cancel","close","delete","remove","times","clear"],youtube:["logo","video","play"],"zap-off":["flash","camera","lightning"],zap:["flash","camera","lightning"],"zoom-in":["magnifying glass"],"zoom-out":["magnifying glass"]}},"./src/to-svg.js":function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r("./src/icons.js"),i=a(n);function a(o){return o&&o.__esModule?o:{default:o}}function s(o){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."),!o)throw new Error("The required `key` (icon name) parameter is missing.");if(!i.default[o])throw new Error("No icon matching '"+o+"'. See the complete list of icons at https://feathericons.com");return i.default[o].toSvg(l)}e.default=s},0:function(t,e,r){r("./node_modules/core-js/es/array/from.js"),t.exports=r("./src/index.js")}})})});var OV={};rI(OV,{default:()=>vp});module.exports=nI(OV);m();var D5=Ot(gg()),we=require("obsidian"),L5=Ot(require("path"));m();var is=require("obsidian");m();var p3=Ot(Gf()),Fr=Ot(require("fs/promises")),Ti=require("obsidian"),Ve=Ot(require("path")),Dc=require("path");m();var rd=Ot(RE(),1),Qf=Ot(Gf(),1),tk=require("child_process"),jk=Ot(yg(),1),Eo=Ot(yg(),1),uT=require("node:events"),jg=Object.defineProperty,fL=Object.getOwnPropertyDescriptor,Ng=Object.getOwnPropertyNames,dL=Object.prototype.hasOwnProperty,q=(t,e)=>function(){return t&&(e=(0,t[Ng(t)[0]])(t=0)),e},hL=(t,e)=>function(){return e||(0,t[Ng(t)[0]])((e={exports:{}}).exports,e),e.exports},ft=(t,e)=>{for(var r in e)jg(t,r,{get:e[r],enumerable:!0})},pL=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ng(e))!dL.call(t,i)&&i!==r&&jg(t,i,{get:()=>e[i],enumerable:!(n=fL(e,i))||n.enumerable});return t},it=t=>pL(jg({},"__esModule",{value:!0}),t);function mL(...t){let e=new String(t);return td.set(e,t),e}function Kf(t){return t instanceof String&&td.has(t)}function ME(t){return td.get(t)||[]}var td,pc=q({"src/lib/args/pathspec.ts"(){"use strict";td=new WeakMap}}),wr,la=q({"src/lib/errors/git-error.ts"(){"use strict";wr=class extends Error{constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),mc,ko=q({"src/lib/errors/git-response-error.ts"(){"use strict";la(),mc=class extends wr{constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),lA,cA=q({"src/lib/errors/task-configuration-error.ts"(){"use strict";la(),lA=class extends wr{constructor(t){super(void 0,t)}}}});function uA(t){return typeof t!="function"?Qa:t}function fA(t){return typeof t=="function"&&t!==Qa}function dA(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function hA(t,e=0){return pA(t)&&t.length>e?t[e]:void 0}function Ja(t,e=0){if(pA(t)&&t.length>e)return t[t.length-1-e]}function pA(t){return!!(t&&typeof t.length=="number")}function gc(t="",e=!0,r=` -`){return t.split(r).reduce((n,i)=>{let a=e?i.trim():i;return a&&n.push(a),n},[])}function Bg(t,e){return gc(t,!0).map(r=>e(r))}function Hg(t){return(0,rd.exists)(t,rd.FOLDER)}function Me(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}function mA(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}function nd(t,e){if(Array.isArray(t)){let r=t.indexOf(e);r>=0&&t.splice(r,1)}else t.delete(e);return e}function Vn(t){return Array.isArray(t)?t:[t]}function gA(t){return t.replace(/[\s-]+(.)/g,(e,r)=>r.toUpperCase())}function vA(t){return Vn(t).map(String)}function He(t,e=0){if(t==null)return e;let r=parseInt(t,10);return isNaN(r)?e:r}function dc(t,e){let r=[];for(let n=0,i=t.length;nr in t?{[r]:t[r]}:{}))}function Ag(t=0){return new Promise(e=>setTimeout(e,t))}function kg(t){if(t!==!1)return t}var Ao,Qa,vc,id=q({"src/lib/utils/util.ts"(){"use strict";Ao="\0",Qa=()=>{},vc=Object.prototype.toString.call.bind(Object.prototype.toString)}});function qn(t,e,r){return e(t)?t:arguments.length>2?r:void 0}function Tg(t,e){let r=Kf(t)?"string":typeof t;return/number|string|boolean/.test(r)&&(!e||!e.includes(r))}function ad(t){return!!t&&vc(t)==="[object Object]"}function wA(t){return typeof t=="function"}var yc,Vt,bA,Zf,Ug,_A=q({"src/lib/utils/argument-filters.ts"(){"use strict";id(),pc(),yc=t=>Array.isArray(t),Vt=t=>typeof t=="string",bA=t=>Array.isArray(t)&&t.every(Vt),Zf=t=>Vt(t)||Array.isArray(t)&&t.every(Vt),Ug=t=>t==null||"number|boolean|function".includes(typeof t)?!1:Array.isArray(t)||typeof t=="string"||typeof t.length=="number"}}),Cg,gL=q({"src/lib/utils/exit-codes.ts"(){"use strict";Cg=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))(Cg||{})}}),Jf,vL=q({"src/lib/utils/git-output-streams.ts"(){"use strict";Jf=class xA{constructor(e,r){this.stdOut=e,this.stdErr=r}asStrings(){return new xA(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}}),me,oa,yL=q({"src/lib/utils/line-parser.ts"(){"use strict";me=class{constructor(t,e){this.matches=[],this.parse=(r,n)=>(this.resetMatches(),this._regExp.every((i,a)=>this.addMatch(i,a,r(a)))?this.useMatches(n,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}useMatches(t,e){throw new Error("LineParser:useMatches not implemented")}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(t,e,r){let n=r&&t.exec(r);return n&&this.pushMatch(e,n),!!n}pushMatch(t,e){this.matches.push(...e.slice(1))}},oa=class extends me{addMatch(t,e,r){return/^remote:\s/.test(String(r))&&super.addMatch(t,e,r)}pushMatch(t,e){(t>0||e.length>1)&&super.pushMatch(t,e)}}}});function SA(...t){let e=process.cwd(),r=Object.assign({baseDir:e,...EA},...t.filter(n=>typeof n=="object"&&n));return r.baseDir=r.baseDir||e,r.trimmed=r.trimmed===!0,r}var EA,wL=q({"src/lib/utils/simple-git-options.ts"(){"use strict";EA={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function Gg(t,e=[]){return ad(t)?Object.keys(t).reduce((r,n)=>{let i=t[n];if(Kf(i))r.push(i);else if(Tg(i,["boolean"]))r.push(n+"="+i);else if(Array.isArray(i))for(let a of i)Tg(a,["string","number"])||r.push(n+"="+a);else r.push(n);return r},e):e}function vr(t,e=0,r=!1){let n=[];for(let i=0,a=e<0?t.length:e;i{for(let a=gc(i,n),s=0,o=a.length;s{if(!(s+c>=o))return a[s+c]};e.some(({parse:c})=>c(l,t))}}),t}var xL=q({"src/lib/utils/task-parser.ts"(){"use strict";id()}}),AA={};ft(AA,{ExitCodes:()=>Cg,GitOutputStreams:()=>Jf,LineParser:()=>me,NOOP:()=>Qa,NULL:()=>Ao,RemoteLineParser:()=>oa,append:()=>Me,appendTaskOptions:()=>Gg,asArray:()=>Vn,asCamelCase:()=>gA,asFunction:()=>uA,asNumber:()=>He,asStringArray:()=>vA,bufferToString:()=>hc,callTaskParser:()=>Pg,createInstanceConfig:()=>SA,delay:()=>Ag,filterArray:()=>yc,filterFunction:()=>wA,filterHasLength:()=>Ug,filterPlainObject:()=>ad,filterPrimitives:()=>Tg,filterString:()=>Vt,filterStringArray:()=>bA,filterStringOrStringArray:()=>Zf,filterType:()=>qn,first:()=>hA,folderExists:()=>Hg,forEachLineWithContent:()=>Bg,getTrailingOptions:()=>vr,including:()=>mA,isUserFunction:()=>fA,last:()=>Ja,objectToString:()=>vc,orVoid:()=>kg,parseStringResponse:()=>br,pick:()=>yA,prefixedArray:()=>dc,remove:()=>nd,splitOn:()=>dA,toLinesWithContent:()=>gc,trailingFunctionArgument:()=>at,trailingOptionsArgument:()=>zg});var he=q({"src/lib/utils/index.ts"(){"use strict";_A(),gL(),vL(),yL(),wL(),_L(),xL(),id()}}),kA={};ft(kA,{CheckRepoActions:()=>Rg,checkIsBareRepoTask:()=>CA,checkIsRepoRootTask:()=>TA,checkIsRepoTask:()=>SL});function SL(t){switch(t){case"bare":return CA();case"root":return TA()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:sd,parser:Vg}}function TA(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:sd,parser(e){return/^\.(git)?$/.test(e.trim())}}}function CA(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:sd,parser:Vg}}function EL(t){return/(Not a git repository|Kein Git-Repository)/i.test(String(t))}var Rg,sd,Vg,PA=q({"src/lib/tasks/check-is-repo.ts"(){"use strict";he(),Rg=(t=>(t.BARE="bare",t.IN_TREE="tree",t.IS_REPO_ROOT="root",t))(Rg||{}),sd=({exitCode:t},e,r,n)=>{if(t===128&&EL(e))return r(Buffer.from("false"));n(e)},Vg=t=>t.trim()==="true"}});function AL(t,e){let r=new RA(t),n=t?OA:MA;return gc(e).forEach(i=>{let a=i.replace(n,"");r.paths.push(a),(IA.test(a)?r.folders:r.files).push(a)}),r}var RA,MA,OA,IA,kL=q({"src/lib/responses/CleanSummary.ts"(){"use strict";he(),RA=class{constructor(t){this.dryRun=t,this.paths=[],this.files=[],this.folders=[]}},MA=/^[a-z]+\s*/i,OA=/^[a-z]+\s+[a-z]+\s*/i,IA=/\/$/}}),Mg={};ft(Mg,{EMPTY_COMMANDS:()=>od,adhocExecTask:()=>FA,configurationErrorTask:()=>yr,isBufferTask:()=>DA,isEmptyTask:()=>LA,straightThroughBufferTask:()=>$A,straightThroughStringTask:()=>rr});function FA(t){return{commands:od,format:"empty",parser:t}}function yr(t){return{commands:od,format:"empty",parser(){throw typeof t=="string"?new lA(t):t}}}function rr(t,e=!1){return{commands:t,format:"utf-8",parser(r){return e?String(r).trim():r}}}function $A(t){return{commands:t,format:"buffer",parser(e){return e}}}function DA(t){return t.format==="buffer"}function LA(t){return t.format==="empty"||!t.commands.length}var od,ut=q({"src/lib/tasks/task.ts"(){"use strict";cA(),od=[]}}),jA={};ft(jA,{CONFIG_ERROR_INTERACTIVE_MODE:()=>qg,CONFIG_ERROR_MODE_REQUIRED:()=>Wg,CONFIG_ERROR_UNKNOWN_OPTION:()=>Yg,CleanOptions:()=>qf,cleanTask:()=>NA,cleanWithOptionsTask:()=>TL,isCleanOptionsArray:()=>CL});function TL(t,e){let{cleanMode:r,options:n,valid:i}=PL(t);return r?i.options?(n.push(...e),n.some(OL)?yr(qg):NA(r,n)):yr(Yg+JSON.stringify(t)):yr(Wg)}function NA(t,e){return{commands:["clean",`-${t}`,...e],format:"utf-8",parser(n){return AL(t==="n",n)}}}function CL(t){return Array.isArray(t)&&t.every(e=>Xg.has(e))}function PL(t){let e,r=[],n={cleanMode:!1,options:!0};return t.replace(/[^a-z]i/g,"").split("").forEach(i=>{RL(i)?(e=i,n.cleanMode=!0):n.options=n.options&&ML(r[r.length]=`-${i}`)}),{cleanMode:e,options:r,valid:n}}function RL(t){return t==="f"||t==="n"}function ML(t){return/^-[a-z]$/i.test(t)&&Xg.has(t.charAt(1))}function OL(t){return/^-[^\-]/.test(t)?t.indexOf("i")>0:t==="--interactive"}var qg,Wg,Yg,qf,Xg,BA=q({"src/lib/tasks/clean.ts"(){"use strict";kL(),he(),ut(),qg="Git clean interactive mode is not supported",Wg='Git clean mode parameter ("n" or "f") is required',Yg="Git clean unknown option found in: ",qf=(t=>(t.DRY_RUN="n",t.FORCE="f",t.IGNORED_INCLUDED="x",t.IGNORED_ONLY="X",t.EXCLUDING="e",t.QUIET="q",t.RECURSIVE="d",t))(qf||{}),Xg=new Set(["i",...vA(Object.values(qf))])}});function IL(t){let e=new UA;for(let r of HA(t))e.addValue(r.file,String(r.key),r.value);return e}function FL(t,e){let r=null,n=[],i=new Map;for(let a of HA(t,e))a.key===e&&(n.push(r=a.value),i.has(a.file)||i.set(a.file,[]),i.get(a.file).push(r));return{key:e,paths:Array.from(i.keys()),scopes:i,value:r,values:n}}function $L(t){return t.replace(/^(file):/,"")}function*HA(t,e=null){let r=t.split("\0");for(let n=0,i=r.length-1;nObject.assign(t,this.values[e]),{})),this._all}addFile(t){if(!(t in this.values)){let e=Ja(this.files);this.values[t]=e?Object.create(this.values[e]):{},this.files.push(t)}return this.values[t]}addValue(t,e,r){let n=this.addFile(t);n.hasOwnProperty(e)?Array.isArray(n[e])?n[e].push(r):n[e]=[n[e],r]:n[e]=r,this._all=void 0}}}});function wg(t,e){return typeof t=="string"&&Og.hasOwnProperty(t)?t:e}function LL(t,e,r,n){let i=["config",`--${n}`];return r&&i.push("--add"),i.push(t,e),{commands:i,format:"utf-8",parser(a){return a}}}function jL(t,e){let r=["config","--null","--show-origin","--get-all",t];return e&&r.splice(1,0,`--${e}`),{commands:r,format:"utf-8",parser(n){return FL(n,t)}}}function NL(t){let e=["config","--list","--show-origin","--null"];return t&&e.push(`--${t}`),{commands:e,format:"utf-8",parser(r){return IL(r)}}}function BL(){return{addConfig(t,e,...r){return this._runTask(LL(t,e,r[0]===!0,wg(r[1],"local")),at(arguments))},getConfig(t,e){return this._runTask(jL(t,wg(e,void 0)),at(arguments))},listConfig(...t){return this._runTask(NL(wg(t[0],void 0)),at(arguments))}}}var Og,GA=q({"src/lib/tasks/config.ts"(){"use strict";DL(),he(),Og=(t=>(t.system="system",t.global="global",t.local="local",t.worktree="worktree",t))(Og||{})}});function HL(t){return zA.has(t)}var bg,zA,VA=q({"src/lib/tasks/diff-name-status.ts"(){"use strict";bg=(t=>(t.ADDED="A",t.COPIED="C",t.DELETED="D",t.MODIFIED="M",t.RENAMED="R",t.CHANGED="T",t.UNMERGED="U",t.UNKNOWN="X",t.BROKEN="B",t))(bg||{}),zA=new Set(Object.values(bg))}});function UL(...t){return new WA().param(...t)}function GL(t){let e=new Set,r={};return Bg(t,n=>{let[i,a,s]=n.split(Ao);e.add(i),(r[i]=r[i]||[]).push({line:He(a),path:i,preview:s})}),{paths:e,results:r}}function zL(){return{grep(t){let e=at(arguments),r=vr(arguments);for(let i of qA)if(r.includes(i))return this._runTask(yr(`git.grep: use of "${i}" is not supported.`),e);typeof t=="string"&&(t=UL().param(t));let n=["grep","--null","-n","--full-name",...r,...t];return this._runTask({commands:n,format:"utf-8",parser(i){return GL(i)}},e)}}}var qA,fc,OE,WA,YA=q({"src/lib/tasks/grep.ts"(){"use strict";he(),ut(),qA=["-h"],fc=Symbol("grepQuery"),WA=class{constructor(){this[OE]=[]}*[(OE=fc,Symbol.iterator)](){for(let t of this[fc])yield t}and(...t){return t.length&&this[fc].push("--and","(",...dc(t,"-e"),")"),this}param(...t){return this[fc].push(...dc(t,"-e")),this}}}}),XA={};ft(XA,{ResetMode:()=>Wf,getResetMode:()=>qL,resetTask:()=>VL});function VL(t,e){let r=["reset"];return KA(t)&&r.push(`--${t}`),r.push(...e),rr(r)}function qL(t){if(KA(t))return t;switch(typeof t){case"string":case"undefined":return"soft"}}function KA(t){return ZA.includes(t)}var Wf,ZA,JA=q({"src/lib/tasks/reset.ts"(){"use strict";ut(),Wf=(t=>(t.MIXED="mixed",t.SOFT="soft",t.HARD="hard",t.MERGE="merge",t.KEEP="keep",t))(Wf||{}),ZA=Array.from(Object.values(Wf))}});function WL(){return(0,Qf.default)("simple-git")}function IE(t,e,r){return!e||!String(e).replace(/\s*/,"")?r?(n,...i)=>{t(n,...i),r(n,...i)}:t:(n,...i)=>{t(`%s ${n}`,e,...i),r&&r(n,...i)}}function YL(t,e,{namespace:r}){if(typeof t=="string")return t;let n=e&&e.namespace||"";return n.startsWith(r)?n.substr(r.length+1):n||r}function Kg(t,e,r,n=WL()){let i=t&&`[${t}]`||"",a=[],s=typeof e=="string"?n.extend(e):e,o=YL(qn(e,Vt),s,n);return c(r);function l(u,f){return Me(a,Kg(t,o.replace(/^[^:]+/,u),f,n))}function c(u){let f=u&&`[${u}]`||"",d=s&&IE(s,f)||Qa,h=IE(n,`${i} ${f}`,d);return Object.assign(s?d:h,{label:t,sibling:l,info:h,step:c})}}var QA=q({"src/lib/git-logger.ts"(){"use strict";he(),Qf.default.formatters.L=t=>String(Ug(t)?t.length:"-"),Qf.default.formatters.B=t=>Buffer.isBuffer(t)?t.toString("utf8"):vc(t)}}),ek,XL=q({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";var t;la(),QA(),ek=(t=class{constructor(r="GitExecutor"){this.logLabel=r,this._queue=new Map}withProgress(r){return this._queue.get(r)}createProgress(r){let n=t.getName(r.commands[0]),i=Kg(this.logLabel,n);return{task:r,logger:i,name:n}}push(r){let n=this.createProgress(r);return n.logger("Adding task to the queue, commands = %o",r.commands),this._queue.set(r,n),n}fatal(r){for(let[n,{logger:i}]of Array.from(this._queue.entries()))n===r.task?(i.info("Failed %o",r),i("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):i.info("A fatal exception occurred in a previous task, the queue has been purged: %o",r.message),this.complete(n);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(r){this.withProgress(r)&&this._queue.delete(r)}attempt(r){let n=this.withProgress(r);if(!n)throw new wr(void 0,"TasksPendingQueue: attempt called for an unknown task");return n.logger("Starting task"),n}static getName(r="empty"){return`task:${r}:${++t.counter}`}},t.counter=0,t)}});function Za(t,e){return{method:hA(t.commands)||"",commands:e}}function KL(t,e){return r=>{e("[ERROR] child process exception %o",r),t.push(Buffer.from(String(r.stack),"ascii"))}}function FE(t,e,r,n){return i=>{r("%s received %L bytes",e,i),n("%B",i),t.push(i)}}var Ig,ZL=q({"src/lib/runners/git-executor-chain.ts"(){"use strict";la(),ut(),he(),XL(),Ig=class{constructor(t,e,r){this._executor=t,this._scheduler=e,this._plugins=r,this._chain=Promise.resolve(),this._queue=new ek}get cwd(){return this._cwd||this._executor.cwd}set cwd(t){this._cwd=t}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(t){return this._queue.push(t),this._chain=this._chain.then(()=>this.attemptTask(t))}async attemptTask(t){let e=await this._scheduler.next(),r=()=>this._queue.complete(t);try{let{logger:n}=this._queue.attempt(t);return await(LA(t)?this.attemptEmptyTask(t,n):this.attemptRemoteTask(t,n))}catch(n){throw this.onFatalException(t,n)}finally{r(),e()}}onFatalException(t,e){let r=e instanceof wr?Object.assign(e,{task:t}):new wr(t,e&&String(e));return this._chain=Promise.resolve(),this._queue.fatal(r),r}async attemptRemoteTask(t,e){let r=this._plugins.exec("spawn.binary","",Za(t,t.commands)),n=this._plugins.exec("spawn.args",[...t.commands],Za(t,t.commands)),i=await this.gitResponse(t,r,n,this.outputHandler,e.step("SPAWN")),a=await this.handleTaskData(t,n,i,e.step("HANDLE"));return e("passing response to task's parser as a %s",t.format),DA(t)?Pg(t.parser,a):Pg(t.parser,a.asStrings())}async attemptEmptyTask(t,e){return e("empty task bypassing child process to call to task's parser"),t.parser(this)}handleTaskData(t,e,r,n){let{exitCode:i,rejection:a,stdOut:s,stdErr:o}=r;return new Promise((l,c)=>{n("Preparing to handle process response exitCode=%d stdOut=",i);let{error:u}=this._plugins.exec("task.error",{error:a},{...Za(t,e),...r});if(u&&t.onError)return n.info("exitCode=%s handling with custom error handler"),t.onError(r,u,f=>{n.info("custom error handler treated as success"),n("custom error returned a %s",vc(f)),l(new Jf(Array.isArray(f)?Buffer.concat(f):f,Buffer.concat(o)))},c);if(u)return n.info("handling as error: exitCode=%s stdErr=%s rejection=%o",i,o.length,a),c(u);n.info("retrieving task output complete"),l(new Jf(Buffer.concat(s),Buffer.concat(o)))})}async gitResponse(t,e,r,n,i){let a=i.sibling("output"),s=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},Za(t,t.commands));return new Promise(o=>{let l=[],c=[];i.info("%s %o",e,r),i("%O",s);let u=this._beforeSpawn(t,r);if(u)return o({stdOut:l,stdErr:c,exitCode:9901,rejection:u});this._plugins.exec("spawn.before",void 0,{...Za(t,r),kill(d){u=d||u}});let f=(0,tk.spawn)(e,r,s);f.stdout.on("data",FE(l,"stdOut",i,a.step("stdOut"))),f.stderr.on("data",FE(c,"stdErr",i,a.step("stdErr"))),f.on("error",KL(c,i)),n&&(i("Passing child process stdOut/stdErr to custom outputHandler"),n(e,f.stdout,f.stderr,[...r])),this._plugins.exec("spawn.after",void 0,{...Za(t,r),spawned:f,close(d,h){o({stdOut:l,stdErr:c,exitCode:d,rejection:u||h})},kill(d){f.killed||(u=d,f.kill("SIGINT"))}})})}_beforeSpawn(t,e){let r;return this._plugins.exec("spawn.before",void 0,{...Za(t,e),kill(n){r=n||r}}),r}}}}),rk={};ft(rk,{GitExecutor:()=>nk});var nk,JL=q({"src/lib/runners/git-executor.ts"(){"use strict";ZL(),nk=class{constructor(t,e,r){this.cwd=t,this._scheduler=e,this._plugins=r,this._chain=new Ig(this,this._scheduler,this._plugins)}chain(){return new Ig(this,this._scheduler,this._plugins)}push(t){return this._chain.push(t)}}}});function QL(t,e,r=Qa){let n=a=>{r(null,a)},i=a=>{(a==null?void 0:a.task)===t&&r(a instanceof mc?ej(a):a,void 0)};e.then(n,i)}function ej(t){let e=n=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${n} should be GitResponseError.git.${n}, this will no longer be available in version 3`),e=Qa};return Object.create(t,Object.getOwnPropertyNames(t.git).reduce(r,{}));function r(n,i){return i in t||(n[i]={enumerable:!1,configurable:!1,get(){return e(i),t.git[i]}}),n}}var tj=q({"src/lib/task-callback.ts"(){"use strict";ko(),he()}});function $E(t,e){return FA(r=>{if(!Hg(t))throw new Error(`Git.cwd: cannot change to non-directory "${t}"`);return(e||r).cwd=t})}var rj=q({"src/lib/tasks/change-working-directory.ts"(){"use strict";he(),ut()}});function _g(t){let e=["checkout",...t];return e[1]==="-b"&&e.includes("-B")&&(e[1]=nd(e,"-B")),rr(e)}function nj(){return{checkout(){return this._runTask(_g(vr(arguments,1)),at(arguments))},checkoutBranch(t,e){return this._runTask(_g(["-b",t,e,...vr(arguments)]),at(arguments))},checkoutLocalBranch(t){return this._runTask(_g(["-b",t,...vr(arguments)]),at(arguments))}}}var ij=q({"src/lib/tasks/checkout.ts"(){"use strict";he(),ut()}});function aj(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function sj(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(t){return br(aj(),[ik],t)}})}}}var ik,oj=q({"src/lib/tasks/count-objects.ts"(){"use strict";he(),ik=new me(/([a-z-]+): (\d+)$/,(t,[e,r])=>{let n=gA(e);t.hasOwnProperty(n)&&(t[n]=He(r))})}});function lj(t){return br({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},ak,t)}var ak,cj=q({"src/lib/parsers/parse-commit.ts"(){"use strict";he(),ak=[new me(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(t,[e,r,n])=>{t.branch=e,t.commit=n,t.root=!!r}),new me(/\s*Author:\s(.+)/i,(t,[e])=>{let r=e.split("<"),n=r.pop();!n||!n.includes("@")||(t.author={email:n.substr(0,n.length-1),name:r.join("<").trim()})}),new me(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(t,[e,r,n])=>{t.summary.changes=parseInt(e,10)||0,t.summary.insertions=parseInt(r,10)||0,t.summary.deletions=parseInt(n,10)||0}),new me(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(t,[e,r,n])=>{t.summary.changes=parseInt(e,10)||0;let i=parseInt(r,10)||0;n==="-"?t.summary.deletions=i:n==="+"&&(t.summary.insertions=i)})]}});function uj(t,e,r){return{commands:["-c","core.abbrev=40","commit",...dc(t,"-m"),...e,...r],format:"utf-8",parser:lj}}function fj(){return{commit(e,...r){let n=at(arguments),i=t(e)||uj(Vn(e),Vn(qn(r[0],Zf,[])),[...qn(r[1],yc,[]),...vr(arguments,0,!0)]);return this._runTask(i,n)}};function t(e){return!Zf(e)&&yr("git.commit: requires the commit message to be supplied as a string/string[]")}}var dj=q({"src/lib/tasks/commit.ts"(){"use strict";cj(),he(),ut()}});function hj(){return{firstCommit(){return this._runTask(rr(["rev-list","--max-parents=0","HEAD"],!0),at(arguments))}}}var pj=q({"src/lib/tasks/first-commit.ts"(){"use strict";he(),ut()}});function mj(t,e){let r=["hash-object",t];return e&&r.push("-w"),rr(r,!0)}var gj=q({"src/lib/tasks/hash-object.ts"(){"use strict";ut()}});function vj(t,e,r){let n=String(r).trim(),i;if(i=sk.exec(n))return new Yf(t,e,!1,i[1]);if(i=ok.exec(n))return new Yf(t,e,!0,i[1]);let a="",s=n.split(" ");for(;s.length;)if(s.shift()==="in"){a=s.join(" ");break}return new Yf(t,e,/^re/i.test(n),a)}var Yf,sk,ok,yj=q({"src/lib/responses/InitSummary.ts"(){"use strict";Yf=class{constructor(t,e,r,n){this.bare=t,this.path=e,this.existing=r,this.gitDir=n}},sk=/^Init.+ repository in (.+)$/,ok=/^Rein.+ in (.+)$/}});function wj(t){return t.includes(Zg)}function bj(t=!1,e,r){let n=["init",...r];return t&&!wj(n)&&n.splice(1,0,Zg),{commands:n,format:"utf-8",parser(i){return vj(n.includes("--bare"),e,i)}}}var Zg,_j=q({"src/lib/tasks/init.ts"(){"use strict";yj(),Zg="--bare"}});function Jg(t){for(let e=0;ebr(new lk,e,r,!1)}var xg,DE,LE,jE,uk,fk=q({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";wc(),Sj(),VA(),he(),xg=[new me(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(t,[e,r,n=""])=>{t.files.push({file:e.trim(),changes:He(r),insertions:n.replace(/[^+]/g,"").length,deletions:n.replace(/[^-]/g,"").length,binary:!1})}),new me(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(t,[e,r,n])=>{t.files.push({file:e.trim(),before:He(r),after:He(n),binary:!0})}),new me(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(t,[e,r])=>{let n=/(\d+) i/.exec(r),i=/(\d+) d/.exec(r);t.changed=He(e),t.insertions=He(n==null?void 0:n[1]),t.deletions=He(i==null?void 0:i[1])})],DE=[new me(/(\d+)\t(\d+)\t(.+)$/,(t,[e,r,n])=>{let i=He(e),a=He(r);t.changed++,t.insertions+=i,t.deletions+=a,t.files.push({file:n,changes:i+a,insertions:i,deletions:a,binary:!1})}),new me(/-\t-\t(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,after:0,before:0,binary:!0})})],LE=[new me(/(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,changes:0,insertions:0,deletions:0,binary:!1})})],jE=[new me(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(t,[e,r,n,i,a])=>{t.changed++,t.files.push({file:a!=null?a:n,changes:0,insertions:0,deletions:0,binary:!1,status:kg(HL(e)&&e),from:kg(!!a&&n!==a&&n),similarity:He(r)})})],uk={"":xg,"--stat":xg,"--numstat":DE,"--name-status":jE,"--name-only":LE}}});function Ej(t,e){return e.reduce((r,n,i)=>(r[n]=t[i]||"",r),Object.create({diff:null}))}function dk(t=r0,e=hk,r=""){let n=ck(r);return function(i){let a=gc(i.trim(),!1,e0).map(function(s){let o=s.split(t0),l=Ej(o[0].split(t),e);return o.length>1&&o[1].trim()&&(l.diff=n(o[1])),l});return{all:a,latest:a.length&&a[0]||null,total:a.length}}}var e0,t0,r0,hk,pk=q({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";he(),fk(),wc(),e0="\xF2\xF2\xF2\xF2\xF2\xF2 ",t0=" \xF2\xF2",r0=" \xF2 ",hk=["hash","date","message","refs","author_name","author_email"]}}),mk={};ft(mk,{diffSummaryTask:()=>Aj,validateLogFormatConfig:()=>ld});function Aj(t){let e=Jg(t),r=["diff"];return e===""&&(e="--stat",r.push("--stat=4096")),r.push(...t),ld(r)||{commands:r,format:"utf-8",parser:ck(e)}}function ld(t){let e=t.filter(xj);if(e.length>1)return yr(`Summary flags are mutually exclusive - pick one of ${e.join(",")}`);if(e.length&&t.includes("-z"))return yr(`Summary flag ${e} parsing is not compatible with null termination option '-z'`)}var n0=q({"src/lib/tasks/diff.ts"(){"use strict";wc(),fk(),ut()}});function kj(t,e){let r=[],n=[];return Object.keys(t).forEach(i=>{r.push(i),n.push(String(t[i]))}),[r,n.join(e)]}function Tj(t){return Object.keys(t).reduce((e,r)=>(r in Fg||(e[r]=t[r]),e),{})}function gk(t={},e=[]){let r=qn(t.splitter,Vt,r0),n=ad(t.format)?t.format:{hash:"%H",date:t.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:t.multiLine?"%B":"%b",author_name:t.mailMap!==!1?"%aN":"%an",author_email:t.mailMap!==!1?"%aE":"%ae"},[i,a]=kj(n,r),s=[],o=[`--pretty=format:${e0}${a}${t0}`,...e],l=t.n||t["max-count"]||t.maxCount;if(l&&o.push(`--max-count=${l}`),t.from||t.to){let c=t.symmetric!==!1?"...":"..";s.push(`${t.from||""}${c}${t.to||""}`)}return Vt(t.file)&&o.push("--follow",mL(t.file)),Gg(Tj(t),o),{fields:i,splitter:r,commands:[...o,...s]}}function Cj(t,e,r){let n=dk(t,e,Jg(r));return{commands:["log",...r],format:"utf-8",parser:n}}function Pj(){return{log(...r){let n=at(arguments),i=gk(zg(arguments),qn(arguments[0],yc)),a=e(...r)||ld(i.commands)||t(i);return this._runTask(a,n)}};function t(r){return Cj(r.splitter,r.fields,r.commands)}function e(r,n){return Vt(r)&&Vt(n)&&yr("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}var Fg,vk=q({"src/lib/tasks/log.ts"(){"use strict";wc(),pc(),pk(),he(),ut(),n0(),Fg=(t=>(t[t["--pretty"]=0]="--pretty",t[t["max-count"]=1]="max-count",t[t.maxCount=2]="maxCount",t[t.n=3]="n",t[t.file=4]="file",t[t.format=5]="format",t[t.from=6]="from",t[t.to=7]="to",t[t.splitter=8]="splitter",t[t.symmetric=9]="symmetric",t[t.mailMap=10]="mailMap",t[t.multiLine=11]="multiLine",t[t.strictDate=12]="strictDate",t))(Fg||{})}}),Xf,yk,Rj=q({"src/lib/responses/MergeSummary.ts"(){"use strict";Xf=class{constructor(t,e=null,r){this.reason=t,this.file=e,this.meta=r}toString(){return`${this.file}:${this.reason}`}},yk=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),$g,wk,Mj=q({"src/lib/responses/PullSummary.ts"(){"use strict";$g=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},wk=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function Sg(t){return t.objects=t.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function NE(t){let e=/^\s*(\d+)/.exec(t),r=/delta (\d+)/i.exec(t);return{count:He(e&&e[1]||"0"),delta:He(r&&r[1]||"0")}}var bk,Oj=q({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";he(),bk=[new oa(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(t,[e,r])=>{let n=e.toLowerCase(),i=Sg(t.remoteMessages);Object.assign(i,{[n]:He(r)})}),new oa(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(t,[e,r])=>{let n=e.toLowerCase(),i=Sg(t.remoteMessages);Object.assign(i,{[n]:He(r)})}),new oa(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(t,[e,r,n])=>{let i=Sg(t.remoteMessages);i.total=NE(e),i.reused=NE(r),i.packReused=He(n)})]}});function _k(t,e){return br({remoteMessages:new Sk},xk,e)}var xk,Sk,Ek=q({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";he(),Oj(),xk=[new oa(/^remote:\s*(.+)$/,(t,[e])=>(t.remoteMessages.all.push(e.trim()),!1)),...bk,new oa([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(t,[e])=>{t.remoteMessages.pullRequestUrl=e}),new oa([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(t,[e,r,n])=>{t.remoteMessages.vulnerabilities={count:He(e),summary:r,url:n}})],Sk=class{constructor(){this.all=[]}}}});function Ij(t,e){let r=br(new wk,Ak,[t,e]);return r.message&&r}var BE,HE,UE,GE,Ak,zE,i0,kk=q({"src/lib/parsers/parse-pull.ts"(){"use strict";Mj(),he(),Ek(),BE=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,HE=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,UE=/^(create|delete) mode \d+ (.+)/,GE=[new me(BE,(t,[e,r,n])=>{t.files.push(e),r&&(t.insertions[e]=r.length),n&&(t.deletions[e]=n.length)}),new me(HE,(t,[e,,r,,n])=>r!==void 0||n!==void 0?(t.summary.changes=+e||0,t.summary.insertions=+r||0,t.summary.deletions=+n||0,!0):!1),new me(UE,(t,[e,r])=>{Me(t.files,r),Me(e==="create"?t.created:t.deleted,r)})],Ak=[new me(/^from\s(.+)$/i,(t,[e])=>void(t.remote=e)),new me(/^fatal:\s(.+)$/,(t,[e])=>void(t.message=e)),new me(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(t,[e,r,n,i])=>{t.branch.local=n,t.hash.local=e,t.branch.remote=i,t.hash.remote=r})],zE=(t,e)=>br(new $g,GE,[t,e]),i0=(t,e)=>Object.assign(new $g,zE(t,e),_k(t,e))}}),VE,Tk,qE,Fj=q({"src/lib/parsers/parse-merge.ts"(){"use strict";Rj(),he(),kk(),VE=[new me(/^Auto-merging\s+(.+)$/,(t,[e])=>{t.merges.push(e)}),new me(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(t,[e,r])=>{t.conflicts.push(new Xf(e,r))}),new me(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(t,[e,r,n])=>{t.conflicts.push(new Xf(e,r,{deleteRef:n}))}),new me(/^CONFLICT\s+\((.+)\):/,(t,[e])=>{t.conflicts.push(new Xf(e,null))}),new me(/^Automatic merge failed;\s+(.+)$/,(t,[e])=>{t.result=e})],Tk=(t,e)=>Object.assign(qE(t,e),i0(t,e)),qE=t=>br(new yk,VE,t)}});function WE(t){return t.length?{commands:["merge",...t],format:"utf-8",parser(e,r){let n=Tk(e,r);if(n.failed)throw new mc(n);return n}}:yr("Git.merge requires at least one option")}var $j=q({"src/lib/tasks/merge.ts"(){"use strict";ko(),Fj(),ut()}});function Dj(t,e,r){let n=r.includes("deleted"),i=r.includes("tag")||/^refs\/tags/.test(t),a=!r.includes("new");return{deleted:n,tag:i,branch:!i,new:!a,alreadyUpdated:a,local:t,remote:e}}var YE,Ck,XE,Lj=q({"src/lib/parsers/parse-push.ts"(){"use strict";he(),Ek(),YE=[new me(/^Pushing to (.+)$/,(t,[e])=>{t.repo=e}),new me(/^updating local tracking ref '(.+)'/,(t,[e])=>{t.ref={...t.ref||{},local:e}}),new me(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(t,[e,r,n])=>{t.pushed.push(Dj(e,r,n))}),new me(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(t,[e,r,n])=>{t.branch={...t.branch||{},local:e,remote:r,remoteName:n}}),new me(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(t,[e,r,n,i])=>{t.update={head:{local:e,remote:r},hash:{from:n,to:i}}})],Ck=(t,e)=>{let r=XE(t,e),n=_k(t,e);return{...r,...n}},XE=(t,e)=>br({pushed:[]},YE,[t,e])}}),Pk={};ft(Pk,{pushTagsTask:()=>jj,pushTask:()=>a0});function jj(t={},e){return Me(e,"--tags"),a0(t,e)}function a0(t={},e){let r=["push",...e];return t.branch&&r.splice(1,0,t.branch),t.remote&&r.splice(1,0,t.remote),nd(r,"-v"),Me(r,"--verbose"),Me(r,"--porcelain"),{commands:r,format:"utf-8",parser:Ck}}var Rk=q({"src/lib/tasks/push.ts"(){"use strict";Lj(),he()}});function Nj(){return{showBuffer(){let t=["show",...vr(arguments,1)];return t.includes("--binary")||t.splice(1,0,"--binary"),this._runTask($A(t),at(arguments))},show(){let t=["show",...vr(arguments,1)];return this._runTask(rr(t),at(arguments))}}}var Bj=q({"src/lib/tasks/show.ts"(){"use strict";he(),ut()}}),KE,Mk,Hj=q({"src/lib/responses/FileStatusSummary.ts"(){"use strict";KE=/^(.+)\0(.+)$/,Mk=class{constructor(t,e,r){if(this.path=t,this.index=e,this.working_dir=r,e==="R"||r==="R"){let n=KE.exec(t)||[null,t,t];this.from=n[2]||"",this.path=n[1]||""}}}}});function ZE(t){let[e,r]=t.split(Ao);return{from:r||e,to:e}}function Ir(t,e,r){return[`${t}${e}`,r]}function Eg(t,...e){return e.map(r=>Ir(t,r,(n,i)=>Me(n.conflicted,i)))}function Uj(t,e){let r=e.trim();switch(" "){case r.charAt(2):return n(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return n(" ",r.charAt(0),r.substr(2));default:return}function n(i,a,s){let o=`${i}${a}`,l=Ok.get(o);l&&l(t,s),o!=="##"&&o!=="!!"&&t.files.push(new Mk(s,i,a))}}var JE,Ok,Ik,Gj=q({"src/lib/responses/StatusSummary.ts"(){"use strict";he(),Hj(),JE=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},Ok=new Map([Ir(" ","A",(t,e)=>Me(t.created,e)),Ir(" ","D",(t,e)=>Me(t.deleted,e)),Ir(" ","M",(t,e)=>Me(t.modified,e)),Ir("A"," ",(t,e)=>Me(t.created,e)&&Me(t.staged,e)),Ir("A","M",(t,e)=>Me(t.created,e)&&Me(t.staged,e)&&Me(t.modified,e)),Ir("D"," ",(t,e)=>Me(t.deleted,e)&&Me(t.staged,e)),Ir("M"," ",(t,e)=>Me(t.modified,e)&&Me(t.staged,e)),Ir("M","M",(t,e)=>Me(t.modified,e)&&Me(t.staged,e)),Ir("R"," ",(t,e)=>{Me(t.renamed,ZE(e))}),Ir("R","M",(t,e)=>{let r=ZE(e);Me(t.renamed,r),Me(t.modified,r.to)}),Ir("!","!",(t,e)=>{Me(t.ignored=t.ignored||[],e)}),Ir("?","?",(t,e)=>Me(t.not_added,e)),...Eg("A","A","U"),...Eg("D","D","U"),...Eg("U","A","D","U"),["##",(t,e)=>{let r=/ahead (\d+)/,n=/behind (\d+)/,i=/^(.+?(?=(?:\.{3}|\s|$)))/,a=/\.{3}(\S*)/,s=/\son\s([\S]+)$/,o;o=r.exec(e),t.ahead=o&&+o[1]||0,o=n.exec(e),t.behind=o&&+o[1]||0,o=i.exec(e),t.current=o&&o[1],o=a.exec(e),t.tracking=o&&o[1],o=s.exec(e),t.current=o&&o[1]||t.current,t.detached=/\(no branch\)/.test(e)}]]),Ik=function(t){let e=t.split(Ao),r=new JE;for(let n=0,i=e.length;n!Fk.includes(r))],parser(r){return Ik(r)}}}var Fk,Vj=q({"src/lib/tasks/status.ts"(){"use strict";Gj(),Fk=["--null","-z"]}});function ed(t=0,e=0,r=0,n="",i=!0){return Object.defineProperty({major:t,minor:e,patch:r,agent:n,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function qj(){return ed(0,0,0,"",!1)}function Wj(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:Yj,onError(t,e,r,n){if(t.exitCode===-2)return r(Buffer.from(s0));n(e)}})}}}function Yj(t){return t===s0?qj():br(ed(0,0,0,t),$k,t)}var s0,$k,Xj=q({"src/lib/tasks/version.ts"(){"use strict";he(),s0="installed=false",$k=[new me(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(t,[e,r,n,i=""])=>{Object.assign(t,ed(He(e),He(r),He(n),i))}),new me(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(t,[e,r,n,i=""])=>{Object.assign(t,ed(He(e),He(r),n,i))})]}}),Dk={};ft(Dk,{SimpleGitApi:()=>Dg});var Dg,Kj=q({"src/lib/simple-git-api.ts"(){"use strict";tj(),rj(),ij(),oj(),dj(),GA(),pj(),YA(),gj(),_j(),vk(),$j(),Rk(),Bj(),Vj(),ut(),Xj(),he(),Dg=class{constructor(t){this._executor=t}_runTask(t,e){let r=this._executor.chain(),n=r.push(t);return e&&QL(t,n,e),Object.create(this,{then:{value:n.then.bind(n)},catch:{value:n.catch.bind(n)},_executor:{value:r}})}add(t){return this._runTask(rr(["add",...Vn(t)]),at(arguments))}cwd(t){let e=at(arguments);return typeof t=="string"?this._runTask($E(t,this._executor),e):typeof(t==null?void 0:t.path)=="string"?this._runTask($E(t.path,t.root&&this._executor||void 0),e):this._runTask(yr("Git.cwd: workingDirectory must be supplied as a string"),e)}hashObject(t,e){return this._runTask(mj(t,e===!0),at(arguments))}init(t){return this._runTask(bj(t===!0,this._executor.cwd,vr(arguments)),at(arguments))}merge(){return this._runTask(WE(vr(arguments)),at(arguments))}mergeFromTo(t,e){return Vt(t)&&Vt(e)?this._runTask(WE([t,e,...vr(arguments)]),at(arguments,!1)):this._runTask(yr("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(t){return this._executor.outputHandler=t,this}push(){let t=a0({remote:qn(arguments[0],Vt),branch:qn(arguments[1],Vt)},vr(arguments));return this._runTask(t,at(arguments))}stash(){return this._runTask(rr(["stash",...vr(arguments)]),at(arguments))}status(){return this._runTask(zj(vr(arguments)),at(arguments))}},Object.assign(Dg.prototype,nj(),fj(),BL(),sj(),hj(),zL(),Pj(),Nj(),Wj())}}),Lk={};ft(Lk,{Scheduler:()=>Nk});var QE,Nk,Zj=q({"src/lib/runners/scheduler.ts"(){"use strict";he(),QA(),QE=(()=>{let t=0;return()=>{t++;let{promise:e,done:r}=(0,jk.createDeferred)();return{promise:e,done:r,id:t}}})(),Nk=class{constructor(t=2){this.concurrency=t,this.logger=Kg("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",t)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let t=Me(this.running,this.pending.shift());this.logger("Attempting id=%s",t.id),t.done(()=>{this.logger("Completing id=",t.id),nd(this.running,t),this.schedule()})}next(){let{promise:t,id:e}=Me(this.pending,QE());return this.logger("Scheduling id=%s",e),this.schedule(),t}}}}),Bk={};ft(Bk,{applyPatchTask:()=>Jj});function Jj(t,e){return rr(["apply",...e,...t])}var Qj=q({"src/lib/tasks/apply-patch.ts"(){"use strict";ut()}});function eN(t,e){return{branch:t,hash:e,success:!0}}function tN(t){return{branch:t,hash:null,success:!1}}var Hk,rN=q({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";Hk=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function Uk(t,e){return e===1&&Lg.test(t)}var eA,Lg,tA,cd,nN=q({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";rN(),he(),eA=/(\S+)\s+\(\S+\s([^)]+)\)/,Lg=/^error[^']+'([^']+)'/m,tA=[new me(eA,(t,[e,r])=>{let n=eN(e,r);t.all.push(n),t.branches[e]=n}),new me(Lg,(t,[e])=>{let r=tN(e);t.errors.push(r),t.all.push(r),t.branches[e]=r})],cd=(t,e)=>br(new Hk,tA,[t,e])}}),Gk,iN=q({"src/lib/responses/BranchSummary.ts"(){"use strict";Gk=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(t,e,r,n,i){t==="*"&&(this.detached=e,this.current=r),this.all.push(r),this.branches[r]={current:t==="*",linkedWorkTree:t==="+",name:r,commit:n,label:i}}}}});function rA(t){return t?t.charAt(0):""}function zk(t){return br(new Gk,Vk,t)}var Vk,aN=q({"src/lib/parsers/parse-branch.ts"(){"use strict";iN(),he(),Vk=[new me(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(t,[e,r,n,i])=>{t.push(rA(e),!0,r,n,i)}),new me(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,(t,[e,r,n,i])=>{t.push(rA(e),!1,r,n,i)})]}}),qk={};ft(qk,{branchLocalTask:()=>oN,branchTask:()=>sN,containsDeleteBranchCommand:()=>Wk,deleteBranchTask:()=>cN,deleteBranchesTask:()=>lN});function Wk(t){let e=["-d","-D","--delete"];return t.some(r=>e.includes(r))}function sN(t){let e=Wk(t),r=["branch",...t];return r.length===1&&r.push("-a"),r.includes("-v")||r.splice(1,0,"-v"),{format:"utf-8",commands:r,parser(n,i){return e?cd(n,i).all[0]:zk(n)}}}function oN(){return{format:"utf-8",commands:["branch","-v"],parser:zk}}function lN(t,e=!1){return{format:"utf-8",commands:["branch","-v",e?"-D":"-d",...t],parser(r,n){return cd(r,n)},onError({exitCode:r,stdOut:n},i,a,s){if(!Uk(String(i),r))return s(i);a(n)}}}function cN(t,e=!1){let r={format:"utf-8",commands:["branch","-v",e?"-D":"-d",t],parser(n,i){return cd(n,i).branches[t]},onError({exitCode:n,stdErr:i,stdOut:a},s,o,l){if(!Uk(String(s),n))return l(s);throw new mc(r.parser(hc(a),hc(i)),String(s))}};return r}var uN=q({"src/lib/tasks/branch.ts"(){"use strict";ko(),nN(),aN(),he()}}),Yk,fN=q({"src/lib/responses/CheckIgnore.ts"(){"use strict";Yk=t=>t.split(/\n/g).map(e=>e.trim()).filter(e=>!!e)}}),Xk={};ft(Xk,{checkIgnoreTask:()=>dN});function dN(t){return{commands:["check-ignore",...t],format:"utf-8",parser:Yk}}var hN=q({"src/lib/tasks/check-ignore.ts"(){"use strict";fN()}}),Kk={};ft(Kk,{cloneMirrorTask:()=>mN,cloneTask:()=>Zk});function pN(t){return/^--upload-pack(=|$)/.test(t)}function Zk(t,e,r){let n=["clone",...r];return Vt(t)&&n.push(t),Vt(e)&&n.push(e),n.find(pN)?yr("git.fetch: potential exploit argument blocked."):rr(n)}function mN(t,e,r){return Me(r,"--mirror"),Zk(t,e,r)}var gN=q({"src/lib/tasks/clone.ts"(){"use strict";ut(),he()}});function vN(t,e){return br({raw:t,remote:null,branches:[],tags:[],updated:[],deleted:[]},Jk,[t,e])}var Jk,yN=q({"src/lib/parsers/parse-fetch.ts"(){"use strict";he(),Jk=[new me(/From (.+)$/,(t,[e])=>{t.remote=e}),new me(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.branches.push({name:e,tracking:r})}),new me(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.tags.push({name:e,tracking:r})}),new me(/- \[deleted]\s+\S+\s*-> (.+)$/,(t,[e])=>{t.deleted.push({tracking:e})}),new me(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(t,[e,r,n,i])=>{t.updated.push({name:n,tracking:i,to:r,from:e})})]}}),Qk={};ft(Qk,{fetchTask:()=>bN});function wN(t){return/^--upload-pack(=|$)/.test(t)}function bN(t,e,r){let n=["fetch",...r];return t&&e&&n.push(t,e),n.find(wN)?yr("git.fetch: potential exploit argument blocked."):{commands:n,format:"utf-8",parser:vN}}var _N=q({"src/lib/tasks/fetch.ts"(){"use strict";yN(),ut()}});function xN(t){return br({moves:[]},eT,t)}var eT,SN=q({"src/lib/parsers/parse-move.ts"(){"use strict";he(),eT=[new me(/^Renaming (.+) to (.+)$/,(t,[e,r])=>{t.moves.push({from:e,to:r})})]}}),tT={};ft(tT,{moveTask:()=>EN});function EN(t,e){return{commands:["mv","-v",...Vn(t),e],format:"utf-8",parser:xN}}var AN=q({"src/lib/tasks/move.ts"(){"use strict";SN(),he()}}),rT={};ft(rT,{pullTask:()=>kN});function kN(t,e,r){let n=["pull",...r];return t&&e&&n.splice(1,0,t,e),{commands:n,format:"utf-8",parser(i,a){return i0(i,a)},onError(i,a,s,o){let l=Ij(hc(i.stdOut),hc(i.stdErr));if(l)return o(new mc(l));o(a)}}}var TN=q({"src/lib/tasks/pull.ts"(){"use strict";ko(),kk(),he()}});function CN(t){let e={};return nT(t,([r])=>e[r]={name:r}),Object.values(e)}function PN(t){let e={};return nT(t,([r,n,i])=>{e.hasOwnProperty(r)||(e[r]={name:r,refs:{fetch:"",push:""}}),i&&n&&(e[r].refs[i.replace(/[^a-z]/g,"")]=n)}),Object.values(e)}function nT(t,e){Bg(t,r=>e(r.split(/\s+/)))}var RN=q({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";he()}}),iT={};ft(iT,{addRemoteTask:()=>MN,getRemotesTask:()=>ON,listRemotesTask:()=>IN,remoteTask:()=>FN,removeRemoteTask:()=>$N});function MN(t,e,r){return rr(["remote","add",...r,t,e])}function ON(t){let e=["remote"];return t&&e.push("-v"),{commands:e,format:"utf-8",parser:t?PN:CN}}function IN(t){let e=[...t];return e[0]!=="ls-remote"&&e.unshift("ls-remote"),rr(e)}function FN(t){let e=[...t];return e[0]!=="remote"&&e.unshift("remote"),rr(e)}function $N(t){return rr(["remote","remove",t])}var DN=q({"src/lib/tasks/remote.ts"(){"use strict";RN(),ut()}}),aT={};ft(aT,{stashListTask:()=>LN});function LN(t={},e){let r=gk(t),n=["stash","list",...r.commands,...e],i=dk(r.splitter,r.fields,Jg(n));return ld(n)||{commands:n,format:"utf-8",parser:i}}var jN=q({"src/lib/tasks/stash-list.ts"(){"use strict";wc(),pk(),n0(),vk()}}),sT={};ft(sT,{addSubModuleTask:()=>NN,initSubModuleTask:()=>BN,subModuleTask:()=>ud,updateSubModuleTask:()=>HN});function NN(t,e){return ud(["add",t,e])}function BN(t){return ud(["init",...t])}function ud(t){let e=[...t];return e[0]!=="submodule"&&e.unshift("submodule"),rr(e)}function HN(t){return ud(["update",...t])}var UN=q({"src/lib/tasks/sub-module.ts"(){"use strict";ut()}});function GN(t,e){let r=isNaN(t),n=isNaN(e);return r!==n?r?1:-1:r?oT(t,e):0}function oT(t,e){return t===e?0:t>e?1:-1}function zN(t){return t.trim()}function Vf(t){return typeof t=="string"&&parseInt(t.replace(/^\D+/g,""),10)||0}var nA,lT,VN=q({"src/lib/responses/TagList.ts"(){"use strict";nA=class{constructor(t,e){this.all=t,this.latest=e}},lT=function(t,e=!1){let r=t.split(` -`).map(zN).filter(Boolean);e||r.sort(function(i,a){let s=i.split("."),o=a.split(".");if(s.length===1||o.length===1)return GN(Vf(s[0]),Vf(o[0]));for(let l=0,c=Math.max(s.length,o.length);li.indexOf(".")>=0);return new nA(r,n)}}}),cT={};ft(cT,{addAnnotatedTagTask:()=>YN,addTagTask:()=>WN,tagListTask:()=>qN});function qN(t=[]){let e=t.some(r=>/^--sort=/.test(r));return{format:"utf-8",commands:["tag","-l",...t],parser(r){return lT(r,e)}}}function WN(t){return{format:"utf-8",commands:["tag",t],parser(){return{name:t}}}}function YN(t,e){return{format:"utf-8",commands:["tag","-a","-m",e,t],parser(){return{name:t}}}}var XN=q({"src/lib/tasks/tag.ts"(){"use strict";VN()}}),KN=hL({"src/git.js"(t,e){"use strict";var{GitExecutor:r}=(JL(),it(rk)),{SimpleGitApi:n}=(Kj(),it(Dk)),{Scheduler:i}=(Zj(),it(Lk)),{configurationErrorTask:a}=(ut(),it(Mg)),{asArray:s,filterArray:o,filterPrimitives:l,filterString:c,filterStringOrStringArray:u,filterType:f,getTrailingOptions:d,trailingFunctionArgument:h,trailingOptionsArgument:p}=(he(),it(AA)),{applyPatchTask:g}=(Qj(),it(Bk)),{branchTask:v,branchLocalTask:y,deleteBranchesTask:b,deleteBranchTask:E}=(uN(),it(qk)),{checkIgnoreTask:S}=(hN(),it(Xk)),{checkIsRepoTask:A}=(PA(),it(kA)),{cloneTask:k,cloneMirrorTask:w}=(gN(),it(Kk)),{cleanWithOptionsTask:x,isCleanOptionsArray:_}=(BA(),it(jA)),{diffSummaryTask:T}=(n0(),it(mk)),{fetchTask:C}=(_N(),it(Qk)),{moveTask:I}=(AN(),it(tT)),{pullTask:L}=(TN(),it(rT)),{pushTagsTask:$}=(Rk(),it(Pk)),{addRemoteTask:J,getRemotesTask:de,listRemotesTask:le,remoteTask:ce,removeRemoteTask:Te}=(DN(),it(iT)),{getResetMode:ne,resetTask:N}=(JA(),it(XA)),{stashListTask:W}=(jN(),it(aT)),{addSubModuleTask:B,initSubModuleTask:$e,subModuleTask:lr,updateSubModuleTask:Ut}=(UN(),it(sT)),{addAnnotatedTagTask:X,addTagTask:Oe,tagListTask:De}=(XN(),it(cT)),{straightThroughBufferTask:Pt,straightThroughStringTask:Le}=(ut(),it(Mg));function U(j,Z){this._plugins=Z,this._executor=new r(j.baseDir,new i(j.maxConcurrentProcesses),Z),this._trimmed=j.trimmed}(U.prototype=Object.create(n.prototype)).constructor=U,U.prototype.customBinary=function(j){return this._plugins.reconfigure("binary",j),this},U.prototype.env=function(j,Z){return arguments.length===1&&typeof j=="object"?this._executor.env=j:(this._executor.env=this._executor.env||{})[j]=Z,this},U.prototype.stashList=function(j){return this._runTask(W(p(arguments)||{},o(j)&&j||[]),h(arguments))};function Je(j,Z,Se,We){return typeof Se!="string"?a(`git.${j}() requires a string 'repoPath'`):Z(Se,f(We,c),d(arguments))}U.prototype.clone=function(){return this._runTask(Je("clone",k,...arguments),h(arguments))},U.prototype.mirror=function(){return this._runTask(Je("mirror",w,...arguments),h(arguments))},U.prototype.mv=function(j,Z){return this._runTask(I(j,Z),h(arguments))},U.prototype.checkoutLatestTag=function(j){var Z=this;return this.pull(function(){Z.tags(function(Se,We){Z.checkout(We.latest,j)})})},U.prototype.pull=function(j,Z,Se,We){return this._runTask(L(f(j,c),f(Z,c),d(arguments)),h(arguments))},U.prototype.fetch=function(j,Z){return this._runTask(C(f(j,c),f(Z,c),d(arguments)),h(arguments))},U.prototype.silent=function(j){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},U.prototype.tags=function(j,Z){return this._runTask(De(d(arguments)),h(arguments))},U.prototype.rebase=function(){return this._runTask(Le(["rebase",...d(arguments)]),h(arguments))},U.prototype.reset=function(j){return this._runTask(N(ne(j),d(arguments)),h(arguments))},U.prototype.revert=function(j){let Z=h(arguments);return typeof j!="string"?this._runTask(a("Commit must be a string"),Z):this._runTask(Le(["revert",...d(arguments,0,!0),j]),Z)},U.prototype.addTag=function(j){let Z=typeof j=="string"?Oe(j):a("Git.addTag requires a tag name");return this._runTask(Z,h(arguments))},U.prototype.addAnnotatedTag=function(j,Z){return this._runTask(X(j,Z),h(arguments))},U.prototype.deleteLocalBranch=function(j,Z,Se){return this._runTask(E(j,typeof Z=="boolean"?Z:!1),h(arguments))},U.prototype.deleteLocalBranches=function(j,Z,Se){return this._runTask(b(j,typeof Z=="boolean"?Z:!1),h(arguments))},U.prototype.branch=function(j,Z){return this._runTask(v(d(arguments)),h(arguments))},U.prototype.branchLocal=function(j){return this._runTask(y(),h(arguments))},U.prototype.raw=function(j){let Z=!Array.isArray(j),Se=[].slice.call(Z?arguments:j,0);for(let Rt=0;Rtt.removeEventListener("abort",a))}}]:void 0}function QN(t){return typeof t=="string"&&t.trim().toLowerCase()==="-c"}function eB(t,e){if(QN(t)&&/^\s*protocol(.[a-z]+)?.allow/.test(e))throw new _i(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function tB(t,e){if(/^\s*--(upload|receive)-pack/.test(t))throw new _i(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if(e==="clone"&&/^\s*-u\b/.test(t))throw new _i(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if(e==="push"&&/^\s*--exec\b/.test(t))throw new _i(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}function rB({allowUnsafeProtocolOverride:t=!1,allowUnsafePack:e=!1}={}){return{type:"spawn.args",action(r,n){return r.forEach((i,a)=>{let s=aAg(i))).then(s.done)}return{type:"spawn.after",async action(i,{spawned:a,close:s}){var u,f;let o=r(),l=!0,c=()=>void(l=!1);(u=a.stdout)==null||u.on("data",c),(f=a.stderr)==null||f.on("data",c),a.on("error",c),a.on("close",d=>o.close(d)),a.on("exit",d=>o.exit(d));try{await o.result,l&&await Ag(50),s(o.exitCode)}catch(d){s(o.exitCode,d)}}}}he();var aB="Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings",aA="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function sB(t){return!t||!/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(t)}function sA(t,e){if(t.length<1||t.length>2)throw new _i(void 0,"binary",aB);if(t.some(sB))if(e)console.warn(aA);else throw new _i(void 0,"binary",aA);let[n,i]=t;return{binary:n,prefix:i}}function oB(t,e=["git"],r=!1){let n=sA(Vn(e),r);t.on("binary",i=>{n=sA(Vn(i),r)}),t.append("spawn.binary",()=>n.binary),t.append("spawn.args",i=>n.prefix?[n.prefix,...i]:i)}la();function lB(t){return!!(t.exitCode&&t.stdErr.length)}function cB(t){return Buffer.concat([...t.stdOut,...t.stdErr])}function uB(t=!1,e=lB,r=cB){return(n,i)=>!t&&n||!e(i)?n:r(i)}function oA(t){return{type:"task.error",action(e,r){let n=t(e.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});return Buffer.isBuffer(n)?{error:new wr(void 0,n.toString("utf-8"))}:{error:n}}}}he();var fB=class{constructor(){this.plugins=new Set,this.events=new uT.EventEmitter}on(t,e){this.events.on(t,e)}reconfigure(t,e){this.events.emit(t,e)}append(t,e){let r=Me(this.plugins,{type:t,action:e});return()=>this.plugins.delete(r)}add(t){let e=[];return Vn(t).forEach(r=>r&&this.plugins.add(Me(e,r))),()=>{e.forEach(r=>this.plugins.delete(r))}}exec(t,e,r){let n=e,i=Object.freeze(Object.create(r));for(let a of this.plugins)a.type===t&&(n=a.action(n,i));return n}};he();function dB(t){let e="--progress",r=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(a,s){return r.includes(s.method)?mA(a,e):a}},{type:"spawn.after",action(a,s){var o;s.commands.includes(e)&&((o=s.spawned.stderr)==null||o.on("data",l=>{let c=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(l.toString("utf8"));c&&t({method:s.method,stage:hB(c[1]),progress:He(c[2]),processed:He(c[3]),total:He(c[4])})}))}}]}function hB(t){return String(t.toLowerCase().split(" ",1))||"unknown"}he();function pB(t){let e=yA(t,["uid","gid"]);return{type:"spawn.options",action(r){return{...e,...r}}}}function mB({block:t,stdErr:e=!0,stdOut:r=!0}){if(t>0)return{type:"spawn.after",action(n,i){var c,u;let a;function s(){a&&clearTimeout(a),a=setTimeout(l,t)}function o(){var f,d;(f=i.spawned.stdout)==null||f.off("data",s),(d=i.spawned.stderr)==null||d.off("data",s),i.spawned.off("exit",o),i.spawned.off("close",o),a&&clearTimeout(a)}function l(){o(),i.kill(new _i(void 0,"timeout","block timeout reached"))}r&&((c=i.spawned.stdout)==null||c.on("data",s)),e&&((u=i.spawned.stderr)==null||u.on("data",s)),i.spawned.on("exit",o),i.spawned.on("close",o),s()}}}pc();function gB(){return{type:"spawn.args",action(t){let e=[],r;function n(i){(r=r||[]).push(...i)}for(let i=0;iKf(s)&&ME(s)||s));break}e.push(a)}return r?[...e,"--",...r.map(String)]:e}}}he();var vB=KN();function yB(t,e){var i;let r=new fB,n=SA(t&&(typeof t=="string"?{baseDir:t}:t)||{},e);if(!Hg(n.baseDir))throw new ZN(n,"Cannot use simple-git on a directory that does not exist");return Array.isArray(n.config)&&r.add(nB(n.config)),r.add(rB(n.unsafe)),r.add(gB()),r.add(iB(n.completion)),n.abort&&r.add(JN(n.abort)),n.progress&&r.add(dB(n.progress)),n.timeout&&r.add(mB(n.timeout)),n.spawnOptions&&r.add(pB(n.spawnOptions)),r.add(oA(uB(!0))),n.errors&&r.add(oA(n.errors)),oB(r,n.binary,(i=n.unsafe)==null?void 0:i.allowUnsafeCustomBinary),new vB(n,r)}ko();var fT=yB;m();var dT=require("obsidian"),fd="YYYY-MM-DD",o0=`${fd} HH:mm`,l0=`${fd} HH:mm:ss`,dd=40,To="conflict-files-obsidian-git.md",Xe={commitMessage:"vault backup: {{date}}",autoCommitMessage:"vault backup: {{date}}",commitMessageScript:"",commitDateFormat:l0,autoSaveInterval:0,autoPushInterval:0,autoPullInterval:0,autoPullOnBoot:!1,autoCommitOnlyStaged:!1,disablePush:!1,pullBeforePush:!0,disablePopups:!1,showErrorNotices:!0,disablePopupsForNoChanges:!1,listChangedFilesInMessageBody:!1,showStatusBar:!0,updateSubmodules:!1,syncMethod:"merge",customMessageOnAutoBackup:!1,autoBackupAfterFileChange:!1,treeStructure:!1,refreshSourceControl:dT.Platform.isDesktopApp,basePath:"",differentIntervalCommitAndPush:!1,changedFilesInStatusBar:!1,showedMobileNotice:!1,refreshSourceControlTimer:7e3,showBranchStatusBar:!0,setLastSaveToLastCommit:!1,submoduleRecurseCheckout:!1,gitDir:"",showFileMenu:!0,authorInHistoryView:"hide",dateInHistoryView:!1,diffStyle:"split",lineAuthor:{show:!1,followMovement:"inactive",authorDisplay:"initials",showCommitHash:!1,dateTimeFormatOptions:"date",dateTimeFormatCustomString:o0,dateTimeTimezone:"viewer-local",coloringMaxAge:"1y",colorNew:{r:255,g:150,b:150},colorOld:{r:120,g:160,b:255},textColorCss:"var(--text-muted)",ignoreWhitespace:!1,gutterSpacingFallbackLength:5}},$t={type:"git-view",name:"Source Control",icon:"git-pull-request"},Zr={type:"git-history-view",name:"History",icon:"history"},ca={type:"split-diff-view",name:"Diff view",icon:"diff"},ua={type:"diff-view",name:"Diff View",icon:"git-pull-request"},hd="C:\\Program Files\\Git\\cmd\\git.exe",pd="git_credentials_input",es="obsidian_askpass.sh",hT=`#!/bin/sh - -PROMPT="$1" -TEMP_FILE="$OBSIDIAN_GIT_CREDENTIALS_INPUT" - -cleanup() { - rm -f "$TEMP_FILE" "$TEMP_FILE.response" -} -trap cleanup EXIT - -echo "$PROMPT" > "$TEMP_FILE" - -while [ ! -e "$TEMP_FILE.response" ]; do - if [ ! -e "$TEMP_FILE" ]; then - echo "Trigger file got removed: Abort" >&2 - exit 1 - fi - sleep 0.1 -done - -RESPONSE=$(cat "$TEMP_FILE.response") - -echo "$RESPONSE" -`,pT=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"];m();var mT=require("obsidian"),wB={options:[],placeholder:"",allowEmpty:!1,onlySelection:!1,initialValue:void 0,obscure:!1},ze=class extends mT.SuggestModal{constructor(e,r){if(super(e.app),this.config={...wB,...r},this.setPlaceholder(this.config.placeholder),this.config.obscure){this.inputEl.type="password";let n=this.containerEl.querySelector(".prompt-input-container");n.addClass("git-obscure-prompt"),n.setAttr("git-is-obscured","true");let i=n==null?void 0:n.createDiv({cls:"search-input-clear-button"});i.style.marginRight="32px",i.id="git-show-password",i.addEventListener("click",()=>{n.getAttr("git-is-obscured")==="true"?(this.inputEl.type="text",n.setAttr("git-is-obscured","false")):(this.inputEl.type="password",n.setAttr("git-is-obscured","true"))})}}openAndGetResult(){return new Promise(e=>{this.resolve=e,this.open(),this.config.initialValue!=null&&(this.inputEl.value=this.config.initialValue,this.inputEl.dispatchEvent(new Event("input")))})}onClose(){new Promise(e=>setTimeout(e,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(e){return this.config.onlySelection?this.config.options:this.config.allowEmpty?[e.length>0?e:" ",...this.config.options]:[e.length>0?e:"...",...this.config.options]}renderSuggestion(e,r){this.config.obscure?r.hide():r.setText(e)}onChooseSuggestion(e,r){if(this.resolve){let n;this.config.allowEmpty&&e===" "?n="":e==="..."?n=void 0:n=e,this.resolve(n)}}};m();function gT(t,e){let r=Object.assign({},t.lineAuthor,e.lineAuthor);return Object.assign({},t,e,{lineAuthor:r})}var Co=class extends Error{constructor(r){super("No network connection available");this.originalError=r}};m();var e3=Ot(FT()),t3=require("child_process"),r3=Ot(QR()),Ai=require("obsidian");function Ud(t){throw new Error(`Unexpected object: ${t}`)}function Ic(t,e,r){return t===1?`${t} ${e}`:`${t} ${r!=null?r:e+"s"}`}var pv=(t,e)=>t==="."||e==null||e.length===0||e==="."?!0:e.length>=t.length?e.startsWith(t):t.startsWith(e);function vn(t,e){let r;if(e){if(e.button===0||e.button===1){let n=Ai.Keymap.isModEvent(e);r=t.workspace.getLeaf(n)}}else r=t.workspace.getLeaf(!1);return r}function Xn(t,e,r,n,i){if(e.button==2){let a=t.vault.getAbstractFileByPath(r);if(a!=null){let s=new Ai.Menu;t.workspace.trigger("file-menu",s,a,i,n),s.showAtPosition({x:e.pageX,y:e.pageY})}else{let s=new Ai.Menu;t.workspace.trigger("obsidian-git:menu",s,r,i,n),s.showAtPosition({x:e.pageX,y:e.pageY})}}}function pa(t){throw new Error("Impossible branch: "+t)}function mv(t){return`rgb(${t.r},${t.g},${t.b})`}function n3(t){var a;let e=(a=e3.fromString(t))==null?void 0:a.toRgbaArray();if(e===void 0)return;let[r,n,i]=e;return{r,g:n,b:i}}function i3(t){return t.diff(Ai.moment.unix(0),"seconds")}function a3(t){if(t.length!==0)return t.slice().sort()[Math.floor(t.length/2)]}function s3(t,e){return(0,r3.default)(t,e,{strict:!0})}function Fc(t,e){return new Proxy(t,{get(r,n){return n==="length"?Math.min(e,r.length):r[n]}})}function o3(t,e,r){return t.length<=e?new Array(e-t.length).fill(r).join("")+t:t.substring(t.length-e)}function l3(t,e){if(e<=0)return t;let r=new Array(e).fill(" ").join(""),n=t.substring(e,t.length);return r+n}function gv(t,e,r){return t<=e&&e<=r}function ki(t){let[e,...r]=t.split("/");return[e,r.length===0?void 0:r.join("/")]}function Kn(t){return t.endsWith("/")?t:t.split("/").last().replace(/\.md$/,"")}function c3(t){return t===1?"1 minute":`${t} minutes`}function LH(t){let e=t.lastIndexOf(".");return t.substring(e+1)}function Io(t){if(t.endsWith(".md"))return!1;let e=LH(t);return pT.includes(e)}function vv(t){return(t.startsWith("https://github.com/")||t.startsWith("https://gitlab.com/"))&&(t.endsWith(".git")||(t=t+".git")),t}function Fo(t,e){let r=e.vault.getAbstractFileByPath(t);if(!(r instanceof Ai.TFile))return!1;try{return!!e.viewRegistry.getTypeByExtension(r.extension)}catch(n){return!0}}function u3({isFolder:t,gitRelativePath:e}){let r="/";return r+=e,t&&(r+="/"),r.replace(/([\\!#*?[\]])/g,String.raw`\$1`).replace(/\s(?=\s*$)/g,String.raw`\ `)}function $c(t,e,r={}){return new Promise((n,i)=>{let a=(0,t3.spawn)(t,e,r),s="",o="";a.stdout.on("data",l=>{s+=l.toString()}),a.stderr.on("data",l=>{o+=l.toString()}),a.on("error",l=>{n({error:new Error(l.message),stdout:s,stderr:s,code:1})}),a.on("close",l=>{n({stdout:s,stderr:o,code:l!=null?l:1,error:void 0})})})}m();var f3=require("obsidian"),$o=class{constructor(e){this.plugin=e,this.app=e.app}getRelativeVaultPath(e){return this.plugin.settings.basePath?this.plugin.settings.basePath+"/"+e:e}getRelativeRepoPath(e,r=!0){return r&&this.plugin.settings.basePath.length>0?e.substring(this.plugin.settings.basePath.length+1):e}unload(){}_getTreeStructure(e,r=0){let n=[];for(e=[...e];e.length>0;){let i=e.first(),a=i.path.substring(r);if(a.contains("/")){let s=a.substring(0,a.indexOf("/")),o=e.filter(c=>c.path.substring(r).startsWith(s+"/"));o.forEach(c=>e.remove(c));let l=i.path.substring(0,a.indexOf("/")+r);n.push({title:s,path:l,vaultPath:this.getRelativeVaultPath(l),children:this._getTreeStructure(o,(r>0?r+s.length:s.length)+1)})}else n.push({title:a,data:i,path:i.path,vaultPath:this.getRelativeVaultPath(i.path)}),e.remove(i)}return n}simplify(e){var r,n,i,a;for(let s of e){for(;;){let o=((r=s.children)==null?void 0:r.length)==1,l=((i=(n=s.children)==null?void 0:n.first())==null?void 0:i.data)==null;if(!(s.children!=null&&o&&l))break;let c=s.children.first();s.title+="/"+c.title,s.data=c.data,s.path=c.path,s.vaultPath=c.vaultPath,s.children=c.children}s.children!=null&&this.simplify(s.children),(a=s.children)==null||a.sort((o,l)=>{let c=(l.data==null?1:0)-(o.data==null?1:0);return c!=0?c:o.title.localeCompare(l.title)})}return e.sort((s,o)=>{let l=(o.data==null?1:0)-(s.data==null?1:0);return l!=0?l:s.title.localeCompare(o.title)})}getTreeStructure(e){let r=this._getTreeStructure(e);return this.simplify(r)}async formatCommitMessage(e){let r;if(e.includes("{{numFiles}}")){r=await this.status();let n=r.staged.length;e=e.replace("{{numFiles}}",String(n))}if(e.includes("{{hostname}}")){let n=this.plugin.localStorage.getHostname()||"";e=e.replace("{{hostname}}",n)}if(e.includes("{{files}}")){r=r!=null?r:await this.status();let n={},i="";if(r.staged.length<100){r.staged.forEach(s=>{s.index in n?n[s.index].push(s.path):n[s.index]=[s.path]});let a=[];for(let[s,o]of Object.entries(n))a.push(s+" "+o.join(" "));i=a.join(", ")}else i="Too many files to list";e=e.replace("{{files}}",i)}if(e=e.replace("{{date}}",(0,f3.moment)().format(this.plugin.settings.commitDateFormat)),this.plugin.settings.listChangedFilesInMessageBody){let n=r!=null?r:await this.status(),i="";n.staged.length<100?i=n.staged.map(a=>a.path).join(` -`):i="Too many files to list",e=e+` - -Affected files: -`+i}return e}};var Ce=class extends $o{constructor(r){super(r);this.useDefaultWindowsGitPath=!1}async setGitInstance(r=!1){var n;if(await this.isGitInstalled()){let i=this.app.vault.adapter,a=i.getBasePath(),s=a;this.plugin.settings.basePath&&(await i.exists((0,Ti.normalizePath)(this.plugin.settings.basePath))?s=Ve.join(a,this.plugin.settings.basePath):r||new Ti.Notice("ObsidianGit: Base path does not exist")),this.absoluteRepoPath=s,this.git=fT({baseDir:s,binary:this.plugin.localStorage.getGitPath()||(this.useDefaultWindowsGitPath?hd:void 0),config:["core.quotepath=off"],unsafe:{allowUnsafeCustomBinary:!0}});let o=this.plugin.localStorage.getPATHPaths(),l=this.plugin.localStorage.getEnvVars(),c=this.plugin.settings.gitDir;if(o.length>0){let v=o.join(":")+":"+process.env.PATH;process.env.PATH=v}c&&(process.env.GIT_DIR=c);for(let v of l){let[y,b]=v.split("=");process.env[y]=b}let u="simple-git",f=",",h=((n=localStorage.debug)!=null?n:"").split(f);if(!h.includes(u)&&!h.includes(`-${u}`)&&(h.push(u),p3.default.enable(h.join(f))),await this.git.checkIsRepo()){let v=await this.git.revparse("--show-cdup"),y=(0,Dc.resolve)(s+Dc.sep+v);this.absoluteRepoPath=y,await this.git.cwd(y)}let p=Ve.join(a,this.app.vault.configDir,"plugins","obsidian-git"),g=Ve.join(p,es);process.env.SSH_ASKPASS==null&&(process.env.SSH_ASKPASS=g),process.env.OBSIDIAN_GIT_CREDENTIALS_INPUT=Ve.join(p,pd),process.env.SSH_ASKPASS==g&&this.askpass().catch(v=>this.plugin.displayError(v))}}getRelativeVaultPath(r){let i=this.app.vault.adapter.getBasePath(),a=Ve.join(this.absoluteRepoPath,r),s=Ve.relative(i,a);return Ti.Platform.isWin&&(s=s.replace(/\\/g,"/")),s}getRelativeRepoPath(r,n=!0){if(n){let a=this.plugin.app.vault.adapter.getBasePath(),s=this.absoluteRepoPath,o=Ve.join(a,r),l=Ve.relative(s,o);return Ti.Platform.isWin&&(l=l.replace(/\\/g,"/")),l}return r}async askpass(){let r=this.app.vault.adapter,n=r.getBasePath(),i=Ve.join(n,this.app.vault.configDir,"plugins","obsidian-git"),a=this.app.vault.configDir+"/plugins/obsidian-git/";await this.addAskPassScriptToExclude(),await Fr.writeFile(Ve.join(i,es),hT),await Fr.chmod(Ve.join(i,es),493),this.watchAbortController=new AbortController;let{signal:s}=this.watchAbortController;try{let o=Fr.watch(i,{signal:s});for await(let l of o){if(l.filename!=pd)continue;let c=a+pd;if(!await r.exists(c))continue;let u=await r.read(c),f;u.length>60&&(f=new Ti.Notice(u,999999));let d=await new ze(this.plugin,{allowEmpty:!0,obscure:!0,placeholder:u.length>60?"Enter a response to the message.":u}).openAndGetResult();f==null||f.hide(),await r.exists(c)&&await r.write(`${c}.response`,d!=null?d:"")}}catch(o){this.plugin.displayError(o),await Fr.rm(Ve.join(i,es),{force:!0}),await Fr.rm(Ve.join(i,`${es}.response`),{force:!0}),await new Promise(l=>setTimeout(l,5e3)),this.plugin.log("Retry watch for ask pass"),await this.askpass()}}async addAskPassScriptToExclude(){try{let r=await this.git.revparse(["--path-format=absolute","--git-path","info/exclude"]),n=Ve.join(this.app.vault.configDir,"plugins","obsidian-git",es),i=this.getRelativeRepoPath(n,!0);(await Fr.readFile(r,"utf-8")).split(` -`).some(l=>l.contains(i))||await Fr.appendFile(r,i+` -`)}catch(r){console.error("Error while adding askpass script to exclude file:",r)}}unload(){var r;(r=this.watchAbortController)==null||r.abort()}async status(r){let n=r==null?void 0:r.path;this.plugin.setPluginState({gitAction:1});let i=await this.git.status(n!=null?["--",n]:[]);this.plugin.setPluginState({gitAction:0});let a=i.files.map(s=>{let o=this.formatPath(s);return{path:o.path,from:o.from,index:s.index==="?"?"U":s.index,workingDir:s.working_dir==="?"?"U":s.working_dir,vaultPath:this.getRelativeVaultPath(o.path)}});return{all:a,changed:a.filter(s=>s.workingDir!==" "),staged:a.filter(s=>s.index!==" "&&s.index!="U"),conflicted:i.conflicted.map(s=>this.formatPath({path:s}).path)}}async submoduleAwareHeadRevisonInContainingDirectory(r){let n=this.getRelativeRepoPath(r),a=["-C",Ve.dirname(n),"rev-parse","HEAD"],s=this.git.raw(a);return s.catch(o=>console.warn("obsidian-git: rev-parse error:",o)),(await s).trim()}async getSubmodulePaths(){return new Promise(r=>{this.git.outputHandler((n,i,a,s)=>{if(!(s.contains("submodule")&&s.contains("foreach")))return;let o="",l=this.app.vault.adapter.getBasePath()+(this.plugin.settings.basePath?"/"+this.plugin.settings.basePath:"");i.on("data",c=>{o+=c.toString("utf8")}),i.on("end",()=>{let u=o.split(` -`).map(f=>{let d=f.match(/'([^']*)'/);if(d!=null)return l+"/"+d[1]+Dc.sep}).filter(f=>!!f);u.reverse(),r(u)})}),this.git.subModule(["foreach","--recursive",""]).then(()=>{this.git.outputHandler(()=>{})},n=>this.plugin.displayError(n))})}formatPath(r){function n(i){if(i!=null)return i.startsWith('"')&&i.endsWith('"')?i.substring(1,i.length-1):i}return r.from!=null?{from:n(r.from),path:n(r.path)}:{path:n(r.path)}}async blame(r,n,i){if(r=this.getRelativeRepoPath(r),!await this.isTracked(r))return"untracked";let a=await this.getSubmoduleOfFile(r),s=a?["-C",a.submodule]:[],o=a?a.relativeFilepath:r;s.push("blame","--porcelain"),i&&s.push("-w");let l=`-C${dd}`;switch(n){case"inactive":break;case"same-commit":s.push("-C",l);break;case"all-commits":s.push("-C","-C",l);break;default:pa(n)}s.push("--",o);let c=await this.git.raw(s);return jH(c)}async isTracked(r){let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],a=n?n.relativeFilepath:r;return i.push("ls-files","--",a),this.git.raw(i).then(s=>s.trim()!=="")}async commitAll({message:r}){if(this.plugin.settings.updateSubmodules){this.plugin.setPluginState({gitAction:4});let i=await this.getSubmodulePaths();for(let a of i)await this.git.cwd({path:a,root:!1}).add("-A"),await this.git.cwd({path:a,root:!1}).commit(await this.formatCommitMessage(r))}this.plugin.setPluginState({gitAction:3}),await this.git.add("-A"),this.plugin.setPluginState({gitAction:4});let n=await this.git.commit(await this.formatCommitMessage(r));return this.app.workspace.trigger("obsidian-git:head-change"),n.summary.changes}async commit({message:r,amend:n}){this.plugin.setPluginState({gitAction:4});let i=(await this.git.commit(await this.formatCommitMessage(r),n?["--amend"]:[])).summary.changes;return this.app.workspace.trigger("obsidian-git:head-change"),this.plugin.setPluginState({gitAction:0}),i}async stage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.add(["--",r]),this.plugin.setPluginState({gitAction:0})}async stageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.add(r!=null?r:"-A"),this.plugin.setPluginState({gitAction:0})}async unstageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.reset(r!=null?["--",r]:[]),this.plugin.setPluginState({gitAction:0})}async unstage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.reset(["--",r]),this.plugin.setPluginState({gitAction:0})}async discard(r){this.plugin.setPluginState({gitAction:3}),await this.isTracked(r)&&await this.git.checkout(["--",r]),this.plugin.setPluginState({gitAction:0})}async getUntrackedPaths(r){let n=r==null?void 0:r.path;this.plugin.setPluginState({gitAction:1});let i=["ls-files","--others","--exclude-standard","--directory"];n!=null&&i.push("--",n);let a=await this.git.raw(i);return this.plugin.setPluginState({gitAction:0}),a.split(/\r\n|\r|\n/).filter(s=>s.length>0)}async hashObject(r){r=this.getRelativeRepoPath(r);let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],a=n?n.relativeFilepath:r;return i.push("hash-object","--",a),this.git.raw(i)}async discardAll({dir:r}){return this.discard(r!=null?r:".")}async pull(){this.plugin.setPluginState({gitAction:2});try{this.plugin.settings.updateSubmodules&&await this.git.subModule(["update","--remote","--merge","--recursive"]);let r=await this.branchInfo(),n=await this.git.revparse([r.current]);if(!r.tracking&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring pull of main repo and updating submodules only.");return}await this.git.fetch();let i=await this.git.revparse([r.tracking]);if(n!==i){if(this.plugin.settings.syncMethod==="merge"||this.plugin.settings.syncMethod==="rebase")try{switch(this.plugin.settings.syncMethod){case"merge":await this.git.merge([r.tracking]);break;case"rebase":await this.git.rebase([r.tracking])}}catch(o){this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`);return}else if(this.plugin.settings.syncMethod==="reset")try{await this.git.raw(["update-ref",`refs/heads/${r.current}`,i]),await this.unstageAll({})}catch(o){this.plugin.displayError(`Sync failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`)}this.app.workspace.trigger("obsidian-git:head-change");let a=await this.git.revparse([r.current]);return(await this.git.diff([`${n}..${a}`,"--name-only"])).split(/\r\n|\r|\n/).filter(o=>o.length>0).map(o=>({path:o,workingDir:"P",vaultPath:this.getRelativeVaultPath(o)}))}else return[]}catch(r){this.convertErrors(r)}}async push(){this.plugin.setPluginState({gitAction:5});try{if(this.plugin.settings.updateSubmodules){let s=await this.git.env({...process.env,OBSIDIAN_GIT:1}).subModule(["foreach","--recursive",`tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`]);console.log(s)}let r=await this.git.status(),n=r.tracking,i=r.current;if(!n&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring push of main repo and updating submodules only.");return}let a=(await this.git.diffSummary([i,n,"--"])).changed;return await this.git.env({...process.env,OBSIDIAN_GIT:1}).push(),a}catch(r){this.convertErrors(r)}}async getUnpushedCommits(){let r=await this.git.status(),n=r.tracking,i=r.current;if(n==null||i==null)return 0;let[a,s]=ki(n);return(await this.getRemoteBranches(a)).includes(n)?(await this.git.diffSummary([i,n,"--"])).changed:(this.plugin.log(`Tracking branch ${n} does not exist on remote ${a}.`),0)}async canPush(){if(this.plugin.settings.updateSubmodules===!0)return!0;let r=await this.git.status(),n=r.tracking,i=r.current;return n?(await this.git.diffSummary([i,n,"--"])).changed!==0:!1}async checkRequirements(){return await this.isGitInstalled()?await this.git.checkIsRepo()?"valid":"missing-repo":"missing-git"}async branchInfo(){let r=await this.git.status(),n=await this.git.branch(["--no-color"]);return{current:r.current||void 0,tracking:r.tracking||void 0,branches:n.all}}async getRemoteUrl(r){try{return await this.git.remote(["get-url",r])||void 0}catch(n){if(String(n).contains(r))return;throw n}}async log(r,n=!0,i,a){let s;r&&(s=this.getRelativeRepoPath(r,n));let o={file:s,maxCount:i,"--diff-merges":"first-parent","--name-status":null};return a&&(o[a]=null),(await this.git.log(o)).all.map(c=>{var u,f,d,h;return{...c,author:{name:c.author_name,email:c.author_email},refs:c.refs.split(", ").filter(p=>p.length>0),diff:{...c.diff,files:(f=(u=c.diff)==null?void 0:u.files.map(p=>({...p,status:p.status,path:p.file,hash:c.hash,vaultPath:this.getRelativeVaultPath(p.file),fromPath:p.from,fromVaultPath:p.from!=null?this.getRelativeVaultPath(p.from):void 0,binary:p.binary})))!=null?f:[]},fileName:(h=(d=c.diff)==null?void 0:d.files.first())==null?void 0:h.file}})}async show(r,n,i=!0){let a=this.getRelativeRepoPath(n,i);return this.git.show([r+":"+a])}async checkout(r,n){if(n&&(r=`${n}/${r}`),await this.git.checkout(r),this.plugin.settings.submoduleRecurseCheckout){let i=await this.getSubmodulePaths();for(let a of i){let s=await this.git.cwd({path:a,root:!1}).branch();Object.keys(s.branches).includes(r)&&await this.git.cwd({path:a,root:!1}).checkout(r)}}}async createBranch(r){await this.git.checkout(["-b",r])}async deleteBranch(r,n){await this.git.branch([n?"-D":"-d",r])}async branchIsMerged(r){return!(await this.git.branch(["--no-merged"])).all.contains(r)}async init(){await this.git.init(!1)}async clone(r,n,i){await this.git.clone(r,Ve.join(this.app.vault.adapter.getBasePath(),n),i?["--depth",`${i}`]:[])}async setConfig(r,n){n==null?await this.git.raw(["config","--local","--unset",r]):await this.git.addConfig(r,n)}async getConfig(r){let i=(await this.git.listConfig("local")).all[r];if(typeof i=="string"||i==null)return i;throw new Error("Config value is not a string")}async fetch(r){await this.git.fetch(r!=null?[r]:[])}async setRemote(r,n){(await this.getRemotes()).includes(r)?await this.git.remote(["set-url",r,n]):await this.git.remote(["add",r,n])}async getRemoteBranches(r){let n=await this.git.branch(["-r","--list",`${r}*`]),i=[];for(let a in n.branches)i.push(n.branches[a].name);return i}async getRemotes(){let r=await this.git.remote([]);return r?r.trim().split(` -`):[]}async removeRemote(r){await this.git.removeRemote(r)}async updateUpstreamBranch(r){try{await this.git.branch(["--set-upstream-to",r])}catch(n){try{await this.git.branch(["--set-upstream",r])}catch(i){let[a,s]=ki(r),o=await this.branchInfo();await this.git.push(["--set-upstream",a,`${o.current}:${s}`])}}}updateGitPath(r){return this.setGitInstance()}updateBasePath(r){return this.setGitInstance(!0)}async getDiffString(r,n=!1,i){return n?await this.git.diff(["--cached","--",r]):i?await this.git.show([`${i}`,"--",r]):await this.git.diff(["--",r])}async diff(r,n,i){return await this.git.diff([`${n}..${i}`,"--",r])}async rawCommand(r){let n=r.split(" ");return await this.git.raw(n[0],...n.slice(1))}async getSubmoduleOfFile(r){if(!await this.app.vault.adapter.exists(Ve.dirname(r)))return;let n=await this.git.raw(["-C",Ve.dirname(r),"rev-parse","--show-toplevel"],l=>l&&console.warn("get-submodule-of-file",l==null?void 0:l.message));if(n=n.trim(),(await this.git.raw(["-C",Ve.dirname(r),"rev-parse","--show-superproject-working-tree"],l=>l&&console.warn("get-submodule-of-file",l==null?void 0:l.message))).trim()==="")return;let s=this.app.vault.adapter.getFullPath(Ve.normalize(r)),o=Ve.relative(n,s);return{submodule:n,relativeFilepath:o}}async getLastCommitTime(){try{let r=await this.git.log({n:1});if(r!=null&&r.latest!=null)return new Date(r.latest.date)}catch(r){if(r instanceof wr){if(r.message.contains("does not have any commits yet"))return}else throw r}}async isGitInstalled(){let r=this.plugin.localStorage.getGitPath(),n=await $c(r||"git",["--version"],{});if(n.error)if(Ti.Platform.isWin&&!r){this.plugin.log(`Git not found in PATH. Checking standard installation path(${hd}) of Git for Windows.`);let i=await $c(hd,["--version"]);if(i.error)return console.error(i.error),!1;this.useDefaultWindowsGitPath=!0}else return console.error(n.error),!1;else this.useDefaultWindowsGitPath=!1;return!0}convertErrors(r){if(r instanceof wr){let n=String(r.message);if(n.contains("Could not resolve host")||n.contains("Unable to resolve host")||n.match(/ssh: connect to host .*? port .*?: Operation timed out/)!=null||n.match(/ssh: connect to host .*? port .*?: Network is unreachable/)!=null||n.match(/ssh: connect to host .*? port .*?: Undefined error: 0/)!=null)throw new Co(n)}throw r}async isFileTrackedByLFS(r){try{return(await this.git.raw(["check-attr","filter",r])).includes("filter: lfs")}catch(n){let i=n instanceof Error?n.message:String(n);return this.plugin.displayError(`Error checking LFS status: ${i}`),!1}}},m3={hash:"000000",isZeroCommit:!0,summary:""};function jH(t){let r=t.replace(`\r -`,` -`).split(` -`),n={commits:new Map,hashPerLine:[void 0],originalFileLineNrPerLine:[void 0],finalFileLineNrPerLine:[void 0],groupSizePerStartingLine:new Map},i=1;for(let a=0;a=4&&r.groupSizePerStartingLine.set(e,parseInt(t[3])),parseInt(t[2])!==e)throw Error(`git-blame output is out of order: ${e} vs ${t[2]}`);return n}function BH(t,e,r){let n=t[0],i=t.slice(1).join(" "),a=e.hashPerLine[r],s=e.commits.get(a)||{hash:a,author:{},committer:{},previous:{}};switch(n){case"summary":s.summary=i;break;case"author":s.author.name=i;break;case"author-mail":s.author.email=h3(i);break;case"author-time":s.author.epochSeconds=parseInt(i);break;case"author-tz":s.author.tz=i;break;case"committer":s.committer.name=i;break;case"committer-mail":s.committer.email=h3(i);break;case"committer-time":s.committer.epochSeconds=parseInt(i);break;case"committer-tz":s.committer.tz=i;break;case"previous":s.previous.commitHash=i;break;case"filename":s.previous.filename=i;break}e.commits.set(a,s)}function HH(t){if(t.summary===void 0)throw Error(`Summary not provided for commit: ${t.hash}`);yv(t.author)&&(t.author=void 0),yv(t.committer)&&(t.committer=void 0),yv(t.previous)&&(t.previous=void 0),t.isZeroCommit=!!t.hash.match(/^0*$/)}function yv(t){return!t||Object.keys(t).length===0}function d3(t){return t.length>0&&t[0].trim()===t[0]}function h3(t){let e=t.startsWith("<")?t.substring(1):t;return e.endsWith(">")?e.substring(0,e.length-1):e}m();var Q3=require("@codemirror/state");m();var O3=require("@codemirror/state"),th=require("obsidian");m();var bv=class{constructor(){this.eventsPerFilepath=new Map;this.startRemoveStalesSubscribersInterval()}ifFilepathDefinedTransformSubscribers(e,r){if(e)return this.ensureInitialized(e),r(this.eventsPerFilepath.get(e))}forEachSubscriber(e){this.eventsPerFilepath.forEach(r=>r.forEach(e))}ensureInitialized(e){this.eventsPerFilepath.get(e)||this.eventsPerFilepath.set(e,new Set)}startRemoveStalesSubscribersInterval(){this.removeStalesSubscribersTimer=window.setInterval(()=>this==null?void 0:this.forEachSubscriber(e=>e==null?void 0:e.removeIfStale()),6e4)}clear(){window.clearInterval(this.removeStalesSubscribersTimer),this.eventsPerFilepath.clear()}},Do=new bv;m();var Jd=require("@codemirror/state"),T3=Ot(_v());m();var z=require("obsidian");m();m();function yn(){}yn.prototype={diff:function(e,r){var n,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.callback;typeof i=="function"&&(a=i,i={});var s=this;function o(S){return S=s.postProcess(S,i),a?(setTimeout(function(){a(S)},0),!0):S}e=this.castInput(e,i),r=this.castInput(r,i),e=this.removeEmpty(this.tokenize(e,i)),r=this.removeEmpty(this.tokenize(r,i));var l=r.length,c=e.length,u=1,f=l+c;i.maxEditLength!=null&&(f=Math.min(f,i.maxEditLength));var d=(n=i.timeout)!==null&&n!==void 0?n:1/0,h=Date.now()+d,p=[{oldPos:-1,lastComponent:void 0}],g=this.extractCommon(p[0],r,e,0,i);if(p[0].oldPos+1>=c&&g+1>=l)return o(g3(s,p[0].lastComponent,r,e,s.useLongestToken));var v=-1/0,y=1/0;function b(){for(var S=Math.max(v,-u);S<=Math.min(y,u);S+=2){var A=void 0,k=p[S-1],w=p[S+1];k&&(p[S-1]=void 0);var x=!1;if(w){var _=w.oldPos-S;x=w&&0<=_&&_=c&&g+1>=l)return o(g3(s,A.lastComponent,r,e,s.useLongestToken));p[S]=A,A.oldPos+1>=c&&(y=Math.min(y,S-1)),g+1>=l&&(v=Math.max(v,S+1))}u++}if(a)(function S(){setTimeout(function(){if(u>f||Date.now()>h)return a();b()||S()},0)})();else for(;u<=f&&Date.now()<=h;){var E=b();if(E)return E}},addToPath:function(e,r,n,i,a){var s=e.lastComponent;return s&&!a.oneChangePerToken&&s.added===r&&s.removed===n?{oldPos:e.oldPos+i,lastComponent:{count:s.count+1,added:r,removed:n,previousComponent:s.previousComponent}}:{oldPos:e.oldPos+i,lastComponent:{count:1,added:r,removed:n,previousComponent:s}}},extractCommon:function(e,r,n,i,a){for(var s=r.length,o=n.length,l=e.oldPos,c=l-i,u=0;c+1h.length?g:h}),f.value=t.join(d)}else f.value=t.join(r.slice(c,c+f.count));c+=f.count,f.added||(u+=f.count)}}return a}var UH=new yn;function E3(t,e,r){return UH.diff(t,e,r)}function v3(t,e){var r;for(r=0;re.length&&(r=t.length-e.length);var n=e.length;t.length0&&e[s]!=e[a];)a=i[a];e[s]==e[a]&&a++}a=0;for(var o=r;o0&&t[o]!=e[a];)a=i[a];t[o]==e[a]&&a++}return a}var zd="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",zH=new RegExp("[".concat(zd,"]+|\\s+|[^").concat(zd,"]"),"ug"),qd=new yn;qd.equals=function(t,e,r){return r.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t.trim()===e.trim()};qd.tokenize=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(e.intlSegmenter){if(e.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');r=Array.from(e.intlSegmenter.segment(t),function(a){return a.segment})}else r=t.match(zH)||[];var n=[],i=null;return r.forEach(function(a){/\s/.test(a)?i==null?n.push(a):n.push(n.pop()+a):/\s/.test(i)?n[n.length-1]==i?n.push(n.pop()+a):n.push(i+a):n.push(a),i=a}),n};qd.join=function(t){return t.map(function(e,r){return r==0?e:e.replace(/^\s+/,"")}).join("")};qd.postProcess=function(t,e){if(!t||e.oneChangePerToken)return t;var r=null,n=null,i=null;return t.forEach(function(a){a.added?n=a:a.removed?i=a:((n||i)&&b3(r,i,n,a),r=a,n=null,i=null)}),(n||i)&&b3(r,i,n,null),t};function b3(t,e,r,n){if(e&&r){var i=e.value.match(/^\s*/)[0],a=e.value.match(/\s*$/)[0],s=r.value.match(/^\s*/)[0],o=r.value.match(/\s*$/)[0];if(t){var l=v3(i,s);t.value=Ev(t.value,s,l),e.value=Lc(e.value,l),r.value=Lc(r.value,l)}if(n){var c=y3(a,o);n.value=Sv(n.value,o,c),e.value=Gd(e.value,c),r.value=Gd(r.value,c)}}else if(r)t&&(r.value=r.value.replace(/^\s*/,"")),n&&(n.value=n.value.replace(/^\s*/,""));else if(t&&n){var u=n.value.match(/^\s*/)[0],f=e.value.match(/^\s*/)[0],d=e.value.match(/\s*$/)[0],h=v3(u,f);e.value=Lc(e.value,h);var p=y3(Lc(u,h),d);e.value=Gd(e.value,p),n.value=Sv(n.value,u,p),t.value=Ev(t.value,u,u.slice(0,u.length-p.length))}else if(n){var g=n.value.match(/^\s*/)[0],v=e.value.match(/\s*$/)[0],y=w3(v,g);e.value=Gd(e.value,y)}else if(t){var b=t.value.match(/\s*$/)[0],E=e.value.match(/^\s*/)[0],S=w3(b,E);e.value=Lc(e.value,S)}}var A3=new yn;A3.tokenize=function(t){var e=new RegExp("(\\r?\\n)|[".concat(zd,"]+|[^\\S\\n\\r]+|[^").concat(zd,"]"),"ug");return t.match(e)||[]};function k3(t,e,r){return A3.diff(t,e,r)}var Wd=new yn;Wd.tokenize=function(t,e){e.stripTrailingCr&&(t=t.replace(/\r\n/g,` -`));var r=[],n=t.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var i=0;it.length)&&(e=t.length);for(var r=0,n=new Array(e);r0?f(I.lines.slice(-s.context)):[],h-=g.length,p-=g.length)}(C=g).push.apply(C,xv(T.map(function(le){return(_.added?"+":"-")+le}))),_.added?y+=T.length:v+=T.length}else{if(h)if(T.length<=s.context*2&&E(0,ma.normalizePath)(a.substring(e.length))):i=n,i}async mkdir(e){return this.adapter.mkdir(e)}async rmdir(e,r){var n,i;return this.adapter.rmdir(e,(i=(n=r==null?void 0:r.options)==null?void 0:n.recursive)!=null?i:!1)}async stat(e){if(e.endsWith(this.gitDir+"/index")){if(this.index!==void 0&&this.indexctime!=null&&this.indexmtime!=null)return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,size:this.index.byteLength,type:"file",ctimeMs:this.indexctime,mtimeMs:this.indexmtime};{let n=await this.adapter.stat(e);if(n==null)throw{code:"ENOENT"};return this.indexctime=n.ctime,this.indexmtime=n.mtime,{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}}}e==="."&&(e="/");let r=this.vault.getAbstractFileByPath(e);if(this.maybeLog("Stat: "+e),r instanceof ma.TFile)return this.maybeLog("Reuse stat"),{ctimeMs:r.stat.ctime,mtimeMs:r.stat.mtime,size:r.stat.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1};{let n=await this.adapter.stat(e);if(n)return{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:n.type==="folder"?"directory":n.type,isFile:()=>n.type==="file",isDirectory:()=>n.type==="folder",isSymbolicLink:()=>!1};throw{code:"ENOENT"}}}async unlink(e){return this.adapter.remove(e)}async lstat(e){return this.stat(e)}async readlink(e){throw new Error(`readlink of (${e}) is not implemented.`)}async symlink(e){throw new Error(`symlink of (${e}) is not implemented.`)}async saveAndClear(){this.index!==void 0&&await this.adapter.writeBinary(this.plugin.gitManager.getRelativeVaultPath(this.gitDir+"/index"),this.index,{ctime:this.indexctime,mtime:this.indexmtime}),this.clearIndex()}clearIndex(){this.index=void 0,this.indexctime=void 0,this.indexmtime=void 0}get gitDir(){return this.plugin.settings.gitDir||".git"}maybeLog(e){}};var wn=class extends $o{constructor(r){super(r);this.FILE=0;this.HEAD=1;this.WORKDIR=2;this.STAGE=3;this.status_mapping={"000":" ","003":"AD","020":"??","022":"A ","023":"AM",100:"D ",101:" D",103:"MD",110:"DA",111:" ",113:"MM",120:"DA",121:" M",122:"M ",123:"MM"};this.noticeLength=999999;this.fs=new Xd(this.app.vault,this.plugin)}getRepo(){return{fs:this.fs,dir:this.plugin.settings.basePath,gitdir:this.plugin.settings.gitDir||void 0,onAuth:()=>{var r,n;return{username:(r=this.plugin.localStorage.getUsername())!=null?r:void 0,password:(n=this.plugin.localStorage.getPassword())!=null?n:void 0}},onAuthFailure:async()=>{new rs.Notice("Authentication failed. Please try with different credentials");let r=await new ze(this.plugin,{placeholder:"Specify your username"}).openAndGetResult();if(r){let n=await new ze(this.plugin,{placeholder:"Specify your password/personal access token"}).openAndGetResult();if(n)return this.plugin.localStorage.setUsername(r),this.plugin.localStorage.setPassword(n),{username:r,password:n}}return{cancel:!0}},http:{async request({url:r,method:n,headers:i,body:a}){let s;a&&(s=await iU(a));let o=await(0,rs.requestUrl)({url:r,method:n,headers:i,body:s,throw:!1});return{url:r,method:n,headers:o.headers,body:nU(o.arrayBuffer),statusCode:o.status,statusMessage:o.status.toString()}}}}}async wrapFS(r){try{let n=await r;return await this.fs.saveAndClear(),n}catch(n){throw await this.fs.saveAndClear(),n}}async status(r){let n,i=window.setTimeout(()=>{n=new rs.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{this.plugin.setPluginState({gitAction:1});let a={...this.getRepo()};(r==null?void 0:r.path)!=null&&(a.filepaths=[`${r.path}/`]);let s=(await this.wrapFS(re.default.statusMatrix(a))).map(f=>this.getFileStatusResult(f)),o=[],l=[],c=[];for(let f of s)f.workingDir!==" "&&o.push(f),f.index!==" "&&f.index!=="U"&&l.push(f),(f.index!=" "||f.workingDir!=" ")&&c.push(f);let u=[];return window.clearTimeout(i),n==null||n.hide(),{all:c,changed:o,staged:l,conflicted:u}}catch(a){throw window.clearTimeout(i),n==null||n.hide(),this.plugin.displayError(a),a}}async commitAll({message:r,status:n,unstagedFiles:i}){try{return await this.checkAuthorInfo(),await this.stageAll({status:n,unstagedFiles:i}),this.commit({message:r})}catch(a){throw this.plugin.displayError(a),a}}async commit({message:r}){try{await this.checkAuthorInfo(),this.plugin.setPluginState({gitAction:4});let n=await this.formatCommitMessage(r),i=this.plugin.localStorage.getConflict(),a;if(i){let s=await this.branchInfo();a=[s.current,s.tracking]}await this.wrapFS(re.default.commit({...this.getRepo(),message:n,parent:a})),this.plugin.localStorage.setConflict(!1);return}catch(n){throw this.plugin.displayError(n),n}}async stage(r,n){let i=this.getRelativeRepoPath(r,n),a;n?a=r:a=this.getRelativeVaultPath(r);try{this.plugin.setPluginState({gitAction:3}),await this.app.vault.adapter.exists(a)?await this.wrapFS(re.default.add({...this.getRepo(),filepath:i})):await this.wrapFS(re.default.remove({...this.getRepo(),filepath:i}))}catch(s){throw this.plugin.displayError(s),s}}async stageAll({dir:r,status:n,unstagedFiles:i}){try{if(n)await Promise.all(n.changed.map(a=>a.workingDir!=="D"?this.wrapFS(re.default.add({...this.getRepo(),filepath:a.path})):re.default.remove({...this.getRepo(),filepath:a.path})));else{let a=i!=null?i:await this.getUnstagedFiles(r!=null?r:".");await Promise.all(a.map(({path:s,type:o})=>o=="D"?re.default.remove({...this.getRepo(),filepath:s}):this.wrapFS(re.default.add({...this.getRepo(),filepath:s}))))}}catch(a){throw this.plugin.displayError(a),a}}async unstage(r,n){try{this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.wrapFS(re.default.resetIndex({...this.getRepo(),filepath:r}))}catch(i){throw this.plugin.displayError(i),i}}async unstageAll({dir:r,status:n}){try{let i;n?i=n.staged.map(a=>a.path):i=(await this.getStagedFiles(r!=null?r:".")).map(({path:s})=>s),await this.wrapFS(Promise.all(i.map(a=>re.default.resetIndex({...this.getRepo(),filepath:a}))))}catch(i){throw this.plugin.displayError(i),i}}async discard(r){try{this.plugin.setPluginState({gitAction:3}),await this.wrapFS(re.default.checkout({...this.getRepo(),filepaths:[r],force:!0}))}catch(n){throw this.plugin.displayError(n),n}}async discardAll({dir:r,status:n}){let i=[];n?r!=null?i=n.changed.filter(a=>a.workingDir!="U"&&a.path.startsWith(r)).map(a=>a.path):i=n.changed.filter(a=>a.workingDir!="U").map(a=>a.path):i=(await this.getUnstagedFiles(r)).filter(a=>a.type!="A").map(({path:a})=>a);try{await this.wrapFS(re.default.checkout({...this.getRepo(),filepaths:i,force:!0}))}catch(a){throw this.plugin.displayError(a),a}}async getUntrackedPaths(r){let n=[];if(r.status)for(let i of r.status.changed)i.index=="U"&&i.workingDir==="U"&&i.path.startsWith(r.path!=null?`${r.path}/`:"")&&n.push(i.path);else{let i=await this.status({path:r==null?void 0:r.path});for(let a of i.changed)a.index==="U"&&a.workingDir==="U"&&n.push(a.path)}return n}getProgressText(r,n){let i=`${r} progress:`;return n.phase&&(i=`${i} ${n.phase}:`),n.loaded&&(i=`${i} ${n.loaded}`,n.total&&(i=`${i} of ${n.total}`)),i}resolveRef(r){return this.wrapFS(re.default.resolveRef({...this.getRepo(),ref:r}))}async pull(){let r=this.showNotice("Initializing pull");try{this.plugin.setPluginState({gitAction:2});let n=await this.resolveRef("HEAD");await this.fetch();let i=await this.branchInfo();await this.checkAuthorInfo(),(await this.wrapFS(re.default.merge({...this.getRepo(),ours:i.current,theirs:i.tracking,abortOnConflict:!1}))).alreadyMerged||await this.wrapFS(re.default.checkout({...this.getRepo(),ref:i.current,onProgress:l=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Checkout",l))},remote:i.remote})),r==null||r.hide();let s=await this.resolveRef("HEAD"),o=await this.getFileChangesCount(n,s);return this.showNotice("Finished pull",!1),o.map(l=>({path:l.path,workingDir:"P",index:"P",vaultPath:this.getRelativeVaultPath(l.path)}))}catch(n){throw r==null||r.hide(),n instanceof re.Errors.MergeConflictError&&await this.plugin.handleConflict(n.data.filepaths.map(i=>this.getRelativeVaultPath(i))),this.plugin.displayError(n),n}}async push(){if(!await this.canPush())return 0;let r=this.showNotice("Initializing push");try{this.plugin.setPluginState({gitAction:1});let n=await this.branchInfo(),i=n.tracking,a=n.current,s=(await this.getFileChangesCount(a,i)).length;this.plugin.setPluginState({gitAction:5});let o=await this.getCurrentRemote();return await this.wrapFS(re.default.push({...this.getRepo(),remote:o,onProgress:l=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Pushing",l))}})),r==null||r.hide(),s}catch(n){throw r==null||r.hide(),this.plugin.displayError(n),n}}async getUnpushedCommits(){let r=await this.branchInfo(),n=r.tracking,i=r.current;if(n==null||i==null)return 0;let a=await this.resolveRef(i),s=await this.resolveRef(n);return(await this.getFileChangesCount(a,s)).length}async canPush(){let r=await this.branchInfo(),n=r.tracking,i=r.current,a=await this.resolveRef(i),s=await this.resolveRef(n);return a!=s}async checkRequirements(){return await this.plugin.app.vault.adapter.exists(`${this.getRepo().dir}/.git/HEAD`)?"valid":"missing-repo"}async branchInfo(){var r,n;try{let i=await re.default.currentBranch(this.getRepo())||"",a=await re.default.listBranches(this.getRepo()),s=(r=await this.getConfig(`branch.${i}.remote`))!=null?r:"origin",o=(n=await this.getConfig(`branch.${i}.merge`))==null?void 0:n.split("refs/heads")[1],l=o?s+o:void 0;return{current:i,tracking:l,branches:a,remote:s}}catch(i){throw this.plugin.displayError(i),i}}async getCurrentRemote(){var i;let r=await re.default.currentBranch(this.getRepo())||"";return(i=await this.getConfig(`branch.${r}.remote`))!=null?i:"origin"}async checkout(r,n){try{return this.wrapFS(re.default.checkout({...this.getRepo(),ref:r,force:!!n,remote:n}))}catch(i){throw this.plugin.displayError(i),i}}async createBranch(r){try{await this.wrapFS(re.default.branch({...this.getRepo(),ref:r,checkout:!0}))}catch(n){throw this.plugin.displayError(n),n}}async deleteBranch(r){try{await this.wrapFS(re.default.deleteBranch({...this.getRepo(),ref:r}))}catch(n){throw this.plugin.displayError(n),n}}branchIsMerged(r){return Promise.resolve(!0)}async init(){try{await this.wrapFS(re.default.init(this.getRepo()))}catch(r){throw this.plugin.displayError(r),r}}async clone(r,n,i){let a=this.showNotice("Initializing clone");try{await this.wrapFS(re.default.clone({...this.getRepo(),dir:n,url:r,depth:i,onProgress:s=>{a!==void 0&&(a.noticeEl.innerText=this.getProgressText("Cloning",s))}})),a==null||a.hide()}catch(s){throw a==null||a.hide(),this.plugin.displayError(s),s}}async setConfig(r,n){try{return this.wrapFS(re.default.setConfig({...this.getRepo(),path:r,value:n}))}catch(i){throw this.plugin.displayError(i),i}}async getConfig(r){try{return this.wrapFS(re.default.getConfig({...this.getRepo(),path:r}))}catch(n){throw this.plugin.displayError(n),n}}async fetch(r){let n=this.showNotice("Initializing fetch");try{let i={...this.getRepo(),onProgress:a=>{n!==void 0&&(n.noticeEl.innerText=this.getProgressText("Fetching",a))},remote:r!=null?r:await this.getCurrentRemote()};await this.wrapFS(re.default.fetch(i)),n==null||n.hide()}catch(i){throw this.plugin.displayError(i),n==null||n.hide(),i}}async setRemote(r,n){try{await this.wrapFS(re.default.addRemote({...this.getRepo(),remote:r,url:n,force:!0}))}catch(i){throw this.plugin.displayError(i),i}}async getRemoteBranches(r){let n=[];return n.push(...await this.wrapFS(re.default.listBranches({...this.getRepo(),remote:r}))),n.remove("HEAD"),n=n.map(i=>`${r}/${i}`),n}async getRemotes(){return(await this.wrapFS(re.default.listRemotes({...this.getRepo()}))).map(r=>r.remote)}async removeRemote(r){await this.wrapFS(re.default.deleteRemote({...this.getRepo(),remote:r}))}async getRemoteUrl(r){var n;return(n=(await this.wrapFS(re.default.listRemotes({...this.getRepo()}))).filter(i=>i.remote==r)[0])==null?void 0:n.url}async log(r,n=!0,i,a){let s=await this.wrapFS(re.default.log({...this.getRepo(),depth:i,ref:a}));return Promise.all(s.map(async o=>{let l=o.commit.message.split(` - -`);return{message:l[0],author:{name:o.commit.author.name,email:o.commit.author.email},body:l.slice(1).join(` - -`),date:new Date(o.commit.committer.timestamp).toDateString(),diff:{changed:0,files:(await this.getFileChangesCount(o.commit.parent.first(),o.oid)).map(c=>({path:c.path,status:c.type,vaultPath:this.getRelativeVaultPath(c.path),hash:o.oid}))},hash:o.oid,refs:[]}}))}updateBasePath(r){return this.getRepo().dir=r,Promise.resolve()}async updateUpstreamBranch(r){let[n,i]=ki(r),a=await this.branchInfo();await this.wrapFS(re.default.push({...this.getRepo(),remote:n,remoteRef:i})),await this.setConfig(`branch.${a.current}.merge`,`refs/heads/${i}`)}updateGitPath(r){return Promise.resolve()}async getFileChangesCount(r,n){return this.walkDifference({walkers:[re.default.TREE({ref:r}),re.default.TREE({ref:n})]})}async walkDifference({walkers:r,dir:n}){return await this.wrapFS(re.default.walk({...this.getRepo(),trees:r,map:async function(a,[s,o]){if(!pv(a,n))return null;if(await(s==null?void 0:s.type())==="tree"||await(o==null?void 0:o.type())==="tree")return;let l=await(s==null?void 0:s.oid()),c=await(o==null?void 0:o.oid()),u="equal";if(l!==c&&(u="M"),l===void 0&&(u="A"),c===void 0&&(u="D"),l===void 0&&c===void 0&&(console.log("Something weird happened:"),console.log(s),console.log(o)),u!=="equal")return{path:a,type:u}}}))}async getStagedFiles(r="."){return(await this.walkDifference({walkers:[re.default.TREE({ref:"HEAD"}),re.default.STAGE()],dir:r})).map(i=>({vaultPath:this.getRelativeVaultPath(i.path),path:i.path}))}async getUnstagedFiles(r="."){let n,i=window.setTimeout(()=>{n=new rs.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{let a=this.getRepo(),s=await this.wrapFS(re.default.walk({...a,trees:[re.default.WORKDIR(),re.default.STAGE()],map:async function(o,[l,c]){if(!c&&l&&await re.default.isIgnored({...a,filepath:o})||!pv(o,r))return null;let[u,f]=await Promise.all([l&&l.type(),c&&c.type()]),d=[u,f].includes("blob");if((u==="tree"||u==="special")&&!d)return;if(f==="commit")return null;if((f==="tree"||f==="special")&&!d)return;let h=f==="blob"?await c.oid():void 0,p;return u==="blob"&&f!=="blob"?p="42":u==="blob"&&(p=await l.oid()),p?h?p!==h?{path:o,type:"M"}:null:{path:o,type:"A"}:{path:o,type:"D"}}}));return window.clearTimeout(i),n==null||n.hide(),s}catch(a){throw window.clearTimeout(i),n==null||n.hide(),this.plugin.displayError(a),a}}async getDiffString(r,n=!1,i){let a=this.getRelativeVaultPath(r),s=async(c,[u])=>{if(r==c){let f=await u.oid();return(await re.default.readBlob({...this.getRepo(),oid:f})).blob}};if(i){let c=await(0,re.readBlob)({...this.getRepo(),filepath:r,oid:i}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof re.default.Errors.NotFoundError))throw h}),u=await re.default.readCommit({...this.getRepo(),oid:i}),f=await(0,re.readBlob)({...this.getRepo(),filepath:r,oid:u.commit.parent.first()}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof re.default.Errors.NotFoundError))throw h});return Yd(a,f!=null?f:"",c!=null?c:"")}let o=(await re.default.walk({...this.getRepo(),trees:[re.default.STAGE()],map:s})).first(),l=new TextDecoder().decode(o);if(n){let c=await this.resolveRef("HEAD").then(f=>(0,re.readBlob)({...this.getRepo(),filepath:r,oid:f})).then(f=>new TextDecoder().decode(f.blob)).catch(f=>{if(!(f instanceof re.default.Errors.NotFoundError))throw f});return Yd(a,c!=null?c:"",l)}else{let c;return await this.app.vault.adapter.exists(a)?c=await this.app.vault.adapter.read(a):c="",Yd(a,l,c)}}async getLastCommitTime(){let r=this.getRepo(),n=await this.resolveRef("HEAD"),a=(await re.default.readCommit({...r,oid:n})).commit.committer.timestamp;return new Date(a*1e3)}getFileStatusResult(r){let n=this.status_mapping[`${r[this.HEAD]}${r[this.WORKDIR]}${r[this.STAGE]}`];return{index:n[0]=="?"?"U":n[0],workingDir:n[1]=="?"?"U":n[1],path:r[this.FILE],vaultPath:this.getRelativeVaultPath(r[this.FILE])}}async checkAuthorInfo(){let r=await this.getConfig("user.name"),n=await this.getConfig("user.email");if(!r||!n)throw Error("Git author name and email are not set. Please set both fields in the settings.")}showNotice(r,n=!0){if(!this.plugin.settings.disablePopups)return new rs.Notice(r,n?this.noticeLength:void 0)}};async function*nU(t){yield new Uint8Array(t)}async function iU(t){let e=new ReadableStream({async start(n){for await(let i of t)n.enqueue(i);n.close()}});return await new Response(e).arrayBuffer()}var aU="https://momentjs.com/docs/#/parsing/string-format/",sU="https://publish.obsidian.md/git-doc/Line+Authoring",Kd=class extends z.PluginSettingTab{constructor(r,n){super(r,n);this.plugin=n;this.lineAuthorColorSettings=new Map}get settings(){return this.plugin.settings}display(){let{containerEl:r}=this,n=this.plugin,i;n.settings.differentIntervalCommitAndPush?i="commit":i="commit-and-sync";let a=n.gitReady;r.empty(),a||(r.createEl("p",{text:"Git is not ready. When all settings are correct you can configure commit-sync, etc."}),r.createEl("br"));let s;if(a){new z.Setting(r).setName("Automatic").setHeading(),new z.Setting(r).setName("Split timers for automatic commit and sync").setDesc("Enable to use one interval for commit and another for sync.").addToggle(u=>u.setValue(n.settings.differentIntervalCommitAndPush).onChange(async f=>{n.settings.differentIntervalCommitAndPush=f,await n.saveSettings(),n.automaticsManager.reload("commit","push"),this.refreshDisplayWithDelay()})),new z.Setting(r).setName(`Auto ${i} interval (minutes)`).setDesc(`${n.settings.differentIntervalCommitAndPush?"Commit":"Commit and sync"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText(u=>{u.inputEl.type="number",this.setNonDefaultValue({text:u,settingsProperty:"autoSaveInterval"}),u.setPlaceholder(String(Xe.autoSaveInterval)),u.onChange(async f=>{f!==""?n.settings.autoSaveInterval=Number(f):n.settings.autoSaveInterval=Xe.autoSaveInterval,await n.saveSettings(),n.automaticsManager.reload("commit")})}),s=new z.Setting(r).setName(`Auto ${i} after stopping file edits`).setDesc(`Requires the ${i} interval not to be 0. - If turned on, do auto ${i} every ${c3(n.settings.autoSaveInterval)} after stopping file edits. - This also prevents auto ${i} while editing a file. If turned off, it's independent from the last file edit.`).addToggle(u=>u.setValue(n.settings.autoBackupAfterFileChange).onChange(async f=>{n.settings.autoBackupAfterFileChange=f,this.refreshDisplayWithDelay(),await n.saveSettings(),n.automaticsManager.reload("commit")})),this.mayDisableSetting(s,n.settings.setLastSaveToLastCommit),s=new z.Setting(r).setName(`Auto ${i} after latest commit`).setDesc(`If turned on, sets last auto ${i} timestamp to the latest commit timestamp. This reduces the frequency of auto ${i} when doing manual commits.`).addToggle(u=>u.setValue(n.settings.setLastSaveToLastCommit).onChange(async f=>{n.settings.setLastSaveToLastCommit=f,await n.saveSettings(),n.automaticsManager.reload("commit"),this.refreshDisplayWithDelay()})),this.mayDisableSetting(s,n.settings.autoBackupAfterFileChange),s=new z.Setting(r).setName("Auto push interval (minutes)").setDesc("Push commits every X minutes. Set to 0 (default) to disable.").addText(u=>{u.inputEl.type="number",this.setNonDefaultValue({text:u,settingsProperty:"autoPushInterval"}),u.setPlaceholder(String(Xe.autoPushInterval)),u.onChange(async f=>{f!==""?n.settings.autoPushInterval=Number(f):n.settings.autoPushInterval=Xe.autoPushInterval,await n.saveSettings(),n.automaticsManager.reload("push")})}),this.mayDisableSetting(s,!n.settings.differentIntervalCommitAndPush),new z.Setting(r).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText(u=>{u.inputEl.type="number",this.setNonDefaultValue({text:u,settingsProperty:"autoPullInterval"}),u.setPlaceholder(String(Xe.autoPullInterval)),u.onChange(async f=>{f!==""?n.settings.autoPullInterval=Number(f):n.settings.autoPullInterval=Xe.autoPullInterval,await n.saveSettings(),n.automaticsManager.reload("pull")})}),new z.Setting(r).setName(`Auto ${i} only staged files`).setDesc(`If turned on, only staged files are committed on ${i}. If turned off, all changed files are committed.`).addToggle(u=>u.setValue(n.settings.autoCommitOnlyStaged).onChange(async f=>{n.settings.autoCommitOnlyStaged=f,await n.saveSettings()})),new z.Setting(r).setName(`Specify custom commit message on auto ${i}`).setDesc("You will get a pop up to specify your message.").addToggle(u=>u.setValue(n.settings.customMessageOnAutoBackup).onChange(async f=>{n.settings.customMessageOnAutoBackup=f,await n.saveSettings(),this.refreshDisplayWithDelay()})),s=new z.Setting(r).setName(`Commit message on auto ${i}`).setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>{u.setPlaceholder(Xe.autoCommitMessage).onChange(async f=>{f===""?n.settings.autoCommitMessage=Xe.autoCommitMessage:n.settings.autoCommitMessage=f,await n.saveSettings()}),this.setNonDefaultValue({text:u,settingsProperty:"autoCommitMessage"})}),this.mayDisableSetting(s,n.settings.customMessageOnAutoBackup),new z.Setting(r).setName("Commit message").setHeading(),new z.Setting(r).setName("Commit message on manual commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>{u.setPlaceholder(Xe.commitMessage).onChange(async f=>{f===""?n.settings.commitMessage=Xe.commitMessage:n.settings.commitMessage=f,await n.saveSettings()}),this.setNonDefaultValue({text:u,settingsProperty:"commitMessage"})}),new z.Setting(r).setName("Commit message script").setDesc("A script that is run using 'sh -c' to generate the commit message. May be used to generate commit messages using AI tools. Available placeholders: {{hostname}}, {{date}}.").addText(u=>{u.onChange(async f=>{f===""?n.settings.commitMessageScript=Xe.commitMessageScript:n.settings.commitMessageScript=f,await n.saveSettings()}),this.setNonDefaultValue({text:u,settingsProperty:"commitMessageScript"})});let c=new z.Setting(r).setName("{{date}} placeholder format").addMomentFormat(u=>u.setDefaultFormat(n.settings.commitDateFormat).setValue(n.settings.commitDateFormat).onChange(async f=>{n.settings.commitDateFormat=f,await n.saveSettings()}));c.descEl.innerHTML=` - Specify custom date format. E.g. "${l0}. See Moment.js for more formats.`,new z.Setting(r).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText(u=>{var f;return u.setValue((f=n.localStorage.getHostname())!=null?f:"").onChange(d=>{n.localStorage.setHostname(d)})}),new z.Setting(r).setName("Preview commit message").addButton(u=>u.setButtonText("Preview").onClick(async()=>{let f=await n.gitManager.formatCommitMessage(n.settings.commitMessage);new z.Notice(`${f}`)})),new z.Setting(r).setName("List filenames affected by commit in the commit body").addToggle(u=>u.setValue(n.settings.listChangedFilesInMessageBody).onChange(async f=>{n.settings.listChangedFilesInMessageBody=f,await n.saveSettings()})),new z.Setting(r).setName("Pull").setHeading(),n.gitManager instanceof Ce&&new z.Setting(r).setName("Merge strategy").setDesc("Decide how to integrate commits from your remote branch into your local branch.").addDropdown(u=>{let f={merge:"Merge",rebase:"Rebase",reset:"Other sync service (Only updates the HEAD without touching the working directory)"};u.addOptions(f),u.setValue(n.settings.syncMethod),u.onChange(async d=>{n.settings.syncMethod=d,await n.saveSettings()})}),new z.Setting(r).setName("Pull on startup").setDesc("Automatically pull commits when Obsidian starts.").addToggle(u=>u.setValue(n.settings.autoPullOnBoot).onChange(async f=>{n.settings.autoPullOnBoot=f,await n.saveSettings()})),new z.Setting(r).setName("Commit-and-sync").setDesc("Commit-and-sync with default settings means staging everything -> committing -> pulling -> pushing. Ideally this is a single action that you do regularly to keep your local and remote repository in sync.").setHeading(),s=new z.Setting(r).setName("Push on commit-and-sync").setDesc(`Most of the time you want to push after committing. Turning this off turns a commit-and-sync action into commit ${n.settings.pullBeforePush?"and pull ":""}only. It will still be called commit-and-sync.`).addToggle(u=>u.setValue(!n.settings.disablePush).onChange(async f=>{n.settings.disablePush=!f,this.refreshDisplayWithDelay(),await n.saveSettings()})),new z.Setting(r).setName("Pull on commit-and-sync").setDesc(`On commit-and-sync, pull commits as well. Turning this off turns a commit-and-sync action into commit ${n.settings.disablePush?"":"and push "}only.`).addToggle(u=>u.setValue(n.settings.pullBeforePush).onChange(async f=>{n.settings.pullBeforePush=f,this.refreshDisplayWithDelay(),await n.saveSettings()})),n.gitManager instanceof Ce&&(new z.Setting(r).setName("Line author information").setHeading(),this.addLineAuthorInfoSettings())}new z.Setting(r).setName("History view").setHeading(),new z.Setting(r).setName("Show Author").setDesc("Show the author of the commit in the history view.").addDropdown(c=>{let u={hide:"Hide",full:"Full",initials:"Initials"};c.addOptions(u),c.setValue(n.settings.authorInHistoryView),c.onChange(async f=>{n.settings.authorInHistoryView=f,await n.saveSettings(),await n.refresh()})}),new z.Setting(r).setName("Show Date").setDesc("Show the date of the commit in the history view. The {{date}} placeholder format is used to display the date.").addToggle(c=>c.setValue(n.settings.dateInHistoryView).onChange(async u=>{n.settings.dateInHistoryView=u,await n.saveSettings(),await n.refresh()})),new z.Setting(r).setName("Source control view").setHeading(),new z.Setting(r).setName("Automatically refresh source control view on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option.").addToggle(c=>c.setValue(n.settings.refreshSourceControl).onChange(async u=>{n.settings.refreshSourceControl=u,await n.saveSettings()})),new z.Setting(r).setName("Source control view refresh interval").setDesc("Milliseconds to wait after file change before refreshing the Source Control View.").addText(c=>{c.inputEl.type="number",this.setNonDefaultValue({text:c,settingsProperty:"refreshSourceControlTimer"}),c.setPlaceholder(String(Xe.refreshSourceControlTimer)),c.onChange(async f=>{f!==""&&Number.isInteger(Number(f))?n.settings.refreshSourceControlTimer=Math.max(Number(f),500):n.settings.refreshSourceControlTimer=Xe.refreshSourceControlTimer,await n.saveSettings(),n.setRefreshDebouncer()})}),new z.Setting(r).setName("Miscellaneous").setHeading(),n.gitManager instanceof Ce&&new z.Setting(r).setName("Diff view style").setDesc('Set the style for the diff view. Note that the actual diff in "Split" mode is not generated by Git, but the editor itself instead so it may differ from the diff generated by Git. One advantage of this is that you can edit the text in that view.').addDropdown(c=>{let u={split:"Split",git_unified:"Unified"};c.addOptions(u),c.setValue(n.settings.diffStyle),c.onChange(async f=>{n.settings.diffStyle=f,await n.saveSettings()})}),new z.Setting(r).setName("Disable informative notifications").setDesc("Disable informative notifications for git operations to minimize distraction (refer to status bar for updates).").addToggle(c=>c.setValue(n.settings.disablePopups).onChange(async u=>{n.settings.disablePopups=u,this.refreshDisplayWithDelay(),await n.saveSettings()})),new z.Setting(r).setName("Disable error notifications").setDesc("Disable error notifications of any kind to minimize distraction (refer to status bar for updates).").addToggle(c=>c.setValue(!n.settings.showErrorNotices).onChange(async u=>{n.settings.showErrorNotices=!u,await n.saveSettings()})),n.settings.disablePopups||new z.Setting(r).setName("Hide notifications for no changes").setDesc("Don't show notifications when there are no changes to commit or push.").addToggle(c=>c.setValue(n.settings.disablePopupsForNoChanges).onChange(async u=>{n.settings.disablePopupsForNoChanges=u,await n.saveSettings()})),new z.Setting(r).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(c=>c.setValue(n.settings.showStatusBar).onChange(async u=>{n.settings.showStatusBar=u,await n.saveSettings()})),new z.Setting(r).setName("File menu integration").setDesc('Add "Stage", "Unstage" and "Add to .gitignore" actions to the file menu.').addToggle(c=>c.setValue(n.settings.showFileMenu).onChange(async u=>{n.settings.showFileMenu=u,await n.saveSettings()})),new z.Setting(r).setName("Show branch status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(c=>c.setValue(n.settings.showBranchStatusBar).onChange(async u=>{n.settings.showBranchStatusBar=u,await n.saveSettings()})),new z.Setting(r).setName("Show the count of modified files in the status bar").addToggle(c=>c.setValue(n.settings.changedFilesInStatusBar).onChange(async u=>{n.settings.changedFilesInStatusBar=u,await n.saveSettings()})),n.gitManager instanceof wn?new z.Setting(r).setName("Authentication/commit author").setHeading():new z.Setting(r).setName("Commit author").setHeading(),n.gitManager instanceof wn&&new z.Setting(r).setName("Username on your git server. E.g. your username on GitHub").addText(c=>{var u;c.setValue((u=n.localStorage.getUsername())!=null?u:""),c.onChange(f=>{n.localStorage.setUsername(f)})}),n.gitManager instanceof wn&&new z.Setting(r).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText(c=>{c.inputEl.autocapitalize="off",c.inputEl.autocomplete="off",c.inputEl.spellcheck=!1,c.onChange(u=>{n.localStorage.setPassword(u)})}),n.gitReady&&new z.Setting(r).setName("Author name for commit").addText(async c=>{var u;c.setValue((u=await n.gitManager.getConfig("user.name"))!=null?u:""),c.onChange(async f=>{await n.gitManager.setConfig("user.name",f==""?void 0:f)})}),n.gitReady&&new z.Setting(r).setName("Author email for commit").addText(async c=>{var u;c.setValue((u=await n.gitManager.getConfig("user.email"))!=null?u:""),c.onChange(async f=>{await n.gitManager.setConfig("user.email",f==""?void 0:f)})}),new z.Setting(r).setName("Advanced").setDesc("These settings usually don't need to be changed, but may be required for special setups.").setHeading(),n.gitManager instanceof Ce&&(new z.Setting(r).setName("Update submodules").setDesc('"Commit-and-sync" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule.').addToggle(c=>c.setValue(n.settings.updateSubmodules).onChange(async u=>{n.settings.updateSubmodules=u,await n.saveSettings()})),n.settings.updateSubmodules&&new z.Setting(r).setName("Submodule recurse checkout/switch").setDesc("Whenever a checkout happens on the root repository, recurse the checkout on the submodules (if the branches exist).").addToggle(c=>c.setValue(n.settings.submoduleRecurseCheckout).onChange(async u=>{n.settings.submoduleRecurseCheckout=u,await n.saveSettings()}))),n.gitManager instanceof Ce&&new z.Setting(r).setName("Custom Git binary path").addText(c=>{var u;c.setValue((u=n.localStorage.getGitPath())!=null?u:""),c.setPlaceholder("git"),c.onChange(f=>{n.localStorage.setGitPath(f),n.gitManager.updateGitPath(f||"git").catch(d=>n.displayError(d))})}),n.gitManager instanceof Ce&&new z.Setting(r).setName("Additional environment variables").setDesc("Use each line for a new environment variable in the format KEY=VALUE .").addTextArea(c=>{c.setPlaceholder("GIT_DIR=/path/to/git/dir"),c.setValue(n.localStorage.getEnvVars().join(` -`)),c.onChange(u=>{n.localStorage.setEnvVars(u.split(` -`))})}),n.gitManager instanceof Ce&&new z.Setting(r).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea(c=>{c.setValue(n.localStorage.getPATHPaths().join(` -`)),c.onChange(u=>{n.localStorage.setPATHPaths(u.split(` -`))})}),n.gitManager instanceof Ce&&new z.Setting(r).setName("Reload with new environment variables").setDesc("Removing previously added environment variables will not take effect until Obsidian is restarted.").addButton(c=>{c.setButtonText("Reload"),c.setCta(),c.onClick(async()=>{await n.gitManager.setGitInstance()})}),new z.Setting(r).setName("Custom base path (Git repository path)").setDesc(` - Sets the relative path to the vault from which the Git binary should be executed. - Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. - `).addText(c=>{c.setValue(n.settings.basePath),c.setPlaceholder("directory/directory-with-git-repo"),c.onChange(async u=>{n.settings.basePath=u,await n.saveSettings(),n.gitManager.updateBasePath(u||"").catch(f=>n.displayError(f))})}),new z.Setting(r).setName("Custom Git directory path (Instead of '.git')").setDesc('Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.').addText(c=>{c.setValue(n.settings.gitDir),c.setPlaceholder(".git"),c.onChange(async u=>{n.settings.gitDir=u,await n.saveSettings()})}),new z.Setting(r).setName("Disable on this device").setDesc("Disables the plugin on this device. This setting is not synced.").addToggle(c=>c.setValue(n.localStorage.getPluginDisabled()).onChange(u=>{n.localStorage.setPluginDisabled(u),u?n.unloadPlugin():n.init({fromReload:!0}).catch(f=>n.displayError(f)),new z.Notice("Obsidian must be restarted for the changes to take affect.")})),new z.Setting(r).setName("Support").setHeading(),new z.Setting(r).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton(c=>{c.buttonEl.outerHTML="Buy Me a Coffee at ko-fi.com"});let o=r.createDiv();o.setAttr("align","center"),o.setAttr("style","margin: var(--size-4-2)");let l=o.createEl("button");if(l.setText("Copy Debug Information"),l.onclick=async()=>{await window.navigator.clipboard.writeText(JSON.stringify({settings:this.plugin.settings,pluginVersion:this.plugin.manifest.version},null,4)),new z.Notice("Debug information copied to clipboard. May contain sensitive information!")},z.Platform.isDesktopApp){let c=r.createDiv();c.setAttr("align","center"),c.setText(`Debugging and logging: -You can always see the logs of this and every other plugin by opening the console with`);let u=r.createDiv();u.setAttr("align","center"),u.addClass("obsidian-git-shortcuts"),z.Platform.isMacOS===!0?u.createEl("kbd",{text:"CMD (\u2318) + OPTION (\u2325) + I"}):u.createEl("kbd",{text:"CTRL + SHIFT + I"})}}mayDisableSetting(r,n){n&&(r.setDisabled(n),r.setClass("obsidian-git-disabled"))}configureLineAuthorShowStatus(r){this.settings.lineAuthor.show=r,this.plugin.saveSettings(),r?this.plugin.lineAuthoringFeature.activateFeature():this.plugin.lineAuthoringFeature.deactivateFeature()}async lineAuthorSettingHandler(r,n){this.settings.lineAuthor[r]=n,await this.plugin.saveSettings(),this.plugin.lineAuthoringFeature.refreshLineAuthorViews()}beforeSaveSettings(){let r=this.settings.lineAuthor;r.authorDisplay!=="hide"&&(r.lastShownAuthorDisplay=r.authorDisplay),r.dateTimeFormatOptions!=="hide"&&(r.lastShownDateTimeFormatOptions=r.dateTimeFormatOptions)}addLineAuthorInfoSettings(){let r=new z.Setting(this.containerEl).setName("Show commit authoring information next to each line");if(this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform()||r.setDesc("Only available on desktop currently.").setDisabled(!0),r.descEl.innerHTML=` - Feature guide and quick examples
- The commit hash, author name and authoring date can all be individually toggled.
Hide everything, to only show the age-colored sidebar.`,r.addToggle(n=>n.setValue(this.settings.lineAuthor.show).onChange(i=>{this.configureLineAuthorShowStatus(i),this.refreshDisplayWithDelay()})),this.settings.lineAuthor.show){let n=new z.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown(a=>{a.addOptions({inactive:"Do not follow (default)","same-commit":"Follow within same commit","all-commits":"Follow within all commits (maybe slow)"}),a.setValue(this.settings.lineAuthor.followMovement),a.onChange(s=>this.lineAuthorSettingHandler("followMovement",s))});if(n.descEl.innerHTML=` - By default (deactivated), each line only shows the newest commit where it was changed. -
- With same commit, cut-copy-paste-ing of text is followed within the same commit and the original commit of authoring will be shown. -
- With all commits, cut-copy-paste-ing text inbetween multiple commits will be detected. -
- It uses git-blame and - for matches (at least ${dd} characters) within the same (or all) commit(s), the originating commit's information is shown.`,new z.Setting(this.containerEl).setName("Show commit hash").addToggle(a=>{a.setValue(this.settings.lineAuthor.showCommitHash),a.onChange(s=>this.lineAuthorSettingHandler("showCommitHash",s))}),new z.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown(a=>{let s={hide:"Hide",initials:"Initials (default)","first name":"First name","last name":"Last name",full:"Full name"};a.addOptions(s),a.setValue(this.settings.lineAuthor.authorDisplay),a.onChange(async o=>this.lineAuthorSettingHandler("authorDisplay",o))}),new z.Setting(this.containerEl).setName("Authoring date display").setDesc("If and how the date and time of authoring the line is displayed").addDropdown(a=>{let s={hide:"Hide",date:"Date (default)",datetime:"Date and time","natural language":"Natural language",custom:"Custom"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeFormatOptions),a.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatOptions",o),this.refreshDisplayWithDelay()})}),this.settings.lineAuthor.dateTimeFormatOptions==="custom"){let a=new z.Setting(this.containerEl);a.setName("Custom authoring date format").addText(s=>{s.setValue(this.settings.lineAuthor.dateTimeFormatCustomString),s.setPlaceholder("YYYY-MM-DD HH:mm"),s.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatCustomString",o),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(o)})}),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(this.settings.lineAuthor.dateTimeFormatCustomString)}new z.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown(a=>{let s={"viewer-local":"My local (default)","author-local":"Author's local",utc0000:"UTC+0000/Z"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeTimezone),a.onChange(async o=>this.lineAuthorSettingHandler("dateTimeTimezone",o))}).descEl.innerHTML=` - The time-zone in which the authoring date should be shown. - Either your local time-zone (default), - the author's time-zone during commit creation or - UTC\xB100:00. - `;let i=new z.Setting(this.containerEl).setName("Oldest age in coloring");i.descEl.innerHTML=this.previewOldestAgeDescriptionHtml(this.settings.lineAuthor.coloringMaxAge)[0],i.addText(a=>{a.setPlaceholder("1y"),a.setValue(this.settings.lineAuthor.coloringMaxAge),a.onChange(async s=>{let[o,l]=this.previewOldestAgeDescriptionHtml(s);i.descEl.innerHTML=o,l&&(await this.lineAuthorSettingHandler("coloringMaxAge",s),this.refreshColorSettingsName("oldest"))})}),this.createColorSetting("newest"),this.createColorSetting("oldest"),new z.Setting(this.containerEl).setName("Text color").addText(a=>{a.setValue(this.settings.lineAuthor.textColorCss),a.onChange(async s=>{await this.lineAuthorSettingHandler("textColorCss",s)})}).descEl.innerHTML=` - The CSS color of the gutter text.
- - It is highly recommended to use - - CSS variables - defined by themes - (e.g.
var(--text-muted)
or -
var(--text-on-accent)
, - because they automatically adapt to theme changes.
- - See: - List of available CSS variables in Obsidian - - `,new z.Setting(this.containerEl).setName("Ignore whitespace and newlines in changes").addToggle(a=>{a.setValue(this.settings.lineAuthor.ignoreWhitespace),a.onChange(s=>this.lineAuthorSettingHandler("ignoreWhitespace",s))}).descEl.innerHTML=` - Whitespace and newlines are interpreted as - part of the document and in changes - by default (hence not ignored). - This makes the last line being shown as 'changed' - when a new subsequent line is added, - even if the previously last line's text is the same. -
- If you don't care about purely-whitespace changes - (e.g. list nesting / quote indentation changes), - then activating this will provide more meaningful change detection. - `}}createColorSetting(r){let n=new z.Setting(this.containerEl).setName("").addText(i=>{let a=Rv(r,this.settings.lineAuthor),s=Rv(r,Xe.lineAuthor);i.setPlaceholder(mv(s)),i.setValue(mv(a)),i.onChange(async o=>{let l=n3(o);if(l!==void 0){let c=r==="newest"?"colorNew":"colorOld";await this.lineAuthorSettingHandler(c,l)}this.refreshColorSettingsDesc(r,l)})});this.lineAuthorColorSettings.set(r,n),this.refreshColorSettingsName(r),this.refreshColorSettingsDesc(r,Rv(r,this.settings.lineAuthor))}refreshColorSettingsName(r){let n=this.lineAuthorColorSettings.get(r);if(n){let i=r==="oldest"?`oldest (${this.settings.lineAuthor.coloringMaxAge} or older)`:"newest";n.nameEl.innerText=`Color for ${i} commits`}}refreshColorSettingsDesc(r,n){let i=this.lineAuthorColorSettings.get(r);i&&(i.descEl.innerHTML=this.colorSettingPreviewDescHtml(r,this.settings.lineAuthor,n!==void 0))}colorSettingPreviewDescHtml(r,n,i){let a=i?Mv(r,n):"rgba(127,127,127,0.3)",s=z.moment.unix(z.moment.now()/1e3).format("YYYY-MM-DD"),o=i?`abcdef Author Name ${s}`:"invalid color";return`Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and - named colors (e.g. 'black', 'purple'). Color preview: ${`
${o}
`}`}previewCustomDateTimeDescriptionHtml(r){let n=(0,z.moment)().format(r);return`
Format string to display the authoring date.
Currently: ${n}`}previewOldestAgeDescriptionHtml(r){let n=Zd(r);return[`The oldest age in the line author coloring. Everything older will have the same color. -
Smallest valid age is "1d". Currently: ${n!==void 0?`${n.asDays()} days`:"invalid!"}`,n]}setNonDefaultValue({settingsProperty:r,text:n}){let i=this.plugin.settings[r];Xe[r]!==i&&(typeof i=="string"||typeof i=="number"||typeof i=="boolean"?n.setValue(String(i)):n.setValue(JSON.stringify(i)))}refreshDisplayWithDelay(r=80){setTimeout(()=>this.display(),r)}};function Rv(t,e){return t==="oldest"?e.colorOld:e.colorNew}function Zd(t){let e=z.moment.duration("P"+t.toUpperCase());return e.isValid()&&e.asDays()&&e.asDays()>=1?e:void 0}function C3(t,e,r){if(!(t===void 0||e===void 0||r===void 0))return`head${t}-obj${e}-path${r}`}var P3=Jd.StateEffect.define();function R3(t,e,r){return r.update({effects:P3.of({key:t,la:e,lineOffsetsFromUnsavedChanges:new Map})})}var Lo=Jd.StateField.define({create:t=>{},update:(t,e)=>{for(let r of e.effects)if(r.is(P3))return r.value;return oU(e,t)},compare:(t,e)=>(t==null?void 0:t.key)===(e==null?void 0:e.key)});function Qd(t){var a;let e=T3.sha256.create();if(!t)return e;let{la:r,key:n,lineOffsetsFromUnsavedChanges:i}=t;e.update(r==="untracked"?"t":"f"),e.update(n);for(let[s,o]of(a=i.entries())!=null?a:[])e.update([s,o]);return e}var Qr={get:void 0,save:void 0};function M3(t,e){Qr.get=t,Qr.save=e}function eh(t){var e,r;return(r=(e=Zd(t.coloringMaxAge))==null?void 0:e.asDays())!=null?r:Zd(Xe.lineAuthor.coloringMaxAge).asDays()}function oU(t,e){if(e)return t.changes.empty||t.changes.iterChanges((r,n,i,a)=>{var p;let s=t.startState.doc,{newDoc:o}=t,l=s.lineAt(r).number,c=s.lineAt(n).number,u=o.lineAt(i).number,f=o.lineAt(a).number,d=c-l+1,h=f-u+1;for(let g=u;g<=f;g++){let v=(p=e.lineOffsetsFromUnsavedChanges.get(g))!=null?p:0,y=f===g,b=h-d;y&&(v+=b),e.lineOffsetsFromUnsavedChanges.set(g,v)}}),e}var Ov=class{constructor(e){this.state=e;this.subscribeMe()}notifyLineAuthoring(e,r){if(this.view===void 0){console.warn(`Git: View is not defined for editor cache key. Unforeseen situation. id: ${e}`);return}let n=this.view.state,i=R3(e,r,n);this.view.dispatch(i)}updateToNewState(e){let r=this.lastSeenPath&&this.filepath!=this.lastSeenPath;return this.state=e,r&&(this.unsubscribeMe(this.lastSeenPath),this.subscribeMe()),this}removeIfStale(){this.view.destroyed&&this.unsubscribeMe(this.lastSeenPath)}subscribeMe(){this.filepath!==void 0&&(Do.ifFilepathDefinedTransformSubscribers(this.filepath,e=>e.add(this)),this.lastSeenPath=this.filepath)}unsubscribeMe(e){Do.ifFilepathDefinedTransformSubscribers(e,r=>r.delete(this))}get filepath(){var e,r;return(r=(e=this.state.field(th.editorInfoField))==null?void 0:e.file)==null?void 0:r.path}get view(){return this.state.field(th.editorEditorField)}},I3=O3.StateField.define({create:t=>new Ov(t),update:(t,e)=>t.updateToNewState(e.state),compare:(t,e)=>t===e});m();function F3(){jo=void 0,Iv=[],rh=0,ih.clear(),ah.clear(),No.clear()}var jo,nh=()=>jo;function $3(t,e){var i;let r=e.length;if(r<((i=jo==null?void 0:jo.length)!=null?i:0))return;jo={gutter:t,length:r,text:e};let n=Qr.get();r!==n.gutterSpacingFallbackLength&&(n.gutterSpacingFallbackLength=r,Qr.save(n))}var Iv=[],lU=15,rh=0;function D3(t){Iv[rh]=t,rh=(rh+1)%lU}function L3(){return a3(Iv)}var ih=new Map,ah=new Map,No=new Set;m();var K3=require("@codemirror/state"),Z3=require("@codemirror/view");m();var Lv=require("@codemirror/view"),q3=Ot(_v()),lh=require("obsidian");m();m();var sh={x:-10,y:-10};function j3(){sh.x===-10&&window.addEventListener("mousedown",t=>{sh.x=t.clientX,sh.y=t.clientY})}function N3(){for(let t of No)if(cU(t,sh))return t}function cU(t,e){let{x:r,y:n,width:i,height:a}=t.getBoundingClientRect();return r<=e.x&&e.x<=r+i&&n<=e.y&&e.y<=n+a}m();var Nc={};var B3="data-commit";function H3(t,e,r){if(e.hasFocus())return;let n=N3();if(!n)return;let i=fU(n);i&&(!i.isZeroCommit&&!i.isWaitingGutter&&uU(i,t),Fv("showCommitHash",t),Fv("authorDisplay",t),Fv("dateTimeFormatOptions",t))}function uU(t,e){e.addItem(r=>r.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick(n=>navigator.clipboard.writeText(t.hash)))}function Fv(t,e){var l,c;let r,n,i=Nc.plugin.settings.lineAuthor,a=i[t],s=typeof a=="boolean"?a:a!=="hide",o=Xe.lineAuthor[t];if(t==="showCommitHash")r="Show commit hash",n=a;else if(t==="authorDisplay"){let u=(l=i.lastShownAuthorDisplay)!=null?l:o;r="Show author "+(s?a:u),n=s?"hide":u}else if(t==="dateTimeFormatOptions"){let u=(c=i.lastShownDateTimeFormatOptions)!=null?c:o;r="Show "+(s?a:u),r+=r.contains("date")?"":" date",n=s?"hide":u}else pa(t);e.addItem(u=>u.setTitle(r).setSection("obs-git-line-author-configure").setChecked(s).onClick(f=>{var d,h;return(h=(d=Nc.plugin)==null?void 0:d.settingsTab)==null?void 0:h.lineAuthorSettingHandler(t,n)}))}function U3(t,e,r){r.setAttr(B3,JSON.stringify({hash:t.hash,isZeroCommit:t.isZeroCommit,isWaitingGutter:e}))}function fU(t){let e=t.getAttr(B3);return e?JSON.parse(e):void 0}m();function Mv(t,e){return t==="oldest"?oh(0,!1,e).color:oh(void 0,!0,e).color}function oh(t,e,r){let n=eh(r),i=Date.now()/1e3,a=t!=null?t:0,o=(e?0:i-a)/60/60/24,l=Math.pow(Math.clamp(o/n,0,1),1/2.3),c=dU(),u=r.colorNew,f=r.colorOld,d=c?.4:1,h=$v(u.r,f.r,l)*d,p=$v(u.g,f.g,l)*d,g=$v(u.b,f.b,l)*d;return{color:`rgba(${h},${p},${g},${c?.75:.25})`,daysSinceCommit:o}}function $v(t,e,r){return t+(e-t)*r}function dU(){var t;return((t=window.app)==null?void 0:t.getTheme())==="obsidian"}function G3(t){document.body.style.setProperty("--obs-git-gutter-text",t.textColorCss)}m();function z3(t,e,r){let n;for(let i=e;i<=r;i++){let a=t.hashPerLine[i],s=t.commits.get(a);(!n||s.isZeroCommit||hU(s,n))&&(n=s)}return n}function hU(t,e){var i,a,s,o;let r=(a=(i=t.author)==null?void 0:i.epochSeconds)!=null?a:0,n=(o=(s=e.author)==null?void 0:s.epochSeconds)!=null?o:0;return r>n}var V3="-",pU="+",mU=3,gU="*",vU=/\S/g,yU="%",Bo=class t extends Lv.GutterMarker{constructor(r){super();this.text=r}eq(r){return r instanceof t&&this.text===r.text}toDOM(){return document.createTextNode(this.text)}destroy(r){r&&(document.body.contains(r)||r.remove())}},Dv=class extends Lv.GutterMarker{constructor(r,n,i,a,s,o){super();this.lineAuthoring=r;this.startLine=n;this.endLine=i;this.key=a;this.settings=s;this.options=o;this.point=!1;this.elementClass="obs-git-blame-gutter"}eq(r){return this.key===(r==null?void 0:r.key)&&this.startLine===(r==null?void 0:r.startLine)&&this.endLine===(r==null?void 0:r.endLine)&&(this==null?void 0:this.options)===(r==null?void 0:r.options)}toDOM(){var r;return this.precomputedDomProvider=(r=this.precomputedDomProvider)!=null?r:this.computeDom(),this.precomputedDomProvider()}destroy(r){r&&(document.body.contains(r)||(No.delete(r),r.remove()))}computeDom(){let r=z3(this.lineAuthoring,this.startLine,this.endLine),n=r.isZeroCommit?"":this.renderNonZeroCommit(r);return!r.isZeroCommit&&this.options!=="waiting-for-result"?$3(this,n):n=this.adaptTextForFakeCommit(r,n,this.options),this.createHtmlNode(r,n,this.options==="waiting-for-result")}createHtmlNode(r,n,i){var c;let a=window.createDiv();a.innerText=n;let{color:s,daysSinceCommit:o}=oh((c=r==null?void 0:r.author)==null?void 0:c.epochSeconds,r==null?void 0:r.isZeroCommit,this.settings);a.style.backgroundColor=s,U3(r,i,a);function l(){let u=a.cloneNode(!0);return No.add(u),i||D3(o),u}return l}renderNonZeroCommit(r){let n=this.settings.showCommitHash?this.renderHash(r):"",i=this.settings.authorDisplay==="hide"?"":`${this.renderAuthorName(r,this.settings.authorDisplay)}`,a=this.settings.dateTimeFormatOptions==="hide"?"":`${this.renderAuthoringDate(r,this.settings.dateTimeFormatOptions,this.settings.dateTimeFormatCustomString,this.settings.dateTimeTimezone)}`;return[n,i,a].filter(o=>o.length>=1).join(" ")}renderHash(r){return r.hash.substring(0,6)}renderAuthorName(r,n){var o,l,c,u;let i=(l=(o=r==null?void 0:r.author)==null?void 0:o.name)!=null?l:"",a=i.split(" ").filter(f=>f.length>=1),s;switch(n){case"initials":s=a.map(f=>f[0].toUpperCase()).join("");break;case"first name":s=(c=a.first())!=null?c:V3;break;case"last name":s=(u=a.last())!=null?u:V3;break;case"full":s=i;break;default:return pa(n)}return s3(r==null?void 0:r.author,r==null?void 0:r.committer)||(s=s+gU),s}renderAuthoringDate(r,n,i,a){var c;let s="?";if(((c=r==null?void 0:r.author)==null?void 0:c.epochSeconds)===void 0)return s;let o;switch(n){case"date":o=fd;break;case"datetime":o=o0;break;case"custom":o=i;break;case"natural language":o=u=>{let f=u.diff((0,lh.moment)());return lh.moment.duration(f).humanize(!0)};break;default:return pa(n)}let l=lh.moment.unix(r.author.epochSeconds);switch(a){case"viewer-local":break;case"author-local":l=l.utcOffset(r.author.tz),typeof o=="string"&&(o+=" Z");break;case"utc0000":l=l.utc(),typeof o=="string"&&(o+="[Z]");break;default:return pa(a)}return typeof o=="string"?l.format(o):o(l)}adaptTextForFakeCommit(r,n,i){var l,c,u,f;let a=(c=(l=nh())==null?void 0:l.text)!=null?c:n,s=i!=="waiting-for-result"&&r.isZeroCommit?pU:yU;n=a.replace(vU,s);let o=(f=(u=Qr.get())==null?void 0:u.gutterSpacingFallbackLength)!=null?f:n.length;if(n=o3(n,o,s),i!=="waiting-for-result"&&r.isZeroCommit){let d=Math.min(o,mU);n=l3(n,o-d)}return n}};function ns(t,e,r,n,i,a){let s=q3.sha256.create();s.update(JSON.stringify(i)),s.update(`s${e}-e${r}-k${n}-o${a}`);let o=s.hex(),l=ih.get(o);if(l)return l;let c=new Dv(t,e,r,n,i,a);return ih.set(o,c),c}m();var W3=require("obsidian");function jv(){var e,r;let t=(r=(e=Qr.get())==null?void 0:e.gutterSpacingFallbackLength)!=null?r:Xe.lineAuthor.gutterSpacingFallbackLength;return new Bo(Array(t).fill("-").join(""))}function Nv(t){let{lineAuthoring:e,ageForInitialRender:r}=wU(t);return ns(e,1,1,"initialGutter"+r,t,"waiting-for-result")}function wU(t){var a;let e=(a=L3())!=null?a:eh(t)*.25,r=(0,W3.moment)().add(-e,"days"),n={name:"",epochSeconds:i3(r),tz:"+0000"},i={hash:"waiting-for-result",author:n,committer:n,isZeroCommit:!1};return{lineAuthoring:{hashPerLine:[void 0,"waiting-for-result"],commits:new Map([["waiting-for-result",i]])},ageForInitialRender:e}}m();function Y3(t,e){return ns({hashPerLine:[void 0,"000000"],commits:new Map([["000000",m3]])},1,1,t,e)}var Bv=new Bo(""),J3=(0,Z3.gutter)({class:"line-author-gutter-container",markers(t){let e=t.state.field(Lo,!1);return bU(t,e)},lineMarkerChange(t){let e=Qd(t.state.field(Lo));return Qd(t.startState.field(Lo))!==e},renderEmptyElements:!0,initialSpacer:t=>(X3(t),jv()),updateSpacer:(t,e)=>{var r,n;return X3(e.view),(n=(r=nh())==null?void 0:r.gutter)!=null?n:jv()}});function bU(t,e){let r=Qd(e),n=t.state.doc,i=new Map;for(let u=1;u<=n.lines;u++){let f=n.line(u).from,d=t.lineBlockAt(f).to;i.set(u,[f,d]),r.update([f,d,0])}let a=Qr.get();r.update("s"+Object.values(Qr).join(","));let s=r.hex(),o=ah.get(s);if(o)return o;let{result:l,allowCache:c}=_U(n,i,a,e);return c&&ah.set(s,l),l}function _U(t,e,r,n){let i=!0,a=t.lines,s=[];function o(f,d,h){return s.push(h.range(f,d))}let l=xU(a,n),c=t.length===0,u=t.iterLines(a,a+1).next().value==="";for(let f=1;f<=a;f++){let[d,h]=e.get(f),p=t.lineAt(h).number;if(c){o(d,h,Bv);continue}if(f===a&&u){o(d,h,Bv);continue}if(n===void 0){o(d,h,Nv(r)),i=!1;continue}let{key:g,la:v}=n;if(v==="untracked"){o(d,h,Y3(v,r));continue}let y=v.hashPerLine.length-1,b=l[f],E=l[p];if(E&&E>y&&o(d,h,Bv),b!==void 0&&gv(1,b,y)&&E!==void 0&&gv(1,E,y)){o(d,h,ns(v,b,E,g,r));continue}if(y<1){o(d,h,Nv(r)),i=!1;continue}let S=Math.clamp(b!=null?b:f,1,y),A=Math.clamp(E!=null?E:p,1,y);o(d,h,ns(v,S,A,g+"computing",r,"waiting-for-result"))}return{result:K3.RangeSet.of(s,!0),allowCache:i}}function xU(t,e){if(!(e!=null&&e.lineOffsetsFromUnsavedChanges))return Array.from(new Array(t+1),i=>i);let r=[void 0],n=0;for(let i=1;i<=t;i++){let a=e.lineOffsetsFromUnsavedChanges.get(i);n+=a!=null?a:0,r[i]=a===void 0?i-n:void 0}return r}function X3(t){t.dom.querySelectorAll(".cm-gutters").forEach(r=>{r!=null&&r.style&&(r.style.marginLeft||(r.style.marginLeft="unset"))})}var ch=class{constructor(e){this.plugin=e;this.lineAuthorings=new Map}async trackChanged(e){return this.trackChangedHelper(e).catch(r=>(console.warn("Git: Error in trackChanged."+r),Promise.reject(r)))}async trackChangedHelper(e){if(e){if(e.path===void 0){console.warn("Git: Attempted to track change of undefined filepath. Unforeseen situation.");return}return this.computeLineAuthorInfo(e.path)}}destroy(){this.lineAuthorings.clear(),Do.clear(),F3()}async computeLineAuthorInfo(e){let r=this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager,n=await r.submoduleAwareHeadRevisonInContainingDirectory(e),i=await r.hashObject(e),a=C3(n,i,e);if(a!==void 0){if(!this.lineAuthorings.has(a)){let s=await r.blame(e,this.plugin.settings.lineAuthor.followMovement,this.plugin.settings.lineAuthor.ignoreWhitespace);this.lineAuthorings.set(a,s)}this.notifyComputationResultToSubscribers(e,a)}}notifyComputationResultToSubscribers(e,r){Do.ifFilepathDefinedTransformSubscribers(e,n=>n.forEach(i=>i.notifyLineAuthoring(r,this.lineAuthorings.get(r))))}},eM=Q3.Prec.high([I3,Lo,J3]);var uh=class{constructor(e){this.plg=e;this.codeMirrorExtensions=[];this.handleWorkspaceLeaf=e=>{if(!this.lineAuthorInfoProvider){console.warn("Git: undefined lineAuthorInfoProvider. Unexpected situation.");return}let r=e==null?void 0:e.view;!(r instanceof is.MarkdownView)||r.file==null||(r==null?void 0:r.allowNoFile)===!0||this.lineAuthorInfoProvider.trackChanged(r.file).catch(console.error)}}onLoadPlugin(){this.plg.registerEditorExtension(this.codeMirrorExtensions),M3(()=>this.plg.settings.lineAuthor,e=>{this.plg.settings.lineAuthor=e,this.plg.saveSettings()})}conditionallyActivateBySettings(){this.plg.settings.lineAuthor.show&&this.activateFeature()}activateFeature(){try{if(!this.isAvailableOnCurrentPlatform().available)return;G3(this.plg.settings.lineAuthor),this.lineAuthorInfoProvider=new ch(this.plg),this.createEventHandlers(),this.activateCodeMirrorExtensions(),console.log(this.plg.manifest.name+": Enabled line authoring.")}catch(e){console.warn("Git: Error while loading line authoring feature.",e),this.deactivateFeature()}}deactivateFeature(){var e;this.destroyEventHandlers(),this.deactivateCodeMirrorExtensions(),(e=this.lineAuthorInfoProvider)==null||e.destroy(),this.lineAuthorInfoProvider=void 0,console.log(this.plg.manifest.name+": Disabled line authoring.")}isAvailableOnCurrentPlatform(){return{available:this.plg.useSimpleGit&&is.Platform.isDesktopApp,gitManager:this.plg.gitManager instanceof Ce?this.plg.gitManager:void 0}}refreshLineAuthorViews(){this.plg.settings.lineAuthor.show&&(this.deactivateFeature(),this.activateFeature())}activateCodeMirrorExtensions(){this.codeMirrorExtensions.push(eM),this.plg.app.workspace.updateOptions(),this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}deactivateCodeMirrorExtensions(){for(let e of this.codeMirrorExtensions)this.codeMirrorExtensions.remove(e);this.plg.app.workspace.updateOptions()}createEventHandlers(){this.gutterContextMenuEvent=this.createGutterContextMenuHandler(),this.fileOpenEvent=this.createFileOpenEvent(),this.workspaceLeafChangeEvent=this.createWorkspaceLeafChangeEvent(),this.fileModificationEvent=this.createVaultFileModificationHandler(),this.refreshOnCssChangeEvent=this.createCssRefreshHandler(),this.fileRenameEvent=this.createFileRenameEvent(),j3(),this.plg.registerEvent(this.gutterContextMenuEvent),this.plg.registerEvent(this.refreshOnCssChangeEvent),this.plg.registerEvent(this.fileOpenEvent),this.plg.registerEvent(this.workspaceLeafChangeEvent),this.plg.registerEvent(this.fileModificationEvent),this.plg.registerEvent(this.fileRenameEvent)}destroyEventHandlers(){this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.workspace.offref(this.fileOpenEvent),this.plg.app.workspace.offref(this.workspaceLeafChangeEvent),this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.vault.offref(this.fileRenameEvent),this.plg.app.workspace.offref(this.gutterContextMenuEvent)}createFileOpenEvent(){return this.plg.app.workspace.on("file-open",e=>{var r;return void((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(e).catch(console.error))})}createWorkspaceLeafChangeEvent(){return this.plg.app.workspace.on("active-leaf-change",this.handleWorkspaceLeaf)}createFileRenameEvent(){return this.plg.app.vault.on("rename",(e,r)=>{var n;return e instanceof is.TFile&&((n=this.lineAuthorInfoProvider)==null?void 0:n.trackChanged(e))})}createVaultFileModificationHandler(){return this.plg.app.vault.on("modify",e=>{var r;return e instanceof is.TFile&&((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(e))})}createCssRefreshHandler(){return this.plg.app.workspace.on("css-change",()=>this.refreshLineAuthorViews())}createGutterContextMenuHandler(){return this.plg.app.workspace.on("editor-menu",H3)}};m();var fh=class{constructor(e){this.plugin=e;this.tasks=[]}addTask(e,r){this.tasks.push({task:e,onFinished:r!=null?r:()=>{}}),this.tasks.length===1&&this.handleTask()}handleTask(){if(this.tasks.length>0){let e=this.tasks[0];e.task().then(r=>{e.onFinished(r),this.tasks.shift(),this.handleTask()},r=>{this.plugin.displayError(r),e.onFinished(void 0),this.tasks.shift(),this.handleTask()})}}clear(){this.tasks=[]}};m();var $r=require("obsidian");var dh=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;this.messages=[];this.base="obsidian-git-statusbar-";this.statusBarEl.setAttribute("data-tooltip-position","top"),r.registerEvent(r.app.workspace.on("obsidian-git:refreshed",()=>{this.refreshCommitTimestamp().catch(console.error)}))}displayMessage(e,r){this.messages.push({message:`Git: ${e.slice(0,100)}`,timeout:r}),this.display()}display(){this.messages.length>0&&!this.currentMessage?(this.currentMessage=this.messages.shift(),this.statusBarEl.addClass(this.base+"message"),this.statusBarEl.ariaLabel="",this.statusBarEl.setText(this.currentMessage.message),this.lastMessageTimestamp=Date.now()):this.currentMessage?Date.now()-this.lastMessageTimestamp>=this.currentMessage.timeout&&(this.currentMessage=null,this.lastMessageTimestamp=null):this.displayState()}displayState(){switch((this.statusBarEl.getText().length>3||!this.statusBarEl.hasChildNodes())&&(this.statusBarEl.empty(),this.conflictEl=this.statusBarEl.createDiv(),this.conflictEl.setAttribute("data-tooltip-position","top"),this.conflictEl.style.float="left",this.pausedEl=this.statusBarEl.createDiv(),this.pausedEl.setAttribute("data-tooltip-position","top"),this.pausedEl.style.float="left",this.iconEl=this.statusBarEl.createDiv(),this.iconEl.style.float="left",this.textEl=this.statusBarEl.createDiv(),this.textEl.style.float="right",this.textEl.style.marginLeft="5px"),this.plugin.localStorage.getConflict()?((0,$r.setIcon)(this.conflictEl,"alert-circle"),this.conflictEl.ariaLabel="You have merge conflicts. Resolve them and commit afterwards.",this.conflictEl.style.marginRight="5px",this.conflictEl.addClass(this.base+"conflict")):(this.conflictEl.empty(),this.conflictEl.style.marginRight=""),this.plugin.localStorage.getPausedAutomatics()?((0,$r.setIcon)(this.pausedEl,"pause-circle"),this.pausedEl.ariaLabel="Automatic routines are currently paused.",this.pausedEl.style.marginRight="5px",this.pausedEl.addClass(this.base+"paused")):(this.pausedEl.empty(),this.pausedEl.style.marginRight=""),this.plugin.state.gitAction){case 0:this.displayFromNow();break;case 1:this.statusBarEl.ariaLabel="Checking repository status...",(0,$r.setIcon)(this.iconEl,"refresh-cw"),this.statusBarEl.addClass(this.base+"status");break;case 3:this.statusBarEl.ariaLabel="Adding files...",(0,$r.setIcon)(this.iconEl,"archive"),this.statusBarEl.addClass(this.base+"add");break;case 4:this.statusBarEl.ariaLabel="Committing changes...",(0,$r.setIcon)(this.iconEl,"git-commit"),this.statusBarEl.addClass(this.base+"commit");break;case 5:this.statusBarEl.ariaLabel="Pushing changes...",(0,$r.setIcon)(this.iconEl,"upload"),this.statusBarEl.addClass(this.base+"push");break;case 2:this.statusBarEl.ariaLabel="Pulling changes...",(0,$r.setIcon)(this.iconEl,"download"),this.statusBarEl.addClass(this.base+"pull");break;default:this.statusBarEl.ariaLabel="Failed on initialization!",(0,$r.setIcon)(this.iconEl,"alert-triangle"),this.statusBarEl.addClass(this.base+"failed-init");break}}displayFromNow(){var n;let e=this.lastCommitTimestamp,r=this.plugin.state.offlineMode;if(e){let i=(0,$r.moment)(e).fromNow();this.statusBarEl.ariaLabel=`${r?"Offline: ":""}Last Commit: ${i}`,(n=this.unPushedCommits)!=null&&n&&(this.statusBarEl.ariaLabel+=` -(${this.unPushedCommits} unpushed commits)`)}else this.statusBarEl.ariaLabel=r?"Git is offline":"Git is ready";r?(0,$r.setIcon)(this.iconEl,"globe"):(0,$r.setIcon)(this.iconEl,"check"),this.plugin.settings.changedFilesInStatusBar&&this.plugin.cachedStatus&&this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()),this.statusBarEl.addClass(this.base+"idle")}async refreshCommitTimestamp(){this.lastCommitTimestamp=await this.plugin.gitManager.getLastCommitTime(),this.unPushedCommits=await this.plugin.gitManager.getUnpushedCommits()}remove(){this.statusBarEl.remove()}};m();var ph=require("obsidian"),hh=class extends ph.SuggestModal{constructor(r){super(r.app);this.plugin=r;this.resolve=null;this.setPlaceholder("Type your message and select optional the version with the added date.")}openAndGetResult(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(r){let n=(0,ph.moment)().format(this.plugin.settings.commitDateFormat);return r==""&&(r="..."),[r,`${n}: ${r}`,`${r}: ${n}`]}renderSuggestion(r,n){n.innerText=r}onChooseSuggestion(r,n){this.resolve&&this.resolve(r)}};m();var tM=require("obsidian"),Bc=class{constructor(e){this.plugin=e}saveLastAuto(e,r){r==="backup"?this.plugin.localStorage.setLastAutoBackup(e.toString()):r==="pull"?this.plugin.localStorage.setLastAutoPull(e.toString()):r==="push"&&this.plugin.localStorage.setLastAutoPush(e.toString())}loadLastAuto(){var e,r,n;return{backup:new Date((e=this.plugin.localStorage.getLastAutoBackup())!=null?e:""),pull:new Date((r=this.plugin.localStorage.getLastAutoPull())!=null?r:""),push:new Date((n=this.plugin.localStorage.getLastAutoPush())!=null?n:"")}}async init(){await this.setUpAutoCommitAndSync();let e=this.loadLastAuto();if(this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0){let r=this.diff(this.plugin.settings.autoPushInterval,e.push);this.startAutoPush(r)}if(this.plugin.settings.autoPullInterval>0){let r=this.diff(this.plugin.settings.autoPullInterval,e.pull);this.startAutoPull(r)}}unload(){this.clearAutoPull(),this.clearAutoPush(),this.clearAutoCommitAndSync()}reload(...e){this.plugin.localStorage.getPausedAutomatics()||(e.contains("commit")&&(this.clearAutoCommitAndSync(),this.plugin.settings.autoSaveInterval>0&&this.startAutoCommitAndSync(this.plugin.settings.autoSaveInterval)),e.contains("push")&&(this.clearAutoPush(),this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0&&this.startAutoPush(this.plugin.settings.autoPushInterval)),e.contains("pull")&&(this.clearAutoPull(),this.plugin.settings.autoPullInterval>0&&this.startAutoPull(this.plugin.settings.autoPullInterval)))}async setUpAutoCommitAndSync(){if(this.plugin.settings.setLastSaveToLastCommit){this.clearAutoCommitAndSync();let e=await this.plugin.gitManager.getLastCommitTime();e&&this.saveLastAuto(e,"backup")}if(!this.timeoutIDCommitAndSync&&!this.plugin.autoCommitDebouncer){let e=this.loadLastAuto();if(this.plugin.settings.autoSaveInterval>0){let r=this.diff(this.plugin.settings.autoSaveInterval,e.backup);this.startAutoCommitAndSync(r)}}}startAutoCommitAndSync(e){let r=(e!=null?e:this.plugin.settings.autoSaveInterval)*6e4;this.plugin.settings.autoBackupAfterFileChange?e===0?this.doAutoCommitAndSync():this.plugin.autoCommitDebouncer=(0,tM.debounce)(()=>this.doAutoCommitAndSync(),r,!0):(r>2147483647&&(r=2147483647),this.timeoutIDCommitAndSync=window.setTimeout(()=>this.doAutoCommitAndSync(),r))}doAutoCommitAndSync(){this.plugin.promiseQueue.addTask(async()=>{if(this.plugin.settings.setLastSaveToLastCommit){let r=await this.plugin.gitManager.getLastCommitTime();if(r){this.saveLastAuto(r,"backup");let n=this.diff(this.plugin.settings.autoSaveInterval,r);if(n>0)return this.startAutoCommitAndSync(n),!1}}let e=this.plugin.settings.autoCommitOnlyStaged;return this.plugin.settings.differentIntervalCommitAndPush?await this.plugin.commit({fromAuto:!0,onlyStaged:e}):await this.plugin.commitAndSync({fromAutoBackup:!0,onlyStaged:e}),!0},e=>{e!==!1&&(this.saveLastAuto(new Date,"backup"),this.startAutoCommitAndSync())})}startAutoPull(e){let r=(e!=null?e:this.plugin.settings.autoPullInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPull=window.setTimeout(()=>this.doAutoPull(),r)}doAutoPull(){this.plugin.promiseQueue.addTask(()=>this.plugin.pullChangesFromRemote(),()=>{this.saveLastAuto(new Date,"pull"),this.startAutoPull()})}startAutoPush(e){let r=(e!=null?e:this.plugin.settings.autoPushInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPush=window.setTimeout(()=>this.doAutoPush(),r)}doAutoPush(){this.plugin.promiseQueue.addTask(()=>this.plugin.push(),()=>{this.saveLastAuto(new Date,"push"),this.startAutoPush()})}clearAutoCommitAndSync(){var r;let e=!1;return this.timeoutIDCommitAndSync&&(window.clearTimeout(this.timeoutIDCommitAndSync),this.timeoutIDCommitAndSync=void 0,e=!0),this.plugin.autoCommitDebouncer&&((r=this.plugin.autoCommitDebouncer)==null||r.cancel(),this.plugin.autoCommitDebouncer=void 0,e=!0),e}clearAutoPull(){return this.timeoutIDPull?(window.clearTimeout(this.timeoutIDPull),this.timeoutIDPull=void 0,!0):!1}clearAutoPush(){return this.timeoutIDPush?(window.clearTimeout(this.timeoutIDPush),this.timeoutIDPush=void 0,!0):!1}diff(e,r){let i=e-Math.round((new Date().getTime()-r.getTime())/1e3/60);return Math.max(0,i)}};m();var bn=require("obsidian");m();var Hc=require("obsidian");async function rM(t,e,r){let n=await iM(e,r);if(n.result==="failure"){new Hc.Notice(n.reason);return}let{isGitHub:i,branch:a,repo:s,user:o,filePath:l}=n;if(i){let c=t.getCursor("from").line+1,u=t.getCursor("to").line+1;c===u?window.open(`https://github.com/${o}/${s}/blob/${a}/${l}?plain=1#L${c}`):window.open(`https://github.com/${o}/${s}/blob/${a}/${l}?plain=1#L${c}-L${u}`)}else new Hc.Notice("It seems like you are not using GitHub")}async function nM(t,e){let r=await iM(t,e);if(r.result==="failure"){new Hc.Notice(r.reason);return}let{isGitHub:n,branch:i,repo:a,user:s,filePath:o}=r;n?window.open(`https://github.com/${s}/${a}/commits/${i}/${o}`):new Hc.Notice("It seems like you are not using GitHub")}async function iM(t,e){let r=await e.branchInfo(),n=r.tracking,i=r.current,a,s=e.getRelativeRepoPath(t.path);if(e instanceof Ce){let l=await e.getSubmoduleOfFile(e.getRelativeRepoPath(t.path));if(l){s=l.relativeFilepath;let c=await e.git.cwd({path:l.submodule,root:!1}).status();if(n=c.tracking||void 0,i=c.current||void 0,n){let u=n.substring(0,n.indexOf("/")),f=await e.git.cwd({path:l.submodule,root:!1}).getConfig(`remote.${u}.url`,"local");if(f.value!=null)a=f.value;else return{result:"failure",reason:"Failed to get remote url of submodule"}}}}if(n==null)return{result:"failure",reason:"Remote branch is not configured"};if(i==null)return{result:"failure",reason:"Failed to get current branch name"};if(a==null){let l=n.substring(0,n.indexOf("/"));if(a=await e.getConfig(`remote.${l}.url`),a==null)return{result:"failure",reason:"Failed to get remote url"}}let o=a.match(/(?:^https:\/\/github\.com\/(.+)\/(.+?)(?:\.git)?$)|(?:^[a-zA-Z]+@github\.com:(.+)\/(.+?)(?:\.git)?$)/);if(o==null)return{result:"failure",reason:"Could not parse remote url"};{let[l,c,u,f,d]=o;return{result:"success",isGitHub:!!l,repo:u||d,user:c||f,branch:i,filePath:s}}}m();var aM=require("obsidian"),mh=class extends aM.FuzzySuggestModal{constructor(e,r){super(e.app),this.plugin=e,this.changedFiles=r,this.setPlaceholder("Not supported files will be opened by default app!")}getItems(){return this.changedFiles}getItemText(e){if(e.index=="U"&&e.workingDir=="U")return`Untracked | ${e.vaultPath}`;let r="",n="";return e.workingDir!=" "&&(r=`Working Dir: ${e.workingDir} `),e.index!=" "&&(n=`Index: ${e.index}`),`${r}${n} | ${e.vaultPath}`}onChooseItem(e,r){this.plugin.app.metadataCache.getFirstLinkpathDest(e.vaultPath,"")==null?this.app.openWithDefaultApp(e.vaultPath):this.plugin.app.workspace.openLinkText(e.vaultPath,"/")}};m();var sM=require("obsidian"),gh=class extends sM.Modal{constructor(r,n){super(r);this.content=n;this.resolve=null}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onOpen(){let{contentEl:r,titleEl:n}=this;n.setText("Edit .gitignore");let i=r.createDiv(),a=i.createEl("textarea",{text:this.content,cls:["obsidian-git-textarea"],attr:{rows:10,cols:30,wrap:"off"}});i.createEl("button",{cls:["mod-cta","obsidian-git-center-button"],text:"Save"}).addEventListener("click",()=>{this.resolve(a.value),this.close()})}onClose(){let{contentEl:r}=this;r.empty(),this.resolve&&this.resolve(void 0)}};function oM(t){let e=t.app;t.addCommand({id:"edit-gitignore",name:"Edit .gitignore",callback:async()=>{let r=t.gitManager.getRelativeVaultPath(".gitignore");await e.vault.adapter.exists(r)||await e.vault.adapter.write(r,"");let n=await e.vault.adapter.read(r),a=await new gh(e,n).openAndGetReslt();a!==void 0&&(await e.vault.adapter.write(r,a),await t.refresh())}}),t.addCommand({id:"open-git-view",name:"Open source control view",callback:async()=>{var i;let r=e.workspace.getLeavesOfType($t.type),n;r.length===0?(n=(i=e.workspace.getRightLeaf(!1))!=null?i:e.workspace.getLeaf(),await n.setViewState({type:$t.type})):n=r.first(),await e.workspace.revealLeaf(n),e.workspace.trigger("obsidian-git:refresh")}}),t.addCommand({id:"open-history-view",name:"Open history view",callback:async()=>{var i;let r=e.workspace.getLeavesOfType(Zr.type),n;r.length===0?(n=(i=e.workspace.getRightLeaf(!1))!=null?i:e.workspace.getLeaf(),await n.setViewState({type:Zr.type})):n=r.first(),await e.workspace.revealLeaf(n),e.workspace.trigger("obsidian-git:refresh")}}),t.addCommand({id:"open-diff-view",name:"Open diff view",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;{let i=t.gitManager.getRelativeRepoPath(n.path,!0);t.tools.openDiff({aFile:i,aRef:""})}}}),t.addCommand({id:"view-file-on-github",name:"Open file on GitHub",editorCallback:(r,{file:n})=>{if(n)return rM(r,n,t.gitManager)}}),t.addCommand({id:"view-history-on-github",name:"Open file history on GitHub",editorCallback:(r,{file:n})=>{if(n)return nM(n,t.gitManager)}}),t.addCommand({id:"pull",name:"Pull",callback:()=>t.promiseQueue.addTask(()=>t.pullChangesFromRemote())}),t.addCommand({id:"fetch",name:"Fetch",callback:()=>t.promiseQueue.addTask(()=>t.fetch())}),t.addCommand({id:"switch-to-remote-branch",name:"Switch to remote branch",callback:()=>t.promiseQueue.addTask(()=>t.switchRemoteBranch())}),t.addCommand({id:"add-to-gitignore",name:"Add file to .gitignore",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;t.addFileToGitignore(n.path,n instanceof bn.TFolder).catch(i=>t.displayError(i))}}),t.addCommand({id:"push",name:"Commit-and-sync",callback:()=>t.promiseQueue.addTask(()=>t.commitAndSync({fromAutoBackup:!1}))}),t.addCommand({id:"backup-and-close",name:"Commit-and-sync and then close Obsidian",callback:()=>t.promiseQueue.addTask(async()=>{await t.commitAndSync({fromAutoBackup:!1}),window.close()})}),t.addCommand({id:"commit-push-specified-message",name:"Commit-and-sync with specific message",callback:()=>t.promiseQueue.addTask(()=>t.commitAndSync({fromAutoBackup:!1,requestCustomMessage:!0}))}),t.addCommand({id:"commit",name:"Commit all changes",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1}))}),t.addCommand({id:"commit-specified-message",name:"Commit all changes with specific message",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0}))}),t.addCommand({id:"commit-smart",name:"Commit",callback:()=>t.promiseQueue.addTask(async()=>{let n=(await t.updateCachedStatus()).staged.length>0;return t.commit({fromAuto:!1,requestCustomMessage:!1,onlyStaged:n})})}),t.addCommand({id:"commit-staged",name:"Commit staged",checkCallback:function(r){if(r)return!1;t.promiseQueue.addTask(async()=>t.commit({fromAuto:!1,requestCustomMessage:!1}))}}),bn.Platform.isDesktopApp&&t.addCommand({id:"commit-amend-staged-specified-message",name:"Amend staged",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0,amend:!0}))}),t.addCommand({id:"commit-smart-specified-message",name:"Commit with specific message",callback:()=>t.promiseQueue.addTask(async()=>{let n=(await t.updateCachedStatus()).staged.length>0;return t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:n})})}),t.addCommand({id:"commit-staged-specified-message",name:"Commit staged with specific message",checkCallback:function(r){return r?!1:t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0}))}}),t.addCommand({id:"push2",name:"Push",callback:()=>t.promiseQueue.addTask(()=>t.push())}),t.addCommand({id:"stage-current-file",name:"Stage current file",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;t.promiseQueue.addTask(()=>t.stageFile(n))}}),t.addCommand({id:"unstage-current-file",name:"Unstage current file",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;t.promiseQueue.addTask(()=>t.unstageFile(n))}}),t.addCommand({id:"edit-remotes",name:"Edit remotes",callback:()=>t.editRemotes().catch(r=>t.displayError(r))}),t.addCommand({id:"remove-remote",name:"Remove remote",callback:()=>t.removeRemote().catch(r=>t.displayError(r))}),t.addCommand({id:"set-upstream-branch",name:"Set upstream branch",callback:()=>t.setUpstreamBranch().catch(r=>t.displayError(r))}),t.addCommand({id:"delete-repo",name:"CAUTION: Delete repository",callback:async()=>{await e.vault.adapter.exists(`${t.settings.basePath}/.git`)?await new ze(t,{options:["NO","YES"],placeholder:"Do you really want to delete the repository (.git directory)? plugin action cannot be undone.",onlySelection:!0}).openAndGetResult()==="YES"&&(await e.vault.adapter.rmdir(`${t.settings.basePath}/.git`,!0),new bn.Notice("Successfully deleted repository. Reloading plugin..."),t.unloadPlugin(),await t.init({fromReload:!0})):new bn.Notice("No repository found")}}),t.addCommand({id:"init-repo",name:"Initialize a new repo",callback:()=>t.createNewRepo().catch(r=>t.displayError(r))}),t.addCommand({id:"clone-repo",name:"Clone an existing remote repo",callback:()=>t.cloneNewRepo().catch(r=>t.displayError(r))}),t.addCommand({id:"list-changed-files",name:"List changed files",callback:async()=>{if(await t.isAllInitialized())try{let r=await t.updateCachedStatus();if(r.changed.length+r.staged.length>500){t.displayError("Too many changes to display");return}new mh(t,r.all).open()}catch(r){t.displayError(r)}}}),t.addCommand({id:"switch-branch",name:"Switch branch",callback:()=>{t.switchBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"create-branch",name:"Create new branch",callback:()=>{t.createBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"delete-branch",name:"Delete branch",callback:()=>{t.deleteBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"discard-all",name:"CAUTION: Discard all changes",callback:async()=>{let r=await t.discardAll();switch(r){case"discard":new bn.Notice("Discarded all changes in tracked files.");break;case"delete":new bn.Notice("Discarded all files.");break;case!1:break;default:Ud(r)}}}),t.addCommand({id:"pause-automatic-routines",name:"Pause/Resume automatic routines",callback:()=>{let r=!t.localStorage.getPausedAutomatics();t.localStorage.setPausedAutomatics(r),r?(t.automaticsManager.unload(),new bn.Notice("Paused automatic routines.")):(t.automaticsManager.reload("commit","push","pull"),new bn.Notice("Resumed automatic routines."))}}),t.addCommand({id:"raw-command",name:"Raw command",checkCallback:r=>{let n=t.gitManager;if(r)return n instanceof Ce;t.tools.runRawCommand().catch(i=>t.displayError(i))}}),t.addCommand({id:"toggle-line-author-info",name:"Toggle line author information",callback:()=>{var r;return(r=t.settingsTab)==null?void 0:r.configureLineAuthorShowStatus(!t.settings.lineAuthor.show)}})}m();var vh=class{constructor(e){this.plugin=e;this.prefix=this.plugin.manifest.id+":",this.app=e.app}migrate(){let e=["password","hostname","conflict","lastAutoPull","lastAutoBackup","lastAutoPush","gitPath","pluginDisabled"];for(let r of e){let n=localStorage.getItem(this.prefix+r);this.app.loadLocalStorage(this.prefix+r)==null&&n!=null&&n!=null&&(this.app.saveLocalStorage(this.prefix+r,n),localStorage.removeItem(this.prefix+r))}}getPassword(){return this.app.loadLocalStorage(this.prefix+"password")}setPassword(e){return this.app.saveLocalStorage(this.prefix+"password",e)}getUsername(){return this.app.loadLocalStorage(this.prefix+"username")}setUsername(e){return this.app.saveLocalStorage(this.prefix+"username",e)}getHostname(){return this.app.loadLocalStorage(this.prefix+"hostname")}setHostname(e){return this.app.saveLocalStorage(this.prefix+"hostname",e)}getConflict(){return this.app.loadLocalStorage(this.prefix+"conflict")=="true"}setConflict(e){return this.app.saveLocalStorage(this.prefix+"conflict",`${e}`)}getLastAutoPull(){return this.app.loadLocalStorage(this.prefix+"lastAutoPull")}setLastAutoPull(e){return this.app.saveLocalStorage(this.prefix+"lastAutoPull",e)}getLastAutoBackup(){return this.app.loadLocalStorage(this.prefix+"lastAutoBackup")}setLastAutoBackup(e){return this.app.saveLocalStorage(this.prefix+"lastAutoBackup",e)}getLastAutoPush(){return this.app.loadLocalStorage(this.prefix+"lastAutoPush")}setLastAutoPush(e){return this.app.saveLocalStorage(this.prefix+"lastAutoPush",e)}getGitPath(){return this.app.loadLocalStorage(this.prefix+"gitPath")}setGitPath(e){return this.app.saveLocalStorage(this.prefix+"gitPath",e)}getPATHPaths(){var e,r;return(r=(e=this.app.loadLocalStorage(this.prefix+"PATHPaths"))==null?void 0:e.split(":"))!=null?r:[]}setPATHPaths(e){return this.app.saveLocalStorage(this.prefix+"PATHPaths",e.join(":"))}getEnvVars(){var e;return JSON.parse((e=this.app.loadLocalStorage(this.prefix+"envVars"))!=null?e:"[]")}setEnvVars(e){return this.app.saveLocalStorage(this.prefix+"envVars",JSON.stringify(e))}getPluginDisabled(){return this.app.loadLocalStorage(this.prefix+"pluginDisabled")=="true"}setPluginDisabled(e){return this.app.saveLocalStorage(this.prefix+"pluginDisabled",`${e}`)}getPausedAutomatics(){return this.app.loadLocalStorage(this.prefix+"pausedAutomatics")=="true"}setPausedAutomatics(e){return this.app.saveLocalStorage(this.prefix+"pausedAutomatics",`${e}`)}};m();var Ho=require("obsidian");var Uc=class{constructor(e){this.plugin=e}async hasTooBigFiles(e){let r=await this.plugin.gitManager.branchInfo(),n=r.tracking?ki(r.tracking)[0]:null;if(!n)return!1;let i=await this.plugin.gitManager.getRemoteUrl(n);if(i!=null&&i.includes("github.com")){let a=[],s=this.plugin.gitManager;for(let o of e){let l=this.plugin.app.vault.getAbstractFileByPath(o.vaultPath),c=!1;if(l instanceof Ho.TFile)l.stat.size>=1e8&&(c=!0);else{let u=await this.plugin.app.vault.adapter.stat(o.vaultPath);u&&u.size>=1e8&&(c=!0)}if(c){let u=!1;s instanceof Ce&&(u=await s.isFileTrackedByLFS(o.path)),u||a.push(o)}}if(a.length>0)return this.plugin.displayError(`Aborted commit, because the following files are too big: -- ${a.map(o=>o.vaultPath).join(` -- `)} -Please remove them or add to .gitignore.`),!0}return!1}async writeAndOpenFile(e){e!==void 0&&await this.plugin.app.vault.adapter.write(To,e);let r=!1;this.plugin.app.workspace.iterateAllLeaves(n=>{n.getDisplayText()!=""&&To.startsWith(n.getDisplayText())&&(r=!0)}),r||await this.plugin.app.workspace.openLinkText(To,"/",!0)}openDiff({aFile:e,bFile:r,aRef:n,bRef:i,event:a}){var l,c;let s=this.plugin.settings.diffStyle;Ho.Platform.isMobileApp&&(s="git_unified");let o={aFile:e,bFile:r!=null?r:e,aRef:n,bRef:i};s=="split"?(l=vn(this.plugin.app,a))==null||l.setViewState({type:ca.type,active:!0,state:o}):s=="git_unified"&&((c=vn(this.plugin.app,a))==null||c.setViewState({type:ua.type,active:!0,state:o}))}async runRawCommand(){let e=this.plugin.gitManager;if(!(e instanceof Ce))return;let n=await new ze(this.plugin,{placeholder:"push origin master",allowEmpty:!1}).openAndGetResult();n!==void 0&&this.plugin.promiseQueue.addTask(async()=>{let i=new Ho.Notice(`Running '${n}'...`,999999);try{let a=await e.rawCommand(n);a?(i.setMessage(a),window.setTimeout(()=>i.hide(),5e3)):i.hide()}catch(a){throw i.hide(),a}})}};m();m();m();m();var Ke;(function(t){t.INSERT="insert",t.DELETE="delete",t.CONTEXT="context"})(Ke||(Ke={}));var lM={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},cM={LINES:"lines",WORDS:"words",NONE:"none"},uM={WORD:"word",CHAR:"char"},as;(function(t){t.AUTO="auto",t.DARK="dark",t.LIGHT="light"})(as||(as={}));m();var SU=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],EU=RegExp("["+SU.join("\\")+"]","g");function fM(t){return t.replace(EU,"\\$&")}function Hv(t){return t&&t.replace(/\\/g,"/")}function dM(t){let e,r,n,i=0;for(e=0,n=t.length;e1?r[r.length-1]:e}function pM(t,e){return e.reduce((r,n)=>r||t.startsWith(n),!1)}var mM=["a/","b/","i/","w/","c/","o/"];function ga(t,e,r){let n=r!==void 0?[...mM,r]:mM,i=e?new RegExp(`^${fM(e)} "?(.+?)"?$`):new RegExp('^"?(.+?)"?$'),[,a=""]=i.exec(t)||[],s=n.find(l=>a.indexOf(l)===0);return(s?a.slice(s.length):a).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function AU(t,e){return ga(t,"---",e)}function kU(t,e){return ga(t,"+++",e)}function gM(t,e={}){let r=[],n=null,i=null,a=null,s=null,o=null,l=null,c=null,u="--- ",f="+++ ",d="@@",h=/^old mode (\d{6})/,p=/^new mode (\d{6})/,g=/^deleted file mode (\d{6})/,v=/^new file mode (\d{6})/,y=/^copy from "?(.+)"?/,b=/^copy to "?(.+)"?/,E=/^rename from "?(.+)"?/,S=/^rename to "?(.+)"?/,A=/^similarity index (\d+)%/,k=/^dissimilarity index (\d+)%/,w=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,x=/^Binary files (.*) and (.*) differ/,_=/^GIT binary patch/,T=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,C=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,I=/^new file mode (\d{6})/,L=/^deleted file mode (\d{6}),(\d{6})/,$=t.replace(/\\ No newline at end of file/g,"").replace(/\r\n?/g,` -`).split(` -`);function J(){i!==null&&n!==null&&(n.blocks.push(i),i=null)}function de(){n!==null&&(!n.oldName&&l!==null&&(n.oldName=l),!n.newName&&c!==null&&(n.newName=c),n.newName&&(r.push(n),n=null)),l=null,c=null}function le(){J(),de(),n={blocks:[],deletedLines:0,addedLines:0}}function ce(N){J();let W;n!==null&&((W=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(N))?(n.isCombined=!1,a=parseInt(W[1],10),o=parseInt(W[2],10)):(W=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(N))?(n.isCombined=!0,a=parseInt(W[1],10),s=parseInt(W[2],10),o=parseInt(W[3],10)):(N.startsWith(d)&&console.error("Failed to parse lines, starting in 0!"),a=0,o=0,n.isCombined=!1)),i={lines:[],oldStartLine:a,oldStartLine2:s,newStartLine:o,header:N}}function Te(N){if(n===null||i===null||a===null||o===null)return;let W={content:N},B=n.isCombined?["+ "," +","++"]:["+"],$e=n.isCombined?["- "," -","--"]:["-"];pM(N,B)?(n.addedLines++,W.type=Ke.INSERT,W.oldNumber=void 0,W.newNumber=o++):pM(N,$e)?(n.deletedLines++,W.type=Ke.DELETE,W.oldNumber=a++,W.newNumber=void 0):(W.type=Ke.CONTEXT,W.oldNumber=a++,W.newNumber=o++),i.lines.push(W)}function ne(N,W){let B=W;for(;B<$.length-3;){if(N.startsWith("diff"))return!1;if($[B].startsWith(u)&&$[B+1].startsWith(f)&&$[B+2].startsWith(d))return!0;B++}return!1}return $.forEach((N,W)=>{if(!N||N.startsWith("*"))return;let B,$e=$[W-1],lr=$[W+1],Ut=$[W+2];if(N.startsWith("diff --git")||N.startsWith("diff --combined")){if(le(),(B=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(N))&&(l=ga(B[1],void 0,e.dstPrefix),c=ga(B[2],void 0,e.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isGitDiff=!0;return}if(N.startsWith("Binary files")&&!(n!=null&&n.isGitDiff)){if(le(),(B=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(N))&&(l=ga(B[1],void 0,e.dstPrefix),c=ga(B[2],void 0,e.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isBinary=!0;return}if((!n||!n.isGitDiff&&n&&N.startsWith(u)&&lr.startsWith(f)&&Ut.startsWith(d))&&le(),n!=null&&n.isTooBig)return;if(n&&(typeof e.diffMaxChanges=="number"&&n.addedLines+n.deletedLines>e.diffMaxChanges||typeof e.diffMaxLineLength=="number"&&N.length>e.diffMaxLineLength)){n.isTooBig=!0,n.addedLines=0,n.deletedLines=0,n.blocks=[],i=null;let Oe=typeof e.diffTooBigMessage=="function"?e.diffTooBigMessage(r.length):"Diff too big to be displayed";ce(Oe);return}if(N.startsWith(u)&&lr.startsWith(f)||N.startsWith(f)&&$e.startsWith(u)){if(n&&!n.oldName&&N.startsWith("--- ")&&(B=AU(N,e.srcPrefix))){n.oldName=B,n.language=hM(n.oldName,n.language);return}if(n&&!n.newName&&N.startsWith("+++ ")&&(B=kU(N,e.dstPrefix))){n.newName=B,n.language=hM(n.newName,n.language);return}}if(n&&(N.startsWith(d)||n.isGitDiff&&n.oldName&&n.newName&&!i)){ce(N);return}if(i&&(N.startsWith("+")||N.startsWith("-")||N.startsWith(" "))){Te(N);return}let X=!ne(N,W);if(n===null)throw new Error("Where is my file !!!");(B=h.exec(N))?n.oldMode=B[1]:(B=p.exec(N))?n.newMode=B[1]:(B=g.exec(N))?(n.deletedFileMode=B[1],n.isDeleted=!0):(B=v.exec(N))?(n.newFileMode=B[1],n.isNew=!0):(B=y.exec(N))?(X&&(n.oldName=B[1]),n.isCopy=!0):(B=b.exec(N))?(X&&(n.newName=B[1]),n.isCopy=!0):(B=E.exec(N))?(X&&(n.oldName=B[1]),n.isRename=!0):(B=S.exec(N))?(X&&(n.newName=B[1]),n.isRename=!0):(B=x.exec(N))?(n.isBinary=!0,n.oldName=ga(B[1],void 0,e.srcPrefix),n.newName=ga(B[2],void 0,e.dstPrefix),ce("Binary file")):_.test(N)?(n.isBinary=!0,ce(N)):(B=A.exec(N))?n.unchangedPercentage=parseInt(B[1],10):(B=k.exec(N))?n.changedPercentage=parseInt(B[1],10):(B=w.exec(N))?(n.checksumBefore=B[1],n.checksumAfter=B[2],B[3]&&(n.mode=B[3])):(B=T.exec(N))?(n.checksumBefore=[B[2],B[3]],n.checksumAfter=B[1]):(B=C.exec(N))?(n.oldMode=[B[2],B[3]],n.newMode=B[1]):(B=I.exec(N))?(n.newFileMode=B[1],n.isNew=!0):(B=L.exec(N))&&(n.deletedFileMode=B[1],n.isDeleted=!0)}),J(),de(),r}m();m();m();function CU(t,e){if(t.length===0)return e.length;if(e.length===0)return t.length;let r=[],n;for(n=0;n<=e.length;n++)r[n]=[n];let i;for(i=0;i<=t.length;i++)r[0][i]=i;for(n=1;n<=e.length;n++)for(i=1;i<=t.length;i++)e.charAt(n-1)===t.charAt(i-1)?r[n][i]=r[n-1][i-1]:r[n][i]=Math.min(r[n-1][i-1]+1,Math.min(r[n][i-1]+1,r[n-1][i]+1));return r[e.length][t.length]}function Uo(t){return(e,r)=>{let n=t(e).trim(),i=t(r).trim();return CU(n,i)/(n.length+i.length)}}function Go(t){function e(n,i,a=new Map){let s=1/0,o;for(let l=0;l0||o.indexB>0)&&(E=v.concat(E)),(n.length>d||i.length>h)&&(E=E.concat(b)),E}return r}var Dt={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},ss={matching:cM.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:uM.WORD,colorScheme:as.LIGHT},Zn="/",vM=Uo(t=>t.value),PU=Go(vM);function Gv(t){return t.indexOf("dev/null")!==-1}function RU(t){return t.replace(/(]*>((.|\n)*?)<\/ins>)/g,"")}function MU(t){return t.replace(/(]*>((.|\n)*?)<\/del>)/g,"")}function zo(t){switch(t){case Ke.CONTEXT:return Dt.CONTEXT;case Ke.INSERT:return Dt.INSERTS;case Ke.DELETE:return Dt.DELETES}}function Vo(t){switch(t){case as.DARK:return"d2h-dark-color-scheme";case as.AUTO:return"d2h-auto-color-scheme";case as.LIGHT:default:return"d2h-light-color-scheme"}}function OU(t){return t?2:1}function va(t){return t.slice(0).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function en(t,e,r=!0){let n=OU(e);return{prefix:t.substring(0,n),content:r?va(t.substring(n)):t.substring(n)}}function os(t){let e=Hv(t.oldName),r=Hv(t.newName);if(e!==r&&!Gv(e)&&!Gv(r)){let n=[],i=[],a=e.split(Zn),s=r.split(Zn),o=a.length,l=s.length,c=0,u=o-1,f=l-1;for(;cc&&f>c&&a[u]===s[f];)i.unshift(s[f]),u-=1,f-=1;let d=n.join(Zn),h=i.join(Zn),p=a.slice(c,u+1).join(Zn),g=s.slice(c,f+1).join(Zn);return d.length&&h.length?d+Zn+"{"+p+" \u2192 "+g+"}"+Zn+h:d.length?d+Zn+"{"+p+" \u2192 "+g+"}":h.length?"{"+p+" \u2192 "+g+"}"+Zn+h:e+" \u2192 "+r}else return Gv(r)?e:r}function qo(t){return`d2h-${dM(os(t)).toString().slice(-6)}`}function Wo(t){let e="file-changed";return t.isRename||t.isCopy?e="file-renamed":t.isNew?e="file-added":t.isDeleted?e="file-deleted":t.newName!==t.oldName&&(e="file-renamed"),e}function wh(t,e,r,n={}){let{matching:i,maxLineLengthHighlight:a,matchWordsThreshold:s,diffStyle:o}=Object.assign(Object.assign({},ss),n),l=en(t,r,!1),c=en(e,r,!1);if(l.content.length>a||c.content.length>a)return{oldLine:{prefix:l.prefix,content:va(l.content)},newLine:{prefix:c.prefix,content:va(c.content)}};let u=o==="char"?E3(l.content,c.content):k3(l.content,c.content),f=[];if(o==="word"&&i==="words"){let h=u.filter(v=>v.removed),p=u.filter(v=>v.added);PU(p,h).forEach(v=>{v[0].length===1&&v[1].length===1&&vM(v[0][0],v[1][0]){let g=p.added?"ins":p.removed?"del":null,v=f.indexOf(p)>-1?' class="d2h-change"':"",y=va(p.value);return g!==null?`${h}<${g}${v}>${y}`:`${h}${y}`},"");return{oldLine:{prefix:l.prefix,content:RU(d)},newLine:{prefix:c.prefix,content:MU(d)}}}var yM="file-summary",IU="icon",FU={colorScheme:ss.colorScheme},bh=class{constructor(e,r={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},FU),r)}render(e){let r=e.map(n=>this.hoganUtils.render(yM,"line",{fileHtmlId:qo(n),oldName:n.oldName,newName:n.newName,fileName:os(n),deletedLines:"-"+n.deletedLines,addedLines:"+"+n.addedLines},{fileIcon:this.hoganUtils.template(IU,Wo(n))})).join(` -`);return this.hoganUtils.render(yM,"wrapper",{colorScheme:Vo(this.config.colorScheme),filesNumber:e.length,files:r})}};m();var Vv=Object.assign(Object.assign({},ss),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),Gc="generic",wM="line-by-line",$U="icon",DU="tag",zc=class{constructor(e,r={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},Vv),r)}render(e){let r=e.map(n=>{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` -`);return this.hoganUtils.render(Gc,"wrapper",{colorScheme:Vo(this.config.colorScheme),content:r})}makeFileDiffHtml(e,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let n=this.hoganUtils.template(wM,"file-diff"),i=this.hoganUtils.template(Gc,"file-path"),a=this.hoganUtils.template($U,"file"),s=this.hoganUtils.template(DU,Wo(e));return n.render({file:e,fileHtmlId:qo(e),diffs:r,filePath:i.render({fileDiffName:os(e)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return this.hoganUtils.render(Gc,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:Dt})}generateFileHtml(e){let r=Go(Uo(n=>en(n.content,e.isCombined).content));return e.blocks.map(n=>{let i=this.hoganUtils.render(Gc,"block-header",{CSSLineClass:Dt,blockHeader:e.isTooBig?n.header:va(n.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(n).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,r).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e,e.isCombined,l,c);i+=u,i+=f});else if(a.length)a.forEach(l=>{let{prefix:c,content:u}=en(l.content,e.isCombined);i+=this.generateSingleLineHtml(e,{type:Dt.CONTEXT,prefix:c,content:u,oldNumber:l.oldNumber,newNumber:l.newNumber})});else if(s.length||o.length){let{left:l,right:c}=this.processChangedLines(e,e.isCombined,s,o);i+=l,i+=c}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).join(` -`)}applyLineGroupping(e){let r=[],n=[],i=[];for(let a=0;a0)&&(r.push([[],n,i]),n=[],i=[]),s.type===Ke.CONTEXT?r.push([[s],[],[]]):s.type===Ke.INSERT&&n.length===0?r.push([[],[],[s]]):s.type===Ke.INSERT&&n.length>0?i.push(s):s.type===Ke.DELETE&&n.push(s)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(e,r,n){let i=e.length*r.length,a=yh(e.concat(r).map(o=>o.content.length));return i{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` -`);return this.hoganUtils.render(Vc,"wrapper",{colorScheme:Vo(this.config.colorScheme),content:r})}makeFileDiffHtml(e,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let n=this.hoganUtils.template(LU,"file-diff"),i=this.hoganUtils.template(Vc,"file-path"),a=this.hoganUtils.template(jU,"file"),s=this.hoganUtils.template(NU,Wo(e));return n.render({file:e,fileHtmlId:qo(e),diffs:r,filePath:i.render({fileDiffName:os(e)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return{right:"",left:this.hoganUtils.render(Vc,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:Dt})}}generateFileHtml(e){let r=Go(Uo(n=>en(n.content,e.isCombined).content));return e.blocks.map(n=>{let i={left:this.makeHeaderHtml(n.header,e),right:this.makeHeaderHtml("")};return this.applyLineGroupping(n).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,r).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e.isCombined,l,c);i.left+=u,i.right+=f});else if(a.length)a.forEach(l=>{let{prefix:c,content:u}=en(l.content,e.isCombined),{left:f,right:d}=this.generateLineHtml({type:Dt.CONTEXT,prefix:c,content:u,number:l.oldNumber},{type:Dt.CONTEXT,prefix:c,content:u,number:l.newNumber});i.left+=f,i.right+=d});else if(s.length||o.length){let{left:l,right:c}=this.processChangedLines(e.isCombined,s,o);i.left+=l,i.right+=c}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).reduce((n,i)=>({left:n.left+i.left,right:n.right+i.right}),{left:"",right:""})}applyLineGroupping(e){let r=[],n=[],i=[];for(let a=0;a0)&&(r.push([[],n,i]),n=[],i=[]),s.type===Ke.CONTEXT?r.push([[s],[],[]]):s.type===Ke.INSERT&&n.length===0?r.push([[],[],[s]]):s.type===Ke.INSERT&&n.length>0?i.push(s):s.type===Ke.DELETE&&n.push(s)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(e,r,n){let i=e.length*r.length,a=yh(e.concat(r).map(o=>o.content.length));return i'),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(n.rp("'),n.b(n.v(n.f("fileName",t,e,0))),n.b(""),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(' '),n.b(n.v(n.f("addedLines",t,e,0))),n.b(""),n.b(` -`+r),n.b(' '),n.b(n.v(n.f("deletedLines",t,e,0))),n.b(""),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b(""),n.fl()},partials:{"'),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b(' Files changed ('),n.b(n.v(n.f("filesNumber",t,e,0))),n.b(")"),n.b(` -`+r),n.b(' hide'),n.b(` -`+r),n.b(' show'),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b('
    '),n.b(` -`+r),n.b(" "),n.b(n.t(n.f("files",t,e,0))),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b(""),n.fl()},partials:{},subs:{}});dt["generic-block-header"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b(""),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b('
'),n.s(n.f("blockHeader",t,e,1),t,e,0,156,173,"{{ }}")&&(n.rs(t,e,function(i,a,s){s.b(s.t(s.f("blockHeader",i,a,0)))}),t.pop()),n.s(n.f("blockHeader",t,e,1),t,e,1,0,0,"")||n.b(" "),n.b("
"),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b(""),n.fl()},partials:{},subs:{}});dt["generic-empty-diff"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b(""),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b(" File without changes"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b(""),n.fl()},partials:{},subs:{}});dt["generic-file-path"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b(''),n.b(` -`+r),n.b(n.rp("'),n.b(n.v(n.f("fileDiffName",t,e,0))),n.b(""),n.b(` -`+r),n.b(n.rp(""),n.b(` -`+r),n.b('"),n.fl()},partials:{""),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(" "),n.b(n.t(n.f("lineNumber",t,e,0))),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.s(n.f("prefix",t,e,1),t,e,0,162,238,"{{ }}")&&(n.rs(t,e,function(i,a,s){s.b(' '),s.b(s.t(s.f("prefix",i,a,0))),s.b(""),s.b(` -`+r)}),t.pop()),n.s(n.f("prefix",t,e,1),t,e,1,0,0,"")||(n.b('  '),n.b(` -`+r)),n.s(n.f("content",t,e,1),t,e,0,371,445,"{{ }}")&&(n.rs(t,e,function(i,a,s){s.b(' '),s.b(s.t(s.f("content",i,a,0))),s.b(""),s.b(` -`+r)}),t.pop()),n.s(n.f("content",t,e,1),t,e,1,0,0,"")||(n.b('
'),n.b(` -`+r)),n.b("
"),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b(""),n.fl()},partials:{},subs:{}});dt["generic-wrapper"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(` -`+r),n.b(" "),n.b(n.t(n.f("content",t,e,0))),n.b(` -`+r),n.b("
"),n.fl()},partials:{},subs:{}});dt["icon-file-added"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});dt["icon-file-changed"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});dt["icon-file-deleted"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});dt["icon-file-renamed"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});dt["icon-file"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});dt["line-by-line-file-diff"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b(" "),n.b(n.t(n.f("filePath",t,e,0))),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(" "),n.b(n.t(n.f("diffs",t,e,0))),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.fl()},partials:{},subs:{}});dt["line-by-line-numbers"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(n.v(n.f("oldNumber",t,e,0))),n.b("
"),n.b(` -`+r),n.b('
'),n.b(n.v(n.f("newNumber",t,e,0))),n.b("
"),n.fl()},partials:{},subs:{}});dt["side-by-side-file-diff"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b(" "),n.b(n.t(n.f("filePath",t,e,0))),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(" "),n.b(n.t(n.d("diffs.left",t,e,0))),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b('
'),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(' '),n.b(` -`+r),n.b(" "),n.b(n.t(n.d("diffs.right",t,e,0))),n.b(` -`+r),n.b(" "),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.b(` -`+r),n.b("
"),n.fl()},partials:{},subs:{}});dt["tag-file-added"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('ADDED'),n.fl()},partials:{},subs:{}});dt["tag-file-changed"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('CHANGED'),n.fl()},partials:{},subs:{}});dt["tag-file-deleted"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('DELETED'),n.fl()},partials:{},subs:{}});dt["tag-file-renamed"]=new ht.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('RENAMED'),n.fl()},partials:{},subs:{}});var Wc=class{constructor({compiledTemplates:e={},rawTemplates:r={}}){let n=Object.entries(r).reduce((i,[a,s])=>{let o=Kv.compile(s,{asString:!1});return Object.assign(Object.assign({},i),{[a]:o})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},dt),e),n)}static compile(e){return Kv.compile(e,{asString:!1})}render(e,r,n,i,a){let s=this.templateKey(e,r);try{return this.preCompiledTemplates[s].render(n,i,a)}catch(o){throw new Error(`Could not find template to render '${s}'`)}}template(e,r){return this.preCompiledTemplates[this.templateKey(e,r)]}templateKey(e,r){return`${e}-${r}`}};var HU=Object.assign(Object.assign(Object.assign({},Vv),qv),{outputFormat:lM.LINE_BY_LINE,drawFileList:!0});function SM(t,e={}){let r=Object.assign(Object.assign({},HU),e),n=typeof t=="string"?gM(t,r):t,i=new Wc(r),{colorScheme:a}=r,s={colorScheme:a},o=r.drawFileList?new bh(i,s).render(n):"",l=r.outputFormat==="side-by-side"?new qc(i,r).render(n):new zc(i,r).render(n);return o+l}var xh=require("obsidian");var ls=class extends xh.ItemView{constructor(r,n){super(r);this.plugin=n;this.gettingDiff=!1;this.parser=new DOMParser,this.navigation=!0,this.gitRefreshRef=this.app.workspace.on("obsidian-git:status-changed",()=>{this.refresh().catch(console.error)})}getViewType(){return ua.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();return n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3)),`Diff: ${n}`}return ua.name}getIcon(){return ua.icon}async setState(r,n){this.state=r,xh.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await this.refresh()}getState(){return this.state}onClose(){return this.app.workspace.offref(this.gitRefreshRef),this.app.workspace.offref(this.gitViewRefreshRef),super.onClose()}async onOpen(){return await this.refresh(),super.onOpen()}async refresh(){var r;if((r=this.state)!=null&&r.bFile&&!this.gettingDiff&&this.plugin.gitManager){this.gettingDiff=!0;try{let n=await this.plugin.gitManager.getDiffString(this.state.bFile,this.state.aRef=="HEAD",this.state.bRef);this.contentEl.empty();let i=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);if(!n){if(this.plugin.gitManager instanceof Ce&&await this.plugin.gitManager.isTracked(this.state.bFile))n=[`--- ${this.state.aFile}`,`+++ ${this.state.bFile}`,""].join(` -`);else if(await this.app.vault.adapter.exists(i)){let a=await this.app.vault.adapter.read(i);n=[...`--- /dev/null -+++ ${this.state.bFile} -@@ -0,0 +1,${a.split(` -`).length} @@`.split(` -`),...a.split(` -`).map(o=>`+${o}`)].join(` -`)}}if(n){let a=this.parser.parseFromString(SM(n),"text/html").querySelector(".d2h-file-diff");this.contentEl.append(a)}else{let a=this.contentEl.createDiv({cls:"obsidian-git-center"});a.createSpan({text:"\u26A0\uFE0F",attr:{style:"font-size: 2em"}}),a.createEl("br"),a.createSpan({text:"File not found: "+this.state.bFile})}}finally{this.gettingDiff=!1}}}};m();var Qo=require("obsidian");var el=require("@codemirror/commands");m();var Ie=require("@codemirror/view"),ke=require("@codemirror/state");m();var Zv="\u037C",EM=typeof Symbol=="undefined"?"__"+Zv:Symbol.for(Zv),Jv=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),AM=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},Sh=class{constructor(e,r){this.rules=[];let{finish:n}=r||{};function i(s){return/^@/.test(s)?[s]:s.split(/,\s*/)}function a(s,o,l,c){let u=[],f=/^@(\w+)\b/.exec(s[0]),d=f&&f[1]=="keyframes";if(f&&o==null)return l.push(s[0]+";");for(let h in o){let p=o[h];if(/&/.test(h))a(h.split(/,\s*/).map(g=>s.map(v=>g.replace(/&/,v))).reduce((g,v)=>g.concat(v)),p,l);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+h+") should be a primitive value.");a(i(h),p,u,d)}else p!=null&&u.push(h.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+p+";")}(u.length||d)&&l.push((n&&!f&&!c?s.map(n):s).join(", ")+" {"+u.join(" ")+"}")}for(let s in e)a(i(s),e[s],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=AM[EM]||1;return AM[EM]=e+1,Zv+e.toString(36)}static mount(e,r,n){let i=e[Jv],a=n&&n.nonce;i?a&&i.setNonce(a):i=new Qv(e,a),i.mount(Array.isArray(r)?r:[r],e)}},kM=new Map,Qv=class{constructor(e,r){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let a=kM.get(n);if(a)return e[Jv]=a;this.sheet=new i.CSSStyleSheet,kM.set(n,this)}else this.styleTag=n.createElement("style"),r&&this.styleTag.setAttribute("nonce",r);this.modules=[],e[Jv]=this}mount(e,r){let n=this.sheet,i=0,a=0;for(let s=0;s-1&&(this.modules.splice(l,1),a--,l=-1),l==-1){if(this.modules.splice(a++,0,o),n)for(let c=0;cc){let f=t.slice(e,r).indexOf(n.slice(i,a));if(f>-1)return[new pt(e,e+f,i,i),new pt(e+f+c,r,a,a)]}else if(c>l){let f=n.slice(i,a).indexOf(t.slice(e,r));if(f>-1)return[new pt(e,e,i,i+f),new pt(r,r,i+f+l,a)]}if(l==1||c==1)return[new pt(e,r,i,a)];let u=qM(t,e,r,n,i,a);if(u){let[f,d,h]=u;return us(t,e,f,n,i,d).concat(us(t,f+h,r,n,d+h,a))}return GU(t,e,r,n,i,a)}var Yc=1e9,Xc=0,s1=!1;function GU(t,e,r,n,i,a){let s=r-e,o=a-i;if(Yc<1e9&&Math.min(s,o)>Yc*16||Xc>0&&Date.now()>Xc)return Math.min(s,o)>Yc*64?[new pt(e,r,i,a)]:TM(t,e,r,n,i,a);let l=Math.ceil((s+o)/2);e1.reset(l),t1.reset(l);let c=(h,p)=>t.charCodeAt(e+h)==n.charCodeAt(i+p),u=(h,p)=>t.charCodeAt(r-h-1)==n.charCodeAt(a-p-1),f=(s-o)%2!=0?t1:null,d=f?null:e1;for(let h=0;hYc||Xc>0&&!(h&63)&&Date.now()>Xc)return TM(t,e,r,n,i,a);let p=e1.advance(h,s,o,l,f,!1,c)||t1.advance(h,s,o,l,d,!0,u);if(p)return zU(t,e,r,e+p[0],n,i,a,i+p[1])}return[new pt(e,r,i,a)]}var Ch=class{constructor(){this.vec=[]}reset(e){this.len=e<<1;for(let r=0;rr)this.end+=2;else if(f>n)this.start+=2;else if(a){let d=i+(r-n)-l;if(d>=0&&d=r-u)return[h,i+h-d]}else{let h=r-a.vec[d];if(u>=h)return[u,f]}}}return null}},e1=new Ch,t1=new Ch;function zU(t,e,r,n,i,a,s,o){let l=!1;return!Ko(t,n)&&++n==r&&(l=!0),!Ko(i,o)&&++o==s&&(l=!0),l?[new pt(e,r,a,s)]:us(t,e,n,i,a,o).concat(us(t,n,r,i,o,s))}function VM(t,e){let r=1,n=Math.min(t,e);for(;rr||u>a||t.slice(o,c)!=n.slice(l,u)){if(s==1)return o-e-(Ko(t,o)?0:1);s=s>>1}else{if(c==r||u==a)return c-e;o=c,l=u}}}function l1(t,e,r,n,i,a){if(e==r||i==a||t.charCodeAt(r-1)!=n.charCodeAt(a-1))return 0;let s=VM(r-e,a-i);for(let o=r,l=a;;){let c=o-s,u=l-s;if(c>1}else{if(c==e||u==i)return r-c;o=c,l=u}}}function r1(t,e,r,n,i,a,s,o){let l=n.slice(i,a),c=null;for(;;){if(c||s=r)break;let d=t.slice(u,f),h=-1;for(;(h=l.indexOf(d,h+1))!=-1;){let p=o1(t,f,r,n,i+h+d.length,a),g=l1(t,e,u,n,i,i+h),v=d.length+p+g;(!c||c[2]>1}}function qM(t,e,r,n,i,a){let s=r-e,o=a-i;if(si.fromA-e&&n.toB>i.fromB-e&&(t[r-1]=new pt(n.fromA,i.toA,n.fromB,i.toB),t.splice(r--,1))}}function VU(t,e,r){for(;;){WM(r,1);let n=!1;for(let i=0;i3||o>3){let l=i==t.length-1?e.length:t[i+1].fromA,c=a.fromA-n,u=l-a.toA,f=PM(e,a.fromA,c),d=CM(e,a.toA,u),h=a.fromA-f,p=d-a.toA;if((!s||!o)&&h&&p){let g=Math.max(s,o),[v,y,b]=s?[e,a.fromA,a.toA]:[r,a.fromB,a.toB];g>h&&e.slice(f,a.fromA)==v.slice(b-h,b)?(a=t[i]=new pt(f,f+s,a.fromB-h,a.toB-h),f=a.fromA,d=CM(e,a.toA,l-a.toA)):g>p&&e.slice(a.toA,d)==v.slice(y,y+p)&&(a=t[i]=new pt(d-s,d,a.fromB+p,a.toB+p),d=a.toA,f=PM(e,a.fromA,a.fromA-n)),h=a.fromA-f,p=d-a.toA}if(h||p)a=t[i]=new pt(a.fromA-h,a.toA+p,a.fromB-h,a.toB+p);else if(s){if(!o){let g=MM(e,a.fromA,a.toA),v,y=g<0?-1:RM(e,a.toA,a.fromA);g>-1&&(v=g-a.fromA)<=u&&e.slice(a.fromA,g)==e.slice(a.toA,a.toA+v)?a=t[i]=a.offset(v):y>-1&&(v=a.toA-y)<=c&&e.slice(a.fromA-v,a.fromA)==e.slice(y,a.toA)&&(a=t[i]=a.offset(-v))}}else{let g=MM(r,a.fromB,a.toB),v,y=g<0?-1:RM(r,a.toB,a.fromB);g>-1&&(v=g-a.fromB)<=u&&r.slice(a.fromB,g)==r.slice(a.toB,a.toB+v)?a=t[i]=a.offset(v):y>-1&&(v=a.toB-y)<=c&&r.slice(a.fromB-v,a.fromB)==r.slice(y,a.toB)&&(a=t[i]=a.offset(-v))}}n=a.toA}return WM(t,3),t}var cs;try{cs=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch(t){}function YM(t){return t>48&&t<58||t>64&&t<91||t>96&&t<123}function XM(t,e){if(e==t.length)return 0;let r=t.charCodeAt(e);return r<192?YM(r)?1:0:cs?!JM(r)||e==t.length-1?cs.test(String.fromCharCode(r))?1:0:cs.test(t.slice(e,e+2))?2:0:0}function KM(t,e){if(!e)return 0;let r=t.charCodeAt(e-1);return r<192?YM(r)?1:0:cs?!QM(r)||e==1?cs.test(String.fromCharCode(r))?1:0:cs.test(t.slice(e-2,e))?2:0:0}var ZM=8;function CM(t,e,r){if(e==t.length||!KM(t,e))return e;for(let n=e,i=e+r,a=0;ai)return n;n+=s}return e}function PM(t,e,r){if(!e||!XM(t,e))return e;for(let n=e,i=e-r,a=0;at>=55296&&t<=56319,QM=t=>t>=56320&&t<=57343;function Ko(t,e){return!e||e==t.length||!JM(t.charCodeAt(e-1))||!QM(t.charCodeAt(e))}function WU(t,e,r){var n;return Yc=((n=r==null?void 0:r.scanLimit)!==null&&n!==void 0?n:1e9)>>1,Xc=r!=null&&r.timeout?Date.now()+r.timeout:0,s1=!1,VU(t,e,us(t,0,t.length,e,0,e.length))}function eO(){return!s1}function tO(t,e,r){return qU(WU(t,e,r),t,e)}var Jn=ke.Facet.define({combine:t=>t[0]}),n1=ke.StateEffect.define(),YU=ke.Facet.define(),Zo=ke.StateField.define({create(t){return null},update(t,e){for(let r of e.effects)r.is(n1)&&(t=r.value);for(let r of e.state.facet(YU))t=r(t,e);return t}});var Xo=class t{constructor(e,r,n,i,a,s=!0){this.changes=e,this.fromA=r,this.toA=n,this.fromB=i,this.toB=a,this.precise=s}offset(e,r){return e||r?new t(this.changes,this.fromA+e,this.toA+e,this.fromB+r,this.toB+r,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(e,r,n){let i=tO(e.toString(),r.toString(),n);return rO(i,e,r,0,0,eO())}static updateA(e,r,n,i,a){return DM($M(e,i,!0,n.length),e,r,n,a)}static updateB(e,r,n,i,a){return DM($M(e,i,!1,r.length),e,r,n,a)}};function OM(t,e,r,n){let i=r.lineAt(t),a=n.lineAt(e);return i.to==t&&a.to==e&&tf+1&&v>d+1)break;h.push(p.offset(-c+n,-u+i)),[f,d]=IM(p.toA+n,p.toB+i,e,r),o++}s.push(new Xo(h,c,Math.max(c,f),u,Math.max(u,d),a))}return s}var Eh=1e3;function FM(t,e,r,n){let i=0,a=t.length;for(;;){if(i==a){let u=0,f=0;i&&({toA:u,toB:f}=t[i-1]);let d=e-(r?u:f);return[u+d,f+d]}let s=i+a>>1,o=t[s],[l,c]=r?[o.fromA,o.toA]:[o.fromB,o.toB];if(l>e)a=s;else if(c<=e)i=s+1;else return n?[o.fromA,o.fromB]:[o.toA,o.toB]}}function $M(t,e,r,n){let i=[];return e.iterChangedRanges((a,s,o,l)=>{let c=0,u=r?e.length:n,f=0,d=r?n:e.length;a>Eh&&([c,f]=FM(t,a-Eh,r,!0)),s=c?i[i.length-1]={fromA:p.fromA,fromB:p.fromB,toA:u,toB:d,diffA:p.diffA+g,diffB:p.diffB+v}:i.push({fromA:c,toA:u,fromB:f,toB:d,diffA:g,diffB:v})}),i}function DM(t,e,r,n,i){if(!t.length)return e;let a=[];for(let s=0,o=0,l=0,c=0;;s++){let u=s==t.length?null:t[s],f=u?u.fromA+o:r.length,d=u?u.fromB+l:n.length;for(;cf||v.toB+l>d)break;a.push(v.offset(o,l)),c++}if(!u)break;let h=u.toA+o+u.diffA,p=u.toB+l+u.diffB,g=tO(r.sliceString(f,h),n.sliceString(d,p),i);for(let v of rO(g,r,n,f,d,eO()))a.push(v);for(o+=u.diffA,l+=u.diffB;ch&&v.fromB+l>p)break;c++}}return a}var XU={scanLimit:500},nO=Ie.ViewPlugin.fromClass(class{constructor(t){({deco:this.deco,gutter:this.gutter}=NM(t))}update(t){(t.docChanged||t.viewportChanged||KU(t.startState,t.state)||ZU(t.startState,t.state))&&({deco:this.deco,gutter:this.gutter}=NM(t.view))}},{decorations:t=>t.deco}),Ah=ke.Prec.low((0,Ie.gutter)({class:"cm-changeGutter",markers:t=>{var e;return((e=t.plugin(nO))===null||e===void 0?void 0:e.gutter)||ke.RangeSet.empty}}));function KU(t,e){return t.field(Zo,!1)!=e.field(Zo,!1)}function ZU(t,e){return t.facet(Jn)!=e.facet(Jn)}var LM=Ie.Decoration.line({class:"cm-changedLine"}),JU=Ie.Decoration.mark({class:"cm-changedText"}),QU=Ie.Decoration.mark({tagName:"ins",class:"cm-insertedLine"}),eG=Ie.Decoration.mark({tagName:"del",class:"cm-deletedLine"}),jM=new class extends Ie.GutterMarker{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function tG(t,e,r,n,i,a){let s=r?t.fromA:t.fromB,o=r?t.toA:t.toB,l=0;if(s!=o){i.add(s,s,LM),i.add(s,o,r?eG:QU),a&&a.add(s,s,jM);for(let c=e.iterRange(s,o-1),u=s;!c.next().done;){if(c.lineBreak){u++,i.add(u,u,LM),a&&a.add(u,u,jM);continue}let f=u+c.value.length;if(n)for(;l=u)break;(s?f.toA:f.toB)>c&&(!a||!a(t.state,f,o,l))&&tG(f,t.state.doc,s,n,o,l)}return{deco:o.finish(),gutter:l&&l.finish()}}var Yo=class extends Ie.WidgetType{constructor(e){super(),this.height=e}eq(e){return this.height==e.height}toDOM(){let e=document.createElement("div");return e.className="cm-mergeSpacer",e.style.height=this.height+"px",e}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Ph=ke.StateEffect.define({map:(t,e)=>t.map(e)}),Kc=ke.StateField.define({create:()=>Ie.Decoration.none,update:(t,e)=>{for(let r of e.effects)if(r.is(Ph))return r.value;return t.map(e.changes)},provide:t=>Ie.EditorView.decorations.from(t)}),kh=.01;function BM(t,e){if(t.size!=e.size)return!1;let r=t.iter(),n=e.iter();for(;r.value;){if(r.from!=n.from||Math.abs(r.value.spec.widget.height-n.value.spec.widget.height)>1)return!1;r.next(),n.next()}return!0}function rG(t,e,r){let n=new ke.RangeSetBuilder,i=new ke.RangeSetBuilder,a=t.state.field(Kc).iter(),s=e.state.field(Kc).iter(),o=0,l=0,c=0,u=0,f=t.viewport,d=e.viewport;for(let v=0;;v++){let y=vkh&&(u+=k,i.add(l,l,Ie.Decoration.widget({widget:new Yo(k),block:!0,side:-1})))}if(b>o+1e3&&of.from&&ld.from){let S=Math.min(f.from-o,d.from-l);o+=S,l+=S,v--}else if(y)o=y.toA,l=y.toB;else break;for(;a.value&&a.fromkh&&i.add(e.state.doc.length,e.state.doc.length,Ie.Decoration.widget({widget:new Yo(h),block:!0,side:1}));let p=n.finish(),g=i.finish();BM(p,t.state.field(Kc))||t.dispatch({effects:Ph.of(p)}),BM(g,e.state.field(Kc))||e.dispatch({effects:Ph.of(g)})}var i1=ke.StateEffect.define({map:(t,e)=>e.mapPos(t)}),a1=class extends Ie.WidgetType{constructor(e){super(),this.lines=e}eq(e){return this.lines==e.lines}toDOM(e){let r=document.createElement("div");return r.className="cm-collapsedLines",r.textContent=e.state.phrase("$ unchanged lines",this.lines),r.addEventListener("click",n=>{let i=e.posAtDOM(n.target);e.dispatch({effects:i1.of(i)});let{side:a,sibling:s}=e.state.facet(Jn);s&&s().dispatch({effects:i1.of(nG(i,e.state.field(Zo),a=="a"))})}),r}ignoreEvent(e){return e instanceof MouseEvent}get estimatedHeight(){return 27}get type(){return"collapsed-unchanged-code"}};function nG(t,e,r){let n=0,i=0;for(let a=0;;a++){let s=a=t)return i+(t-n);[n,i]=r?[s.toA,s.toB]:[s.toB,s.toA]}}var iG=ke.StateField.define({create(t){return Ie.Decoration.none},update(t,e){t=t.map(e.changes);for(let r of e.effects)r.is(i1)&&(t=t.update({filter:n=>n!=r.value}));return t},provide:t=>Ie.EditorView.decorations.from(t)});function HM({margin:t=3,minSize:e=4}){return iG.init(r=>aG(r,t,e))}function aG(t,e,r){let n=new ke.RangeSetBuilder,i=t.facet(Jn).side=="a",a=t.field(Zo),s=1;for(let o=0;;o++){let l=o=r&&n.add(t.doc.line(c).from,t.doc.line(u).to,Ie.Decoration.replace({widget:new a1(f),block:!0})),!l)break;s=t.doc.lineAt(Math.min(t.doc.length,i?l.toA:l.toB)).number}return n.finish()}var sG=Ie.EditorView.styleModule.of(new Sh({".cm-mergeView":{overflowY:"auto"},".cm-mergeViewEditors":{display:"flex",alignItems:"stretch"},".cm-mergeViewEditor":{flexGrow:1,flexBasis:0,overflow:"hidden"},".cm-merge-revert":{width:"1.6em",flexGrow:0,flexShrink:0,position:"relative"},".cm-merge-revert button":{position:"absolute",display:"block",width:"100%",boxSizing:"border-box",textAlign:"center",background:"none",border:"none",font:"inherit",cursor:"pointer"}})),oG=Ie.EditorView.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine, .cm-inlineChangedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb22aa, #22bb22aa) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff88aa, #88ff88aa) bottom/100% 2px no-repeat"},"&.cm-merge-b .cm-deletedText":{background:"#ff000033"},".cm-insertedLine, .cm-deletedLine, .cm-deletedLine del":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer","&:before":{content:'"\u299A"',marginInlineEnd:"7px"},"&:after":{content:'"\u299A"',marginInlineStart:"7px"}},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"},".cm-inlineChangedLineGutter":{background:"#75d"}}),UM=new ke.Compartment,Th=new ke.Compartment,Rh=class{constructor(e){this.revertDOM=null,this.revertToA=!1,this.revertToLeft=!1,this.measuring=-1,this.diffConf=e.diffConfig||XU;let r=[ke.Prec.low(nO),oG,sG,Kc,Ie.EditorView.updateListener.of(f=>{this.measuring<0&&(f.heightChanged||f.viewportChanged)&&!f.transactions.some(d=>d.effects.some(h=>h.is(Ph)))&&this.measure()})],n=[Jn.of({side:"a",sibling:()=>this.b,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&n.push(Ah);let i=ke.EditorState.create({doc:e.a.doc,selection:e.a.selection,extensions:[e.a.extensions||[],Ie.EditorView.editorAttributes.of({class:"cm-merge-a"}),Th.of(n),r]}),a=[Jn.of({side:"b",sibling:()=>this.a,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&a.push(Ah);let s=ke.EditorState.create({doc:e.b.doc,selection:e.b.selection,extensions:[e.b.extensions||[],Ie.EditorView.editorAttributes.of({class:"cm-merge-b"}),Th.of(a),r]});this.chunks=Xo.build(i.doc,s.doc,this.diffConf);let o=[Zo.init(()=>this.chunks),UM.of(e.collapseUnchanged?HM(e.collapseUnchanged):[])];i=i.update({effects:ke.StateEffect.appendConfig.of(o)}).state,s=s.update({effects:ke.StateEffect.appendConfig.of(o)}).state,this.dom=document.createElement("div"),this.dom.className="cm-mergeView",this.editorDOM=this.dom.appendChild(document.createElement("div")),this.editorDOM.className="cm-mergeViewEditors";let l=e.orientation||"a-b",c=document.createElement("div");c.className="cm-mergeViewEditor";let u=document.createElement("div");u.className="cm-mergeViewEditor",this.editorDOM.appendChild(l=="a-b"?c:u),this.editorDOM.appendChild(l=="a-b"?u:c),this.a=new Ie.EditorView({state:i,parent:c,root:e.root,dispatchTransactions:f=>this.dispatch(f,this.a)}),this.b=new Ie.EditorView({state:s,parent:u,root:e.root,dispatchTransactions:f=>this.dispatch(f,this.b)}),this.setupRevertControls(!!e.revertControls,e.revertControls=="b-to-a",e.renderRevertControl),e.parent&&e.parent.appendChild(this.dom),this.scheduleMeasure()}dispatch(e,r){if(e.some(n=>n.docChanged)){let n=e[e.length-1],i=e.reduce((s,o)=>s.compose(o.changes),ke.ChangeSet.empty(e[0].startState.doc.length));this.chunks=r==this.a?Xo.updateA(this.chunks,n.newDoc,this.b.state.doc,i,this.diffConf):Xo.updateB(this.chunks,this.a.state.doc,n.newDoc,i,this.diffConf),r.update([...e,n.state.update({effects:n1.of(this.chunks)})]);let a=r==this.a?this.b:this.a;a.update([a.state.update({effects:n1.of(this.chunks)})]),this.scheduleMeasure()}else r.update(e)}reconfigure(e){if("diffConfig"in e&&(this.diffConf=e.diffConfig),"orientation"in e){let a=e.orientation!="b-a";if(a!=(this.editorDOM.firstChild==this.a.dom.parentNode)){let s=this.a.dom.parentNode,o=this.b.dom.parentNode;s.remove(),o.remove(),this.editorDOM.insertBefore(a?s:o,this.editorDOM.firstChild),this.editorDOM.appendChild(a?o:s),this.revertToLeft=!this.revertToLeft,this.revertDOM&&(this.revertDOM.textContent="")}}if("revertControls"in e||"renderRevertControl"in e){let a=!!this.revertDOM,s=this.revertToA,o=this.renderRevert;"revertControls"in e&&(a=!!e.revertControls,s=e.revertControls=="b-to-a"),"renderRevertControl"in e&&(o=e.renderRevertControl),this.setupRevertControls(a,s,o)}let r="highlightChanges"in e,n="gutter"in e,i="collapseUnchanged"in e;if(r||n||i){let a=[],s=[];if(r||n){let o=this.a.state.facet(Jn),l=n?e.gutter!==!1:o.markGutter,c=r?e.highlightChanges!==!1:o.highlightChanges;a.push(Th.reconfigure([Jn.of({side:"a",sibling:()=>this.b,highlightChanges:c,markGutter:l}),l?Ah:[]])),s.push(Th.reconfigure([Jn.of({side:"b",sibling:()=>this.a,highlightChanges:c,markGutter:l}),l?Ah:[]]))}if(i){let o=UM.reconfigure(e.collapseUnchanged?HM(e.collapseUnchanged):[]);a.push(o),s.push(o)}this.a.dispatch({effects:a}),this.b.dispatch({effects:s})}this.scheduleMeasure()}setupRevertControls(e,r,n){this.revertToA=r,this.revertToLeft=this.revertToA==(this.editorDOM.firstChild==this.a.dom.parentNode),this.renderRevert=n,!e&&this.revertDOM?(this.revertDOM.remove(),this.revertDOM=null):e&&!this.revertDOM?(this.revertDOM=this.editorDOM.insertBefore(document.createElement("div"),this.editorDOM.firstChild.nextSibling),this.revertDOM.addEventListener("mousedown",i=>this.revertClicked(i)),this.revertDOM.className="cm-merge-revert"):this.revertDOM&&(this.revertDOM.textContent="")}scheduleMeasure(){if(this.measuring<0){let e=this.dom.ownerDocument.defaultView||window;this.measuring=e.requestAnimationFrame(()=>{this.measuring=-1,this.measure()})}}measure(){rG(this.a,this.b,this.chunks),this.revertDOM&&this.updateRevertButtons()}updateRevertButtons(){let e=this.revertDOM,r=e.firstChild,n=this.a.viewport,i=this.b.viewport;for(let a=0;an.to||s.fromB>i.to)break;if(s.fromA-1&&(this.dom.ownerDocument.defaultView||window).cancelAnimationFrame(this.measuring),this.dom.remove()}};function GM(t){let e=t.nextSibling;return t.remove(),e}var Mh=require("@codemirror/search"),Jo=require("@codemirror/state"),tn=require("@codemirror/view");var fs=class extends Qo.ItemView{constructor(r,n){super(r);this.plugin=n;this.refreshing=!1;this.ignoreNextModification=!1;this.navigation=!0,this.registerEvent(this.app.workspace.on("obsidian-git:status-changed",()=>{this.mergeView?this.updateRefEditors().catch(console.error):this.createMergeView().catch(console.error)})),this.intervalRef=window.setInterval(()=>{this.mergeView&&this.updateRefEditors().catch(console.error)},30*1e3),this.registerEvent(this.app.vault.on("modify",i=>{this.state.bRef==null&&i.path===this.state.bFile&&(this.ignoreNextModification?this.ignoreNextModification=!1:this.updateModifiableEditor().catch(console.error))})),this.registerEvent(this.app.vault.on("delete",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("create",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("rename",(i,a)=>{this.state.bRef==null&&(i.path===this.state.bFile||a===this.state.bFile)&&this.createMergeView().catch(console.error)})),this.fileSaveDebouncer=(0,Qo.debounce)(i=>{let a=this.state.bFile;a&&(this.ignoreNextModification=!0,this.plugin.app.vault.adapter.write(this.plugin.gitManager.getRelativeVaultPath(a),i).catch(s=>this.plugin.displayError(s)))},1e3,!1)}getViewType(){return ca.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();return n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3)),`Diff: ${n}`}return ca.name}getIcon(){return ca.icon}async setState(r,n){this.state=r,Qo.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await super.setState(r,n),await this.createMergeView()}getState(){return this.state}onClose(){return window.clearInterval(this.intervalRef),super.onClose()}async onOpen(){return await this.createMergeView(),super.onOpen()}async gitShow(r,n){try{return await this.plugin.gitManager.show(r,n,!1)}catch(i){if(i instanceof wr&&(i.message.includes("does not exist")||i.message.includes("unknown revision or path")||i.message.includes("exists on disk, but not in")||i.message.includes("fatal: bad object")))return i.message.includes("fatal: bad object")&&this.plugin.displayError(i.message),"";throw i}}async bShouldBeEditable(){if(this.state.bRef!=null)return!1;let r=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);return await this.app.vault.adapter.exists(r)}async updateModifiableEditor(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.b;this.refreshing=!0;let n=await this.app.vault.adapter.read(this.state.bFile);if(n!=r.state.doc.toString()){let i=r.state.update({changes:{from:0,to:r.state.doc.length,insert:n},annotations:[Jo.Transaction.remote.of(!0)]});r.dispatch(i)}this.refreshing=!1}async updateRefEditors(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.a,n=this.mergeView.b;this.refreshing=!0;let i=await this.gitShow(this.state.aRef,this.state.aFile),a;if(this.state.bRef!=null&&(a=await this.gitShow(this.state.bRef,this.state.bFile)),i!=r.state.doc.toString()){let s=r.state.update({changes:{from:0,to:r.state.doc.length,insert:i}});r.dispatch(s)}if(a!=null&&a!=n.state.doc.toString()){let s=n.state.update({changes:{from:0,to:n.state.doc.length,insert:a}});n.dispatch(s)}this.refreshing=!1}async createMergeView(){var r,n,i;if((r=this.state)!=null&&r.aFile&&((n=this.state)!=null&&n.bFile)&&!this.refreshing&&this.plugin.gitManager){this.refreshing=!0,(i=this.mergeView)==null||i.destroy();let a=this.containerEl.children[1];a.empty(),this.contentEl.addClass("git-split-diff-view"),this.bIsEditable=await this.bShouldBeEditable();let s=await this.gitShow(this.state.aRef,this.state.aFile),o;if(this.state.bRef!=null)o=await this.gitShow(this.state.bRef,this.state.bFile);else{let p=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);await this.app.vault.adapter.exists(p)?o=await this.app.vault.adapter.read(p):o=""}let l=[(0,tn.lineNumbers)(),(0,Mh.highlightSelectionMatches)(),(0,tn.drawSelection)(),tn.keymap.of([...el.standardKeymap,el.indentWithTab]),(0,el.history)(),(0,Mh.search)(),tn.EditorView.lineWrapping],c=this,u=tn.ViewPlugin.define(p=>({update(g){if(g.docChanged&&!g.transactions.some(v=>v.annotation(Jo.Transaction.remote))){let v=p.state.doc.toString();c.fileSaveDebouncer(v)}}})),f={doc:s,extensions:[...l,tn.EditorView.editable.of(!1),Jo.EditorState.readOnly.of(!0)]},d=[...l];this.bIsEditable?d.push(u):d.push(tn.EditorView.editable.of(!1),Jo.EditorState.readOnly.of(!0));let h={doc:o,extensions:d};a.addClasses(["cm-s-obsidian","mod-cm6","markdown-source-view","cm-content"]),this.mergeView=new Rh({b:h,a:f,collapseUnchanged:{minSize:6,margin:4},diffConfig:{scanLimit:this.bIsEditable?1e3:1e4},parent:a}),this.refreshing=!1}}};m();var C5=require("obsidian");m();m();m();var iO="5";var aO,sO,oO;typeof window!="undefined"&&((oO=(sO=(aO=window.__svelte)!=null?aO:window.__svelte={}).v)!=null?oO:sO.v=new Set).add(iO);m();m();m();var tl="[",ya="[!",ds="]",Ci={};var qe=Symbol(),rn=Symbol("filename"),lO=Symbol("hmr"),cO="http://www.w3.org/1999/xhtml";m();m();m();m();var Oh=!0;m();var D=!1;m();var nn=Array.isArray,uO=Array.prototype.indexOf,Zc=Array.from,c1=Object.keys,qt=Object.defineProperty,_r=Object.getOwnPropertyDescriptor,u1=Object.getOwnPropertyDescriptors,f1=Object.prototype,fO=Array.prototype,rl=Object.getPrototypeOf,d1=Object.isExtensible;function h1(t){return typeof t=="function"}var ir=()=>{};function Jc(t){for(var e=0;e{t=n,e=i});return{promise:r,resolve:t,reject:e}}m();m();var xr=Symbol("$state"),Qc=Symbol("legacy props"),hO=Symbol(""),Ih=Symbol("proxy path"),nl=new class extends Error{constructor(){super(...arguments);vt(this,"name","StaleReactionError");vt(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var eu=3,an=8;m();m();function pO(){if(D){let t=new Error("await_outside_boundary\nCannot await outside a `` with a `pending` snippet\nhttps://svelte.dev/e/await_outside_boundary");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/await_outside_boundary")}function tu(t){if(D){let e=new Error(`lifecycle_outside_component -\`${t}(...)\` can only be used during component initialisation -https://svelte.dev/e/lifecycle_outside_component`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function mO(){if(D){let t=new Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/async_derived_orphan")}function p1(){if(D){let t=new Error("bind_invalid_checkbox_value\nUsing `bind:value` together with a checkbox input is not allowed. Use `bind:checked` instead\nhttps://svelte.dev/e/bind_invalid_checkbox_value");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/bind_invalid_checkbox_value")}function gO(){if(D){let t=new Error(`derived_references_self -A derived value cannot reference itself recursively -https://svelte.dev/e/derived_references_self`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/derived_references_self")}function vO(t){if(D){let e=new Error(`effect_in_teardown -\`${t}\` cannot be used inside an effect cleanup function -https://svelte.dev/e/effect_in_teardown`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_in_teardown")}function yO(){if(D){let t=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function wO(t){if(D){let e=new Error(`effect_orphan -\`${t}\` can only be used inside an effect (e.g. during component initialisation) -https://svelte.dev/e/effect_orphan`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_orphan")}function bO(){if(D){let t=new Error(`effect_update_depth_exceeded -Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state -https://svelte.dev/e/effect_update_depth_exceeded`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function _O(){if(D){let t=new Error("flush_sync_in_effect\nCannot use `flushSync` inside an effect\nhttps://svelte.dev/e/flush_sync_in_effect");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/flush_sync_in_effect")}function xO(){if(D){let t=new Error(`hydration_failed -Failed to hydrate the application -https://svelte.dev/e/hydration_failed`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/hydration_failed")}function SO(t){if(D){let e=new Error(`props_invalid_value -Cannot do \`bind:${t}={undefined}\` when \`${t}\` has a fallback value -https://svelte.dev/e/props_invalid_value`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/props_invalid_value")}function EO(t){if(D){let e=new Error(`rune_outside_svelte -The \`${t}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files -https://svelte.dev/e/rune_outside_svelte`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/rune_outside_svelte")}function AO(){if(D){let t=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function kO(){if(D){let t=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_prototype_fixed")}function TO(){if(D){let t=new Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_unsafe_mutation")}m();m();m();var hs="font-weight: bold",ps="font-weight: normal";function CO(t){D?console.warn(`%c[svelte] await_reactivity_loss -%cDetected reactivity loss when reading \`${t}\`. This happens when state is read in an async function after an earlier \`await\` -https://svelte.dev/e/await_reactivity_loss`,hs,ps):console.warn("https://svelte.dev/e/await_reactivity_loss")}function PO(t,e){D?console.warn(`%c[svelte] await_waterfall -%cAn async derived, \`${t}\` (${e}) was not read immediately after it resolved. This often indicates an unnecessary waterfall, which can slow down your app -https://svelte.dev/e/await_waterfall`,hs,ps):console.warn("https://svelte.dev/e/await_waterfall")}function RO(t,e,r){D?console.warn(`%c[svelte] hydration_attribute_changed -%cThe \`${t}\` attribute on \`${e}\` changed its value between server and client renders. The client value, \`${r}\`, will be ignored in favour of the server value -https://svelte.dev/e/hydration_attribute_changed`,hs,ps):console.warn("https://svelte.dev/e/hydration_attribute_changed")}function ms(t){D?console.warn(`%c[svelte] hydration_mismatch -%c${t?`Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${t}`:"Hydration failed because the initial UI does not match what was rendered on the server"} -https://svelte.dev/e/hydration_mismatch`,hs,ps):console.warn("https://svelte.dev/e/hydration_mismatch")}function MO(){D?console.warn(`%c[svelte] lifecycle_double_unmount -%cTried to unmount a component that was not mounted -https://svelte.dev/e/lifecycle_double_unmount`,hs,ps):console.warn("https://svelte.dev/e/lifecycle_double_unmount")}function Fh(t){D?console.warn(`%c[svelte] state_proxy_equality_mismatch -%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${t}\` will produce unexpected results -https://svelte.dev/e/state_proxy_equality_mismatch`,hs,ps):console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function OO(t){D?console.warn(`%c[svelte] transition_slide_display -%cThe \`slide\` transition does not work correctly for elements with \`display: ${t}\` -https://svelte.dev/e/transition_slide_display`,hs,ps):console.warn("https://svelte.dev/e/transition_slide_display")}var se=!1;function Yt(t){se=t}var ge;function et(t){if(t===null)throw ms(),Ci;return ge=t}function Xt(){return et(jt(ge))}function H(t){if(se){if(jt(ge)!==null)throw ms(),Ci;ge=t}}function il(t=1){if(se){for(var e=t,r=ge;e--;)r=jt(r);ge=r}}function gs(){for(var t=0,e=ge;;){if(e.nodeType===an){var r=e.data;if(r===ds){if(t===0)return e;t-=1}else(r===tl||r===ya)&&(t+=1)}var n=jt(e);e.remove(),e=n}}function $h(t){if(!t||t.nodeType!==an)throw ms(),Ci;return t.data}m();m();m();m();function Dh(t){return t===this.v}function Lh(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function jh(t){return!Lh(t,this.v)}m();var _n=!1,Pi=!1,Qn=!1;m();m();m();var ru=null;function ei(t){let e=Error(),r=e.stack;if(!r)return null;let n=r.split(` -`),i=[` -`];for(let a=0;a"}`,a=e.ctx;a!==null;)i+=` -${n}in ${(o=a.function)==null?void 0:o[rn].split("/").pop()}`,a=a.p;return{message:t.message+` -${i} -`,stack:(l=t.stack)==null?void 0:l.split(` -`).filter(c=>!c.includes("svelte/src/internal")).join(` -`)}}}function $O(t){let e=v1.get(t);e&&(qt(t,"message",{value:e.message}),qt(t,"stack",{value:e.stack}))}m();var au=[],w1=[];function DO(){var t=au;au=[],Jc(t)}function uG(){var t=w1;w1=[],Jc(t)}function Lr(t){au.length===0&&queueMicrotask(DO),au.push(t)}function LO(){au.length>0&&DO(),w1.length>0&&uG()}m();var ane=589952;function Uh(){for(var t=ee.b;t!==null&&!t.has_pending_snippet();)t=t.parent;return t===null&&pO(),t}m();m();var Ii=null;function S1(t){Ii=t}var ou=new Set;function vs(t){var e=2050,r=oe!==null&&oe.f&2?oe:null;ee===null||r!==null&&r.f&256?e|=256:ee.f|=524288;let n={ctx:ye,deps:null,effects:null,equals:Dh,f:e,fn:t,reactions:null,rv:0,v:qe,wv:0,parent:r!=null?r:ee,ac:null};return D&&Qn&&(n.created=ei("CreatedAt")),n}function E1(t,e){let r=ee;r===null&&mO();var n=r.b,i=void 0,a=jr(qe),s=null,o=!oe;return jO(()=>{var h;D&&(Ii=ee);try{var l=t()}catch(p){l=Promise.reject(p)}D&&(Ii=null);var c=()=>l;i=(h=s==null?void 0:s.then(c,c))!=null?h:Promise.resolve(l),s=i;var u=xe,f=n.pending;o&&(n.update_pending_count(1),f||u.increment());let d=(p,g=void 0)=>{s=null,Ii=null,f||u.activate(),g?g!==nl&&(a.f|=8388608,ri(a,g)):(a.f&8388608&&(a.f^=8388608),ri(a,p),D&&e!==void 0&&(ou.add(a),setTimeout(()=>{ou.has(a)&&(PO(a.label,e),ou.delete(a))}))),o&&(n.update_pending_count(-1),f||u.decrement()),Vh()};if(i.then(d,p=>d(null,p||"unknown")),u)return()=>{queueMicrotask(()=>u.neuter())}}),D&&(a.f|=4194304),new Promise(l=>{function c(u){function f(){u===i?l(a):c(i)}u.then(f,f)}c(i)})}function Ct(t){let e=vs(t);return qh(e),e}function ys(t){let e=vs(t);return e.equals=jh,e}function Gh(t){var e=t.effects;if(e!==null){t.effects=null;for(var r=0;rE1(l))).then(l=>{i==null||i.activate(),s();try{r([...t.map(n),...l])}catch(c){a.f&16384||al(c,a)}i==null||i.deactivate(),Vh()}).catch(l=>{o.error(l)})}function dG(){var t=ee,e=oe,r=ye;return function(){Nt(t),kt(e),ba(r),D&&S1(null)}}function Vh(){Nt(null),kt(null),ba(null),D&&S1(null)}var uu=new Set,xe=null,fu=null,_a=null,b1=new Set,Kh=[];function BO(){let t=Kh.shift();Kh.length>0&&queueMicrotask(BO),t()}var _s=[],Qh=null,k1=!1,Yh=!1,ol,ll,xa,du,hu,bs,cl,Sa,Ea,ul,pu,mu,An,HO,Xh,T1,Zh=class Zh{constructor(){yt(this,An);vt(this,"current",new Map);yt(this,ol,new Map);yt(this,ll,new Set);yt(this,xa,0);yt(this,du,null);yt(this,hu,!1);yt(this,bs,[]);yt(this,cl,[]);yt(this,Sa,[]);yt(this,Ea,[]);yt(this,ul,[]);yt(this,pu,[]);yt(this,mu,[]);vt(this,"skipped_effects",new Set)}process(e){var a;_s=[],fu=null;var r=null;if(uu.size>1){r=new Map,_a=new Map;for(let[s,o]of this.current)r.set(s,{v:s.v,wv:s.wv}),s.v=o;for(let s of uu)if(s!==this)for(let[o,l]of ue(s,ol))r.has(o)||(r.set(o,{v:o.v,wv:o.wv}),o.v=l)}for(let s of e)di(this,An,HO).call(this,s);if(ue(this,bs).length===0&&ue(this,xa)===0){di(this,An,T1).call(this);var n=ue(this,Sa),i=ue(this,Ea);It(this,Sa,[]),It(this,Ea,[]),It(this,ul,[]),fu=xe,xe=null,NO(n),NO(i),xe===null?xe=this:uu.delete(this),(a=ue(this,du))==null||a.resolve()}else di(this,An,Xh).call(this,ue(this,Sa)),di(this,An,Xh).call(this,ue(this,Ea)),di(this,An,Xh).call(this,ue(this,ul));if(r){for(let[s,{v:o,wv:l}]of r)s.wv<=l&&(s.v=o);_a=null}for(let s of ue(this,bs))$i(s);for(let s of ue(this,cl))$i(s);It(this,bs,[]),It(this,cl,[])}capture(e,r){ue(this,ol).has(e)||ue(this,ol).set(e,r),this.current.set(e,e.v)}activate(){xe=this}deactivate(){xe=null,fu=null;for(let e of b1)if(b1.delete(e),e(),xe!==null)break}neuter(){It(this,hu,!0)}flush(){_s.length>0?C1():di(this,An,T1).call(this),xe===this&&(ue(this,xa)===0&&uu.delete(this),this.deactivate())}increment(){It(this,xa,ue(this,xa)+1)}decrement(){if(It(this,xa,ue(this,xa)-1),ue(this,xa)===0){for(let e of ue(this,pu))mt(e,2048),ii(e);for(let e of ue(this,mu))mt(e,4096),ii(e);It(this,Sa,[]),It(this,Ea,[]),this.flush()}else this.deactivate()}add_callback(e){ue(this,ll).add(e)}settled(){var e;return((e=ue(this,du))!=null?e:It(this,du,dO())).promise}static ensure(){if(xe===null){let e=xe=new Zh;uu.add(xe),Yh||Zh.enqueue(()=>{xe===e&&e.flush()})}return xe}static enqueue(e){Kh.length===0&&queueMicrotask(BO),Kh.unshift(e)}};ol=new WeakMap,ll=new WeakMap,xa=new WeakMap,du=new WeakMap,hu=new WeakMap,bs=new WeakMap,cl=new WeakMap,Sa=new WeakMap,Ea=new WeakMap,ul=new WeakMap,pu=new WeakMap,mu=new WeakMap,An=new WeakSet,HO=function(e){var u;e.f^=1024;for(var r=e.first;r!==null;){var n=r.f,i=(n&96)!==0,a=i&&(n&1024)!==0,s=a||(n&8192)!==0||this.skipped_effects.has(r);if(!s&&r.fn!==null){if(i)r.f^=1024;else if(!(n&1024))if(n&4)ue(this,Ea).push(r);else if(_n&&n&8)ue(this,Sa).push(r);else if(n&4194304){var o=(u=r.b)!=null&&u.pending?ue(this,cl):ue(this,bs);o.push(r)}else Aa(r)&&(r.f&16&&ue(this,ul).push(r),$i(r));var l=r.first;if(l!==null){r=l;continue}}var c=r.parent;for(r=r.next;r===null&&c!==null;)r=c.next,c=c.parent}},Xh=function(e){for(let r of e)(r.f&2048?ue(this,pu):ue(this,mu)).push(r),mt(r,1024);e.length=0},T1=function(){if(!ue(this,hu))for(let e of ue(this,ll))e();ue(this,ll).clear()};var ti=Zh;function fl(t){_n&&ee!==null&&_O();var e=Yh;Yh=!0;try{var r;for(t&&(C1(),r=t());;){if(LO(),_s.length===0&&(xe==null||xe.flush(),_s.length===0))return Qh=null,r;C1()}}finally{Yh=e}}function C1(){var a;var t=xs;k1=!0;try{var e=0;for(P1(!0);_s.length>0;){var r=ti.ensure();if(e++>1e3){if(D){var n=new Map;for(let s of r.current.keys())for(let[o,l]of(a=s.updated)!=null?a:[]){var i=n.get(o);i||(i={error:l.error,count:0},n.set(o,i)),i.count+=l.count}for(let s of n.values())console.error(s.error)}hG()}r.process(_s),Di.clear()}}finally{k1=!1,P1(t),Qh=null}}function hG(){try{bO()}catch(t){D&&qt(t,"stack",{value:""}),al(t,Qh)}}function NO(t){var e=t.length;if(e!==0){for(var r=0;ri&&n.f&1048576)break}}for(;r0&&!O1&&I1()}return e}function I1(){O1=!1;let t=Array.from(ws);for(let e of t)e.f&1024&&mt(e,4096),Aa(e)&&$i(e);ws.clear()}function su(t){ie(t,t.v+1)}function GO(t,e){var r=t.reactions;if(r!==null)for(var n=on(),i=r.length,a=0;a{if(ka===s)return u();var f=oe,d=ka;kt(null),F1(s);var h=u();return kt(f),F1(d),h};n&&(r.set("length",Pe(t.length,a)),D&&(t=gG(t)));var l="";function c(u){l=u,sn(i,`${l} version`);for(let[f,d]of r)sn(d,Es(l,f))}return new Proxy(t,{defineProperty(u,f,d){(!("value"in d)||d.configurable===!1||d.enumerable===!1||d.writable===!1)&&AO();var h=r.get(f);return h===void 0?h=o(()=>{var p=Pe(d.value,a);return r.set(f,p),D&&typeof f=="string"&&sn(p,Es(l,f)),p}):ie(h,d.value,!0),!0},deleteProperty(u,f){var d=r.get(f);if(d===void 0){if(f in u){let h=o(()=>Pe(qe,a));r.set(f,h),su(i),D&&sn(h,Es(l,f))}}else ie(d,qe),su(i);return!0},get(u,f,d){var v;if(f===xr)return t;if(D&&f===Ih)return c;var h=r.get(f),p=f in u;if(h===void 0&&(!p||(v=_r(u,f))!=null&&v.writable)&&(h=o(()=>{var y=Ne(p?u[f]:qe),b=Pe(y,a);return D&&sn(b,Es(l,f)),b}),r.set(f,h)),h!==void 0){var g=R(h);return g===qe?void 0:g}return Reflect.get(u,f,d)},getOwnPropertyDescriptor(u,f){var d=Reflect.getOwnPropertyDescriptor(u,f);if(d&&"value"in d){var h=r.get(f);h&&(d.value=R(h))}else if(d===void 0){var p=r.get(f),g=p==null?void 0:p.v;if(p!==void 0&&g!==qe)return{enumerable:!0,configurable:!0,value:g,writable:!0}}return d},has(u,f){var g;if(f===xr)return!0;var d=r.get(f),h=d!==void 0&&d.v!==qe||Reflect.has(u,f);if(d!==void 0||ee!==null&&(!h||(g=_r(u,f))!=null&&g.writable)){d===void 0&&(d=o(()=>{var v=h?Ne(u[f]):qe,y=Pe(v,a);return D&&sn(y,Es(l,f)),y}),r.set(f,d));var p=R(d);if(p===qe)return!1}return h},set(u,f,d,h){var k;var p=r.get(f),g=f in u;if(n&&f==="length")for(var v=d;vPe(qe,a)),r.set(v+"",y),D&&sn(y,Es(l,v)))}if(p===void 0)(!g||(k=_r(u,f))!=null&&k.writable)&&(p=o(()=>Pe(void 0,a)),ie(p,Ne(d)),r.set(f,p),D&&sn(p,Es(l,f)));else{g=p.v!==qe;var b=o(()=>Ne(d));ie(p,b)}var E=Reflect.getOwnPropertyDescriptor(u,f);if(E!=null&&E.set&&E.set.call(h,d),!g){if(n&&typeof f=="string"){var S=r.get("length"),A=Number(f);Number.isInteger(A)&&A>=S.v&&ie(S,A+1)}su(i)}return!0},ownKeys(u){R(i);var f=Reflect.ownKeys(u).filter(p=>{var g=r.get(p);return g===void 0||g.v!==qe});for(var[d,h]of r)h.v!==qe&&!(d in u)&&f.push(d);return f},setPrototypeOf(){kO()}})}function Es(t,e){var r;return typeof e=="symbol"?`${t}[Symbol(${(r=e.description)!=null?r:""})]`:pG.test(e)?`${t}.${e}`:/^\d+$/.test(e)?`${t}[${e}]`:`${t}['${e}']`}function ep(t){try{if(t!==null&&typeof t=="object"&&xr in t)return t[xr]}catch(e){}return t}var mG=new Set(["copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift"]);function gG(t){return new Proxy(t,{get(e,r,n){var i=Reflect.get(e,r,n);return mG.has(r)?function(...a){UO();var s=i.apply(this,a);return I1(),s}:i}})}function VO(){let t=Array.prototype,e=Array.__svelte_cleanup;e&&e();let{indexOf:r,lastIndexOf:n,includes:i}=t;t.indexOf=function(a,s){let o=r.call(this,a,s);if(o===-1){for(let l=s!=null?s:0;l{t.indexOf=r,t.lastIndexOf=n,t.includes=i}}var $1,qO,iu,WO,YO;function tp(){if($1===void 0){$1=window,qO=document,iu=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,r=Text.prototype;WO=_r(e,"firstChild").get,YO=_r(e,"nextSibling").get,d1(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),d1(r)&&(r.__t=void 0),D&&(t.__svelte_meta=null,VO())}}function Bt(t=""){return document.createTextNode(t)}function Ht(t){return WO.call(t)}function jt(t){return YO.call(t)}function G(t,e){if(!se)return Ht(t);var r=Ht(ge);if(r===null)r=ge.appendChild(Bt());else if(e&&r.nodeType!==eu){var n=Bt();return r==null||r.before(n),et(n),n}return et(r),r}function kr(t,e){var i,a;if(!se){var r=Ht(t);return r instanceof Comment&&r.data===""?jt(r):r}if(e&&((i=ge)==null?void 0:i.nodeType)!==eu){var n=Bt();return(a=ge)==null||a.before(n),et(n),n}return ge}function te(t,e=1,r=!1){let n=se?ge:t;for(var i;e--;)i=n,n=jt(n);if(!se)return n;if(r&&(n==null?void 0:n.nodeType)!==eu){var a=Bt();return n===null?i==null||i.after(a):n.before(a),et(a),a}return et(n),n}function dl(t){t.textContent=""}function hl(){if(!_n)return!1;var t=ee.f;return(t&32768)!==0}function KO(t){ee===null&&oe===null&&wO(t),oe!==null&&oe.f&256&&ee===null&&yO(),Sn&&vO(t)}function vG(t,e){var r=e.last;r===null?e.last=e.first=t:(r.next=t,t.prev=r,e.last=t)}function si(t,e,r,n=!0){var l;var i=ee;if(D)for(;i!==null&&i.f&131072;)i=i.parent;i!==null&&i.f&8192&&(t|=8192);var a={ctx:ye,deps:null,nodes_start:null,nodes_end:null,f:t|2048,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(D&&(a.component_function=xn),r)try{$i(a),a.f|=32768}catch(c){throw At(a),c}else e!==null&&ii(a);var s=r&&a.deps===null&&a.first===null&&a.nodes_start===null&&a.teardown===null&&(a.f&524288)===0;if(!s&&n&&(i!==null&&vG(a,i),oe!==null&&oe.f&2&&!(t&64))){var o=oe;((l=o.effects)!=null?l:o.effects=[]).push(a)}return a}function Hr(t){let e=si(8,null,!1);return mt(e,1024),e.teardown=t,e}function Zt(t){var i;KO("$effect"),D&&qt(t,"name",{value:"$effect"});var e=ee.f,r=!oe&&(e&32)!==0&&(e&32768)===0;if(r){var n=ye;((i=n.e)!=null?i:n.e=[]).push(t)}else return g1(t)}function g1(t){return si(1048580,t,!1)}function L1(t){ti.ensure();let e=si(64,t,!0);return()=>{At(e)}}function ZO(t){ti.ensure();let e=si(64,t,!0);return(r={})=>new Promise(n=>{r.outro?ni(e,()=>{At(e),n(void 0)}):(At(e),n(void 0))})}function Tr(t){return si(4,t,!1)}function jO(t){return si(4718592,t,!0)}function Kt(t,e=0){return si(8|e,t,!0)}function Fe(t,e=[],r=[]){Wh(e,r,n=>{si(8,()=>t(...n.map(R)),!0)})}function Sr(t,e=0){var r=si(16|e,t,!0);return D&&(r.dev_stack=Mi),r}function Et(t,e=!0){return si(32,t,!0,e)}function j1(t){var e=t.teardown;if(e!==null){let r=Sn,n=oe;D1(!0),kt(null);try{e.call(null)}finally{D1(r),kt(n)}}}function N1(t,e=!1){var i;var r=t.first;for(t.first=t.last=null;r!==null;){(i=r.ac)==null||i.abort(nl);var n=r.next;r.f&64?r.parent=null:At(r,e),r=n}}function JO(t){for(var e=t.first;e!==null;){var r=e.next;e.f&32||At(e),e=r}}function At(t,e=!0){var r=!1;(e||t.f&262144)&&t.nodes_start!==null&&t.nodes_end!==null&&(QO(t.nodes_start,t.nodes_end),r=!0),N1(t,e&&!r),yu(t,0),mt(t,16384);var n=t.transitions;if(n!==null)for(let a of n)a.stop();j1(t);var i=t.parent;i!==null&&i.first!==null&&M1(t),D&&(t.component_function=null),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes_start=t.nodes_end=t.ac=null}function QO(t,e){for(;t!==null;){var r=t===e?null:jt(t);t.remove(),t=r}}function M1(t){var e=t.parent,r=t.prev,n=t.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),e!==null&&(e.first===t&&(e.first=n),e.last===t&&(e.last=r))}function ni(t,e){var r=[];rp(t,r,!0),B1(r,()=>{At(t),e&&e()})}function B1(t,e){var r=t.length;if(r>0){var n=()=>--r||e();for(var i of t)i.out(n)}else e()}function rp(t,e,r){if(!(t.f&8192)){if(t.f^=8192,t.transitions!==null)for(let s of t.transitions)(s.is_global||r)&&e.push(s);for(var n=t.first;n!==null;){var i=n.next,a=(n.f&65536)!==0||(n.f&32)!==0;rp(n,e,a?r:!1),n=i}}}function As(t){e5(t,!0)}function e5(t,e){if(t.f&8192){t.f^=8192,t.f&1024||(mt(t,2048),ii(t));for(var r=t.first;r!==null;){var n=r.next,i=(r.f&65536)!==0||(r.f&32)!==0;e5(r,i?e:!1),r=n}if(t.transitions!==null)for(let a of t.transitions)(a.is_global||e)&&a.in()}}m();var t5=null;var xs=!1;function P1(t){xs=t}var Sn=!1;function D1(t){Sn=t}var oe=null,Er=!1;function kt(t){oe=t}var ee=null;function Nt(t){ee=t}var Ar=null;function qh(t){oe!==null&&(!_n||oe.f&2)&&(Ar===null?Ar=[t]:Ar.push(t))}var or=null,Ur=0,Br=null;function zO(t){Br=t}var r5=1,wu=0,ka=wu;function F1(t){ka=t}var Fi=!1;function cu(){return++r5}function Aa(t){var f,d;var e=t.f;if(e&2048)return!0;if(e&4096){var r=t.deps,n=(e&256)!==0;if(r!==null){var i,a,s=(e&512)!==0,o=n&&ee!==null&&!Fi,l=r.length;if((s||o)&&(ee===null||!(ee.f&16384))){var c=t,u=c.parent;for(i=0;it.wv)return!0}(!n||ee!==null&&!Fi)&&mt(t,1024)}return!1}function n5(t,e,r=!0){var n=t.reactions;if(n!==null&&!(!_n&&(Ar!=null&&Ar.includes(t))))for(var i=0;i0)for(d.length=Ur+or.length,h=0;h{Promise.resolve().then(()=>{var e;if(!t.defaultPrevented)for(let r of t.target.elements)(e=r.__on_r)==null||e.call(r)})},{capture:!0}))}function ks(t){var e=oe,r=ee;kt(null),Nt(null);try{return t()}finally{kt(e),Nt(r)}}function G1(t,e,r,n=r){t.addEventListener(e,()=>ks(r));let i=t.__on_r;i?t.__on_r=()=>{i(),n(!0)}:t.__on_r=()=>n(!0),U1()}var z1=new Set,ap=new Set;function s5(t,e,r,n={}){function i(a){if(n.capture||pl.call(e,a),!a.cancelBubble)return ks(()=>r==null?void 0:r.call(this,a))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?Lr(()=>{e.addEventListener(t,i,n)}):e.addEventListener(t,i,n),i}function Gr(t,e,r,n,i){var a={capture:n,passive:i},s=s5(t,e,r,a);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Hr(()=>{e.removeEventListener(t,s,a)})}function gt(t){for(var e=0;e{throw E});throw d}}finally{t.__root=e,delete t.currentTarget,kt(u),Nt(f)}}}m();var bG;function o5(){bG=void 0}m();m();function sp(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function oi(t,e){var r=ee;r.nodes_start===null&&(r.nodes_start=t,r.nodes_end=e)}function fe(t,e){var r=(e&1)!==0,n=(e&2)!==0,i,a=!t.startsWith("");return()=>{if(se)return oi(ge,null),ge;i===void 0&&(i=sp(a?t:""+t),r||(i=Ht(i)));var s=n||iu?document.importNode(i,!0):i.cloneNode(!0);if(r){var o=Ht(s),l=s.lastChild;oi(o,l)}else oi(s,s);return s}}function Li(){if(se)return oi(ge,null),ge;var t=document.createDocumentFragment(),e=document.createComment(""),r=Bt();return t.append(e,r),oi(e,r),t}function ae(t,e){if(se){ee.nodes_end=ge,Xt();return}t!==null&&t.before(e)}m();var EG=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected","webkitdirectory","defer","disablepictureinpicture","disableremoteplayback"];var Yae=[...EG,"formNoValidate","isMap","noModule","playsInline","readOnly","value","volume","defaultValue","defaultChecked","srcObject","noValidate","allowFullscreen","disablePictureInPicture","disableRemotePlayback"];var AG=["touchstart","touchmove"];function c5(t){return AG.includes(t)}var kG=["$state","$state.raw","$derived","$derived.by"],Xae=[...kG,"$state.snapshot","$props","$props.id","$bindable","$effect","$effect.pre","$effect.tracking","$effect.root","$effect.pending","$inspect","$inspect().with","$inspect.trace","$host"];var op=!0;function Be(t,e){var n;var r=e==null?"":typeof e=="object"?e+"":e;r!==((n=t.__t)!=null?n:t.__t=t.nodeValue)&&(t.__t=r,t.nodeValue=r+"")}function Ta(t,e){return u5(t,e)}function q1(t,e){var s;tp(),e.intro=(s=e.intro)!=null?s:!1;let r=e.target,n=se,i=ge;try{for(var a=Ht(r);a&&(a.nodeType!==an||a.data!==tl);)a=jt(a);if(!a)throw Ci;Yt(!0),et(a),Xt();let o=u5(t,{...e,anchor:a});if(ge===null||ge.nodeType!==an||ge.data!==ds)throw ms(),Ci;return Yt(!1),o}catch(o){if(o===Ci)return e.recover===!1&&xO(),tp(),dl(r),Yt(!1),Ta(t,e);throw o}finally{Yt(n),et(i),o5()}}var ml=new Map;function u5(t,{target:e,anchor:r,props:n={},events:i,context:a,intro:s=!0}){tp();var o=new Set,l=f=>{for(var d=0;d{var f=r!=null?r:e.appendChild(Bt());return Et(()=>{if(a){tt({});var d=ye;d.c=a}i&&(n.$$events=i),se&&oi(f,null),op=s,c=t(f,n)||{},op=!0,se&&(ee.nodes_end=ge),a&&rt()}),()=>{var p;for(var d of o){e.removeEventListener(d,pl);var h=ml.get(d);--h===0?(document.removeEventListener(d,pl),ml.delete(d)):ml.set(d,h)}ap.delete(l),f!==r&&((p=f.parentNode)==null||p.removeChild(f))}});return V1.set(c,u),c}var V1=new WeakMap;function ji(t,e){let r=V1.get(t);return r?(V1.delete(t),r(e)):(D&&MO(),Promise.resolve())}m();m();if(D){let t=function(e){if(!(e in globalThis)){let r;Object.defineProperty(globalThis,e,{configurable:!0,get:()=>{if(r!==void 0)return r;EO(e)},set:n=>{r=n}})}};t("$state"),t("$effect"),t("$derived"),t("$inspect"),t("$props"),t("$bindable")}function W1(t){ye===null&&tu("onMount"),Pi&&ye.l!==null?RG(ye).m.push(t):Zt(()=>{let e=Ue(t);if(typeof e=="function")return e})}function d5(t){ye===null&&tu("onDestroy"),W1(()=>()=>Ue(t))}function RG(t){var r;var e=t.l;return(r=e.u)!=null?r:e.u={a:[],b:[],m:[]}}m();m();var p5=new Map;function m5(t,e){var r=p5.get(t);r||(r=new Set,p5.set(t,r)),r.add(e)}m();m();m();m();m();m();m();m();m();function _e(t,e,r=!1){se&&Xt();var n=t,i=null,a=null,s=qe,o=r?65536:0,l=!1;let c=(h,p=!0)=>{l=!0,d(p,h)};var u=null;function f(){u!==null&&(u.lastChild.remove(),n.before(u),u=null);var h=s?i:a,p=s?a:i;h&&As(h),p&&ni(p,()=>{s?a=null:i=null})}let d=(h,p)=>{if(s===(s=h))return;let g=!1;if(se){let A=$h(n)===ya;!!s===A&&(n=gs(),et(n),Yt(!1),g=!0)}var v=hl(),y=n;if(v&&(u=document.createDocumentFragment(),u.append(y=Bt())),s?i!=null||(i=p&&Et(()=>p(y))):a!=null||(a=p&&Et(()=>p(y))),v){var b=xe,E=s?i:a,S=s?a:i;E&&b.skipped_effects.delete(E),S&&b.skipped_effects.add(S),b.add_callback(f)}else f();g&&Yt(!0)};Sr(()=>{l=!1,e(c),l||d(null,null)},o),se&&(n=ge)}m();m();m();var bu=null;function zr(t,e){return e}function $G(t,e,r){for(var n=t.items,i=[],a=e.length,s=0;s0&&i.length===0&&r!==null;if(o){var l=r.parentNode;dl(l),l.append(r),n.clear(),li(t,e[0].prev,e[a-1].next)}B1(i,()=>{for(var c=0;c{var y=r();return nn(y)?y:y==null?[]:Zc(y)}),p,g;function v(){DG(g,p,o,d,s,i,e,n,r),a!==null&&(p.length===0?u?As(u):u=Et(()=>a(s)):u!==null&&ni(u,()=>{u=null}))}Sr(()=>{var I;g!=null||(g=ee),p=R(h);var y=p.length;if(f&&y===0)return;f=y===0;let b=!1;if(se){var E=$h(s)===ya;E!==(y===0)&&(s=gs(),et(s),Yt(!1),b=!0)}if(se){for(var S=null,A,k=0;k0&&et(gs())}if(se)y===0&&a&&(u=Et(()=>a(s)));else if(hl()){var _=new Set,T=xe;for(k=0;k0){var le=s&4&&f===0?i:null;if(c){for(w=0;w{var B;if(y!==void 0)for(k of y)(B=k.a)==null||B.apply()}),t.first=r.first&&r.first.e,t.last=v&&v.e;for(var ce of n.values())At(ce.e);n.clear()}function v5(t,e,r,n){n&1&&ri(t.v,e),n&2?ri(t.i,r):t.i=r}function X1(t,e,r,n,i,a,s,o,l,c,u){var f=bu,d=(l&1)!==0,h=(l&16)===0,p=d?h?Ss(i,!1,!1):jr(i):i,g=l&2?jr(s):s;D&&d&&(p.trace=()=>{var b=typeof g=="number"?s:g.v;c()[b]});var v={i:g,v:p,k:a,a:null,e:null,prev:r,next:n};bu=v;try{if(t===null){var y=document.createDocumentFragment();y.append(t=Bt())}return v.e=Et(()=>o(t,p,g,c),se),v.e.prev=r&&r.e,v.e.next=n&&n.e,r===null?u||(e.first=v):(r.next=v,r.e.next=v.e),n!==null&&(n.prev=v,n.e.prev=v.e),v}finally{bu=f}}function Y1(t,e,r){for(var n=t.next?t.next.e.nodes_start:r,i=e?e.e.nodes_start:r,a=t.e.nodes_start;a!==null&&a!==n;){var s=jt(a);i.before(a),a=s}}function li(t,e,r){e===null?t.first=r:(e.next=r,e.e.next=r&&r.e),r!==null&&(r.prev=e,r.e.prev=e&&e.e)}m();m();m();m();m();function Tn(t,e){Tr(()=>{var i;var r=t.getRootNode(),n=r.host?r:(i=r.head)!=null?i:r.ownerDocument.head;if(!n.querySelector("#"+e.hash)){let a=document.createElement("style");a.id=e.hash,a.textContent=e.code,n.appendChild(a),D&&m5(e.hash,a)}})}m();m();m();m();m();m();var w5=[...` -\r\f\xA0\v\uFEFF`];function b5(t,e,r){var n=t==null?"":""+t;if(e&&(n=n?n+" "+e:e),r){for(var i in r)if(r[i])n=n?n+" "+i:i;else if(n.length)for(var a=i.length,s=0;(s=n.indexOf(i,s))>=0;){var o=s+a;(s===0||w5.includes(n[s-1]))&&(o===n.length||w5.includes(n[o]))?n=(s===0?"":n.substring(0,s))+n.substring(o+1):s=o}}return n===""?null:n}m();function ot(t,e,r,n,i,a){var s=t.__className;if(se||s!==r||s===void 0){var o=b5(r,n,a);(!se||o!==t.getAttribute("class"))&&(o==null?t.removeAttribute("class"):e?t.className=o:t.setAttribute("class",o)),t.__className=r}else if(a&&i!==a)for(var l in a){var c=!!a[l];(i==null||c!==!!i[l])&&t.classList.toggle(l,c)}return a}m();m();var zG=Symbol("class"),VG=Symbol("style"),qG=Symbol("is custom element"),WG=Symbol("is html");function ve(t,e,r,n){var i=YG(t);if(se&&(i[e]=t.getAttribute(e),e==="src"||e==="srcset"||e==="href"&&t.nodeName==="LINK")){n||KG(t,e,r!=null?r:"");return}i[e]!==(i[e]=r)&&(e==="loading"&&(t[hO]=r),r==null?t.removeAttribute(e):typeof r!="string"&&XG(t).includes(e)?t[e]=r:t.setAttribute(e,r))}function YG(t){var e;return(e=t.__attributes)!=null?e:t.__attributes={[qG]:t.nodeName.includes("-"),[WG]:t.namespaceURI===cO}}var _5=new Map;function XG(t){var e=_5.get(t.nodeName);if(e)return e;_5.set(t.nodeName,e=[]);for(var r,n=t,i=Element.prototype;i!==n;){r=u1(n);for(var a in r)r[a].set&&e.push(a);n=rl(n)}return e}function KG(t,e,r){var n;D&&(e==="srcset"&&ZG(t,r)||K1((n=t.getAttribute(e))!=null?n:"",r)||RO(e,t.outerHTML.replace(t.innerHTML,t.innerHTML&&"..."),String(r)))}function K1(t,e){return t===e?!0:new URL(t,document.baseURI).href===new URL(e,document.baseURI).href}function x5(t){return t.split(",").map(e=>e.trim().split(" ").filter(Boolean))}function ZG(t,e){var r=x5(t.srcset),n=x5(e);return n.length===r.length&&n.every(([i,a],s)=>a===r[s][1]&&(K1(r[s][0],i)||K1(i,r[s][0])))}m();m();m();var JG=Oh?()=>performance.now():()=>Date.now(),Cn={tick:t=>(Oh?requestAnimationFrame:ir)(t),now:()=>JG(),tasks:new Set};function S5(){let t=Cn.now();Cn.tasks.forEach(e=>{e.c(t)||(Cn.tasks.delete(e),e.f())}),Cn.tasks.size!==0&&Cn.tick(S5)}function E5(t){let e;return Cn.tasks.size===0&&Cn.tick(S5),{promise:new Promise(r=>{Cn.tasks.add(e={c:t,f:r})}),abort(){Cn.tasks.delete(e)}}}function up(t,e){ks(()=>{t.dispatchEvent(new CustomEvent(e))})}function rz(t){if(t==="float")return"cssFloat";if(t==="offset")return"cssOffset";if(t.startsWith("--"))return t;let e=t.split("-");return e.length===1?e[0]:e[0]+e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function A5(t){let e={},r=t.split(";");for(let n of r){let[i,a]=n.split(":");if(!i||a===void 0)break;let s=rz(i.trim());e[s]=a.trim()}return e}var nz=t=>t;function Pn(t,e,r,n){var E;var i=(t&1)!==0,a=(t&2)!==0,s=i&&a,o=(t&4)!==0,l=s?"both":i?"in":"out",c,u=e.inert,f=e.style.overflow,d,h;function p(){return ks(()=>{var S;return c!=null?c:c=r()(e,(S=n==null?void 0:n())!=null?S:{},{direction:l})})}var g={is_global:o,in(){var S;if(e.inert=u,!i){h==null||h.abort(),(S=h==null?void 0:h.reset)==null||S.call(h);return}a||d==null||d.abort(),up(e,"introstart"),d=Z1(e,p(),h,1,()=>{up(e,"introend"),d==null||d.abort(),d=c=void 0,e.style.overflow=f})},out(S){if(!a){S==null||S(),c=void 0;return}e.inert=!0,up(e,"outrostart"),h=Z1(e,p(),d,0,()=>{up(e,"outroend"),S==null||S()})},stop:()=>{d==null||d.abort(),h==null||h.abort()}},v=ee;if(((E=v.transitions)!=null?E:v.transitions=[]).push(g),i&&op){var y=o;if(!y){for(var b=v.parent;b&&b.f&65536;)for(;(b=b.parent)&&!(b.f&16););y=!b||(b.f&32768)!==0}y&&Tr(()=>{Ue(()=>g.in())})}}function Z1(t,e,r,n,i){var a=n===1;if(h1(e)){var s,o=!1;return Lr(()=>{if(!o){var v=e({direction:a?"in":"out"});s=Z1(t,v,r,n,i)}}),{abort:()=>{o=!0,s==null||s.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(r==null||r.deactivate(),!(e!=null&&e.duration))return i(),{abort:ir,deactivate:ir,reset:ir,t:()=>n};let{delay:l=0,css:c,tick:u,easing:f=nz}=e;var d=[];if(a&&r===void 0&&(u&&u(0,1),c)){var h=A5(c(0,1));d.push(h,h)}var p=()=>1-n,g=t.animate(d,{duration:l,fill:"forwards"});return g.onfinish=()=>{var _;g.cancel();var v=(_=r==null?void 0:r.t())!=null?_:1-n;r==null||r.abort();var y=n-v,b=e.duration*Math.abs(y),E=[];if(b>0){var S=!1;if(c)for(var A=Math.ceil(b/16.666666666666668),k=0;k<=A;k+=1){var w=v+y*f(k/A),x=A5(c(w,1-w));E.push(x),S||(S=x.overflow==="hidden")}S&&(t.style.overflow="hidden"),p=()=>{var T=g.currentTime;return v+y*f(T/b)},u&&E5(()=>{if(g.playState!=="running")return!1;var T=p();return u(T,1-T),!0})}g=t.animate(E,{duration:b,fill:"forwards"}),g.onfinish=()=>{p=()=>n,u==null||u(n,1-n),i()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=ir)},deactivate:()=>{i=ir},reset:()=>{n===0&&(u==null||u(1,0))},t:()=>p()}}m();m();function ey(t,e,r=e){var n=on(),i=new WeakSet;G1(t,"input",a=>{D&&t.type==="checkbox"&&p1();var s=a?t.defaultValue:t.value;if(s=J1(t)?Q1(s):s,r(s),xe!==null&&i.add(xe),n&&s!==(s=e())){var o=t.selectionStart,l=t.selectionEnd;t.value=s!=null?s:"",l!==null&&(t.selectionStart=o,t.selectionEnd=Math.min(l,t.value.length))}}),(se&&t.defaultValue!==t.value||Ue(e)==null&&t.value)&&(r(J1(t)?Q1(t.value):t.value),xe!==null&&i.add(xe)),Kt(()=>{var o;D&&t.type==="checkbox"&&p1();var a=e();if(t===document.activeElement){var s=(o=fu)!=null?o:xe;if(i.has(s))return}J1(t)&&a===Q1(t.value)||t.type==="date"&&!a&&!t.value||a!==t.value&&(t.value=a!=null?a:"")})}function J1(t){var e=t.type;return e==="number"||e==="range"}function Q1(t){return t===""?null:+t}m();m();m();m();m();function k5(t,e){return t===e||(t==null?void 0:t[xr])===e}function Ze(t={},e,r,n){return Tr(()=>{var i,a;return Kt(()=>{i=a,a=(n==null?void 0:n())||[],Ue(()=>{t!==r(...a)&&(e(t,...a),i&&k5(r(...i),t)&&e(null,...i))})}),()=>{Lr(()=>{a&&k5(r(...a),t)&&e(null,...a)})}}),t}m();m();m();m();m();m();m();m();m();var dp=!1,Wde=Symbol();function ry(t){var e=dp;try{return dp=!1,[t(),dp]}finally{dp=e}}function cn(t,e,r,n){var E,S;var i=!Pi||(r&2)!==0,a=(r&8)!==0,s=(r&16)!==0,o=n,l=!0,c=()=>(l&&(l=!1,o=s?Ue(n):n),o),u;if(a){var f=xr in t||Qc in t;u=(S=(E=_r(t,e))==null?void 0:E.set)!=null?S:f&&e in t?A=>t[e]=A:void 0}var d,h=!1;a?[d,h]=ry(()=>t[e]):d=t[e],d===void 0&&n!==void 0&&(d=c(),u&&(i&&SO(e),u(d)));var p;if(i?p=()=>{var A=t[e];return A===void 0?c():(l=!0,A)}:p=()=>{var A=t[e];return A!==void 0&&(o=void 0),A===void 0?o:A},i&&!(r&4))return p;if(u){var g=t.$$legacy;return function(A,k){return arguments.length>0?((!i||!k||g||h)&&u(k?p():A),A):p()}}var v=!1,y=(r&1?vs:ys)(()=>(v=!1,p()));D&&(y.label=e),a&&R(y);var b=ee;return function(A,k){if(arguments.length>0){let w=k?R(y):i&&a?Ne(A):A;return ie(y,w),v=!0,o!==void 0&&(o=w),A}return Sn&&v||b.f&16384?y.v:R(y)}}m();m();m();function T5(t){return new ny(t)}var Ni,un,ny=class{constructor(e){yt(this,Ni);yt(this,un);var a,s;var r=new Map,n=(o,l)=>{var c=Ss(l,!1,!1);return r.set(o,c),c};let i=new Proxy({...e.props||{},$$events:{}},{get(o,l){var c;return R((c=r.get(l))!=null?c:n(l,Reflect.get(o,l)))},has(o,l){var c;return l===Qc?!0:(R((c=r.get(l))!=null?c:n(l,Reflect.get(o,l))),Reflect.has(o,l))},set(o,l,c){var u;return ie((u=r.get(l))!=null?u:n(l,c),c),Reflect.set(o,l,c)}});It(this,un,(e.hydrate?q1:Ta)(e.component,{target:e.target,anchor:e.anchor,props:i,context:e.context,intro:(a=e.intro)!=null?a:!1,recover:e.recover})),!_n&&(!((s=e==null?void 0:e.props)!=null&&s.$$host)||e.sync===!1)&&fl(),It(this,Ni,i.$$events);for(let o of Object.keys(ue(this,un)))o==="$set"||o==="$destroy"||o==="$on"||qt(this,o,{get(){return ue(this,un)[o]},set(l){ue(this,un)[o]=l},enumerable:!0});ue(this,un).$set=o=>{Object.assign(i,o)},ue(this,un).$destroy=()=>{ji(ue(this,un))}}$set(e){ue(this,un).$set(e)}$on(e,r){ue(this,Ni)[e]=ue(this,Ni)[e]||[];let n=(...i)=>r.call(this,...i);return ue(this,Ni)[e].push(n),()=>{ue(this,Ni)[e]=ue(this,Ni)[e].filter(i=>i!==n)}}$destroy(){ue(this,un).$destroy()}};Ni=new WeakMap,un=new WeakMap;var vz;typeof HTMLElement=="function"&&(vz=class extends HTMLElement{constructor(e,r,n){super();vt(this,"$$ctor");vt(this,"$$s");vt(this,"$$c");vt(this,"$$cn",!1);vt(this,"$$d",{});vt(this,"$$r",!1);vt(this,"$$p_d",{});vt(this,"$$l",{});vt(this,"$$l_u",new Map);vt(this,"$$me");this.$$ctor=e,this.$$s=r,n&&this.attachShadow({mode:"open"})}addEventListener(e,r,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(r),this.$$c){let i=this.$$c.$on(e,r);this.$$l_u.set(r,i)}super.addEventListener(e,r,n)}removeEventListener(e,r,n){if(super.removeEventListener(e,r,n),this.$$c){let i=this.$$l_u.get(r);i&&(i(),this.$$l_u.delete(r))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(i){return a=>{let s=document.createElement("slot");i!=="default"&&(s.name=i),ae(a,s)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let r={},n=yz(this);for(let i of this.$$s)i in n&&(i==="default"&&!this.$$d.children?(this.$$d.children=e(i),r.default=!0):r[i]=e(i));for(let i of this.attributes){let a=this.$$g_p(i.name);a in this.$$d||(this.$$d[a]=iy(a,i.value,this.$$p_d,"toProp"))}for(let i in this.$$p_d)!(i in this.$$d)&&this[i]!==void 0&&(this.$$d[i]=this[i],delete this[i]);this.$$c=T5({component:this.$$ctor,target:this.shadowRoot||this,props:{...this.$$d,$$slots:r,$$host:this}}),this.$$me=L1(()=>{Kt(()=>{var i;this.$$r=!0;for(let a of c1(this.$$c)){if(!((i=this.$$p_d[a])!=null&&i.reflect))continue;this.$$d[a]=this.$$c[a];let s=iy(a,this.$$d[a],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[a].attribute||a):this.setAttribute(this.$$p_d[a].attribute||a,s)}this.$$r=!1})});for(let i in this.$$l)for(let a of this.$$l[i]){let s=this.$$c.$on(i,a);this.$$l_u.set(a,s)}this.$$l={}}}attributeChangedCallback(e,r,n){var i;this.$$r||(e=this.$$g_p(e),this.$$d[e]=iy(e,n,this.$$p_d,"toProp"),(i=this.$$c)==null||i.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return c1(this.$$p_d).find(r=>this.$$p_d[r].attribute===e||!this.$$p_d[r].attribute&&r.toLowerCase()===e)||e}});function iy(t,e,r,n){var a;let i=(a=r[t])==null?void 0:a.type;if(e=i==="Boolean"&&typeof e!="boolean"?e!=null:e,!n||!r[t])return e;if(n==="toAttribute")switch(i){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e==null?null:e;default:return e}else switch(i){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}function yz(t){let e={};return t.childNodes.forEach(r=>{e[r.slot||"default"]=!0}),e}m();m();function Ts(t,e,r,n){function i(a){return a instanceof r?a:new r(function(s){s(a)})}return new(r||(r=Promise))(function(a,s){function o(u){try{c(n.next(u))}catch(f){s(f)}}function l(u){try{c(n.throw(u))}catch(f){s(f)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((n=n.apply(t,e||[])).next())})}var ly=require("obsidian");m();var sy=require("obsidian");m();function wz(t){let e=t-1;return e*e*e+1}var ay=!1;function ui(t,{delay:e=0,duration:r=400,easing:n=wz,axis:i="y"}={}){let a=getComputedStyle(t);D&&!ay&&/(contents|inline|table)/.test(a.display)&&(ay=!0,Promise.resolve().then(()=>ay=!1),OO(a.display));let s=+a.opacity,o=i==="y"?"height":"width",l=parseFloat(a[o]),c=i==="y"?["top","bottom"]:["left","right"],u=c.map(y=>`${y[0].toUpperCase()}${y.slice(1)}`),f=parseFloat(a[`padding${u[0]}`]),d=parseFloat(a[`padding${u[1]}`]),h=parseFloat(a[`margin${u[0]}`]),p=parseFloat(a[`margin${u[1]}`]),g=parseFloat(a[`border${u[0]}Width`]),v=parseFloat(a[`border${u[1]}Width`]);return{delay:e,duration:r,easing:n,css:y=>`overflow: hidden;opacity: ${Math.min(y*20,1)*s};${o}: ${y*l}px;padding-${c[0]}: ${y*f}px;padding-${c[1]}: ${y*d}px;margin-${c[0]}: ${y*h}px;margin-${c[1]}: ${y*p}px;border-${c[0]}-width: ${y*g}px;border-${c[1]}-width: ${y*v}px;min-${o}: 0`}}m();var hp=require("obsidian");var bz=fe('
'),_z=fe('
'),xz={hash:"svelte-1wbh8tp",code:"main.svelte-1wbh8tp .nav-file-title:where(.svelte-1wbh8tp) {align-items:center;}"};function _u(t,e){tt(e,!0),Tn(t,xz);let r=Ne([]),n=Ct(()=>e.view.leaf.getRoot().side=="left"?"right":"left");Zt(()=>{for(let y of r)y&&(0,hp.setIcon)(y,y.getAttr("data-icon"))});function i(y){y.stopPropagation(),Io(e.diff.path)?a(y):s(y)}function a(y){var b;y.stopPropagation();let E=e.view.app.vault.getAbstractFileByPath(e.diff.vaultPath);E instanceof hp.TFile&&((b=vn(e.view.app,y))===null||b===void 0||b.openFile(E).catch(S=>e.view.plugin.displayError(S)))}function s(y){var b;e.view.plugin.tools.openDiff({event:y,aFile:(b=e.diff.fromPath)!==null&&b!==void 0?b:e.diff.path,aRef:`${e.diff.hash}^`,bFile:e.diff.path,bRef:e.diff.hash})}var o=_z();o.__click=i;var l=G(o),c=G(l),u=G(c,!0);H(c);var f=te(c,2),d=G(f),h=G(d);{var p=y=>{var b=bz();b.__click=a,Ze(b,E=>r[0]=E,()=>r==null?void 0:r[0]),Gr("auxclick",b,a),ae(y,b)};_e(h,y=>{Fo(e.diff.vaultPath,e.view.app)&&y(p)})}H(d);var g=te(d,2),v=G(g,!0);H(g),H(f),H(l),H(o),Fe(y=>{ve(l,"data-path",e.diff.vaultPath),ve(l,"data-tooltip-position",R(n)),ve(l,"aria-label",e.diff.vaultPath),Be(u,y),ve(g,"data-type",e.diff.status),Be(v,e.diff.status)},[()=>Kn(e.diff.vaultPath)]),Gr("auxclick",o,y=>{y.stopPropagation(),y.button==2?Xn(e.view.app,y,e.diff.vaultPath,e.view.leaf,"git-history"):i(y)}),ae(t,o),rt()}gt(["click"]);m();var Sz=fe("
"),Ez=(t,e,r)=>e(t,R(r)),Az=fe(''),kz=fe('
'),Tz=fe("
"),Cz={hash:"svelte-1lnl15d",code:"main.svelte-1lnl15d .nav-folder-title-content:where(.svelte-1lnl15d) {display:flex;align-items:center;}"};function xu(t,e){tt(e,!0),Tn(t,Cz);let r=cn(e,"topLevel",3,!1),n=cn(e,"closed",15),i=Ct(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function a(l,c){l.stopPropagation(),n(n()[c.path]=!n()[c.path],!0)}var s=Tz();let o;Vr(s,21,()=>e.hierarchy.children,zr,(l,c)=>{var u=Li(),f=kr(u);{var d=p=>{var g=Sz(),v=G(g);_u(v,{get diff(){return R(c).data},get view(){return e.view}}),H(g),ae(p,g)},h=p=>{var g=kz();let v;var y=G(g);y.__click=[Ez,a,c];var b=te(G(y),2);let E;var S=te(b,2),A=G(S,!0);H(S),H(y);var k=te(y,2);{var w=x=>{var _=Az(),T=G(_);xu(T,{get hierarchy(){return R(c)},get plugin(){return e.plugin},get view(){return e.view},get closed(){return n()},set closed(C){n(C)}}),H(_),Pn(3,_,()=>ui,()=>({duration:150})),ae(x,_)};_e(k,x=>{n()[R(c).path]||x(w)})}H(g),Fe((x,_)=>{v=ot(g,1,"tree-item nav-folder",null,v,x),ve(y,"data-tooltip-position",R(i)),ve(y,"aria-label",R(c).vaultPath),E=ot(b,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,E,_),Be(A,R(c).title)},[()=>({"is-collapsed":n()[R(c).path]}),()=>({"is-collapsed":n()[R(c).path]})]),ae(p,g)};_e(f,p=>{R(c).data?p(d):p(h,!1)})}ae(l,u)}),H(s),Fe(l=>o=ot(s,1,"svelte-1lnl15d",null,o,l),[()=>({topLevel:r()})]),ae(t,s),rt()}gt(["click"]);var Pz=(t,e)=>ie(e,!R(e)),Rz=fe('
'),Mz=fe('
'),Oz=fe('
'),Iz=fe(''),Fz=fe('
'),$z={hash:"svelte-45h",code:""};function oy(t,e){tt(e,!0),Tn(t,$z);let r=Ct(()=>({title:"",path:"",vaultPath:"",children:e.plugin.gitManager.getTreeStructure(e.log.diff.files)})),n=Ct(()=>e.view.leaf.getRoot().side=="left"?"right":"left"),i=Pe(!0),a=Pe(Ne({}));function s(x){let _=x.author.name;if(e.plugin.settings.authorInHistoryView=="full")return _;if(e.plugin.settings.authorInHistoryView=="initials")return _.split(" ").filter(C=>C.length>0).map(C=>C[0].toUpperCase()).join("")}var o=Fz(),l=G(o);let c;var u=G(l);u.__click=[Pz,i];var f=G(u);let d;var h=te(f,2),p=G(h);{var g=x=>{var _=Rz(),T=G(_,!0);H(_),Fe(C=>Be(T,C),[()=>e.log.refs.join(", ")]),ae(x,_)};_e(p,x=>{e.log.refs.length>0&&x(g)})}var v=te(p,2);{var y=x=>{var _=Mz(),T=G(_,!0);H(_),Fe(C=>Be(T,C),[()=>s(e.log)]),ae(x,_)};_e(v,x=>{var _;e.plugin.settings.authorInHistoryView!="hide"&&((_=e.log.author)!=null&&_.name)&&x(y)})}var b=te(v,2);{var E=x=>{var _=Oz(),T=G(_,!0);H(_),Fe(C=>Be(T,C),[()=>(0,sy.moment)(e.log.date).format(e.plugin.settings.commitDateFormat)]),ae(x,_)};_e(b,x=>{e.plugin.settings.dateInHistoryView&&x(E)})}var S=te(b,2),A=G(S,!0);H(S),H(h),H(u);var k=te(u,2);{var w=x=>{var _=Iz(),T=G(_);{var C=L=>{xu(L,{get hierarchy(){return R(r)},get plugin(){return e.plugin},get view(){return e.view},topLevel:!0,get closed(){return R(a)},set closed($){ie(a,$,!0)}})},I=L=>{var $=Li(),J=kr($);Vr(J,17,()=>e.log.diff.files,zr,(de,le)=>{_u(de,{get view(){return e.view},get diff(){return R(le)}})}),ae(L,$)};_e(T,L=>{e.showTree?L(C):L(I,!1)})}H(_),Pn(3,_,()=>ui,()=>({duration:150})),ae(x,_)};_e(k,x=>{R(i)||x(w)})}H(l),H(o),Fe((x,_,T)=>{c=ot(l,1,"tree-item nav-folder",null,c,x),ve(u,"aria-label",_),ve(u,"data-tooltip-position",R(n)),d=ot(f,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,d,T),Be(A,e.log.message)},[()=>({"is-collapsed":R(i)}),()=>{var x;return`${e.log.refs.length>0?e.log.refs.join(", ")+` -`:""}${(x=e.log.author)==null?void 0:x.name} -${(0,sy.moment)(e.log.date).format(e.plugin.settings.commitDateFormat)} -${e.log.message}`},()=>({"is-collapsed":R(i)})]),ae(t,o),rt()}gt(["click"]);function Dz(t,e){e().catch(console.error)}var Lz=(t,e,r,n)=>{ie(e,!R(e)),(0,ly.setIcon)(r[0],R(e)?"list":"folder"),n(n().settings.treeStructure=R(e),!0),n().saveSettings()},jz=fe(''),Nz=fe('
'),Bz={hash:"svelte-45h",code:""};function cy(t,e){tt(e,!0),Tn(t,Bz);let r=cn(e,"plugin",15),n=Pe(!1),i=Ne([]),a=Pe(void 0),s=Pe(Ne(r().settings.treeStructure)),o,l;Zt(()=>{l&&l.empty()}),o=e.view.app.workspace.on("obsidian-git:head-change",()=>void c().catch(console.error)),Zt(()=>{i.forEach(S=>(0,ly.setIcon)(S,S.getAttr("data-icon")))}),d5(()=>{e.view.app.workspace.offref(o)}),W1(()=>{let S=new IntersectionObserver(k=>{k[0].isIntersecting&&!R(n)&&u().catch(console.error)}),A=document.querySelector("#sentinel");return A&&S.observe(A),()=>{S.disconnect()}}),c().catch(console.error);function c(){return Ts(this,void 0,void 0,function*(){var S;if(!r().gitReady){ie(a,void 0);return}ie(n,!0);let A=r().gitManager instanceof Ce,k;((S=R(a)===null||R(a)===void 0?void 0:R(a).length)!==null&&S!==void 0?S:0)==0?k=A?50:10:k=R(a).length,ie(a,yield r().gitManager.log(void 0,!1,k),!0),ie(n,!1)})}function u(){return Ts(this,void 0,void 0,function*(){var S;if(!r().gitReady||R(a)===void 0)return;ie(n,!0);let k=r().gitManager instanceof Ce?50:10,w=yield r().gitManager.log(void 0,!1,k,(S=R(a).last())===null||S===void 0?void 0:S.hash);R(a).push(...w.slice(1)),ie(n,!1)})}var f=Nz(),d=G(f),h=G(d),p=G(h);p.__click=[Lz,s,i,r],Ze(p,S=>i[0]=S,()=>i==null?void 0:i[0]);var g=te(p,2);let v;g.__click=[Dz,c],Ze(g,S=>i[1]=S,()=>i==null?void 0:i[1]),H(h),H(d);var y=te(d,2),b=G(y);{var E=S=>{var A=jz();Vr(A,21,()=>R(a),zr,(k,w)=>{oy(k,{get view(){return e.view},get showTree(){return R(s)},get log(){return R(w)},get plugin(){return r()}})}),H(A),ae(S,A)};_e(b,S=>{R(a)&&S(E)})}il(4),H(y),H(f),Fe(S=>{ve(p,"data-icon",R(s)?"list":"folder"),v=ot(g,1,"clickable-icon nav-action-button",null,v,S)},[()=>({loading:R(n)})]),ae(t,f),rt()}gt(["click"]);var Su=class extends C5.ItemView{constructor(e,r){super(e),this.plugin=r,this.hoverPopover=null}getViewType(){return Zr.type}getDisplayText(){return Zr.name}getIcon(){return Zr.icon}onClose(){return this._view&&ji(this._view),super.onClose()}reload(){this._view&&ji(this._view),this._view=Ta(cy,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};m();var P5=require("obsidian"),pp=class extends P5.FuzzySuggestModal{constructor(r,n){super(r.app);this.branches=n;this.setPlaceholder("Select branch to checkout")}getItems(){return this.branches}getItemText(r){return r}onChooseItem(r,n){this.resolve(r)}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}};m();var $5=require("obsidian");m();var Ms=require("obsidian");m();var Au=require("obsidian");m();m();var Hz=Ot(R5()),Ca=require("obsidian");function Cs(t,e,r){let n=t.target;app.workspace.trigger("hover-link",{event:t,source:e.getViewType(),hoverParent:e,targetEl:n,linktext:r})}m();var M5=require("obsidian");var gl=class extends M5.Modal{constructor({app:r,path:n,filesToDeleteCount:i,filesToDiscardCount:a}){super(r);this.resolve=null;this.path=n,this.deleteCount=i,this.discardCount=a}openAndGetResult(){return this.open(),new Promise(r=>{this.resolve=r})}onOpen(){let r=this.deleteCount+this.discardCount,{contentEl:n,titleEl:i}=this,a="";this.path!=""&&(r>1?a=`files in "${this.path}"`:a=`"${this.path}"`),i.setText(`${this.discardCount==0?"Delete":"Discard"} ${a}`),this.deleteCount>0&&n.createEl("p").setText(`Are you sure you want to DELETE the ${Ic(this.deleteCount,"untracked file")}? They are deleted according to your Obsidian trash settting.`),this.discardCount>0&&n.createEl("p").setText(`Are you sure you want to discard ALL changes in ${Ic(this.discardCount,"tracked file")}?`);let s=n.createDiv({cls:"modal-button-container"});if(this.deleteCount>0){let l=s.createEl("button",{cls:"mod-warning",text:`${this.discardCount>0?"Discard":"Delete"} all ${Ic(r,"file")}`});l.addEventListener("click",()=>{this.resolve&&this.resolve("delete"),this.close()}),l.addEventListener("keypress",()=>{this.resolve&&this.resolve("delete"),this.close()})}if(this.discardCount>0){let l=s.createEl("button",{cls:"mod-warning",text:`Discard all ${Ic(this.discardCount,"tracked file")}`});l.addEventListener("click",()=>{this.resolve&&this.resolve("discard"),this.close()}),l.addEventListener("keypress",()=>{this.resolve&&this.resolve("discard"),this.close()})}let o=s.createEl("button",{text:"Cancel"});o.addEventListener("click",()=>(this.resolve&&this.resolve(!1),this.close())),o.addEventListener("keypress",()=>(this.resolve&&this.resolve(!1),this.close()))}onClose(){let{contentEl:r}=this;r.empty()}};function Uz(t,e){e.view.app.vault.getAbstractFileByPath(e.change.vaultPath)&&Cs(t,e.view,e.change.vaultPath)}function Gz(t,e){t.stopPropagation(),e.manager.stage(e.change.path,!1).catch(r=>e.view.plugin.displayError(r)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function zz(t,e){t.stopPropagation();let r=e.change.workingDir=="U";new gl({app:e.view.app,filesToDeleteCount:r?1:0,filesToDiscardCount:r?0:1,path:e.change.vaultPath}).openAndGetResult().then(n=>Ts(this,void 0,void 0,function*(){if(n=="delete"){let i=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);i instanceof Au.TFile?yield e.view.app.fileManager.trashFile(i):yield e.view.app.vault.adapter.remove(e.change.vaultPath)}else n=="discard"&&(yield e.manager.discard(e.change.path).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")}));e.view.app.workspace.trigger("obsidian-git:refresh")}),n=>e.view.plugin.displayError(n))}var Vz=fe('
'),qz=fe('
');function ku(t,e){tt(e,!0);let r=Ne([]),n=Ct(()=>e.view.leaf.getRoot().side=="left"?"right":"left");Zt(()=>{for(let E of r)E&&(0,Au.setIcon)(E,E.getAttr("data-icon"))});function i(E){E.stopPropagation(),Io(e.change.path)?a(E):s(E)}function a(E){var S;E.stopPropagation();let A=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);A instanceof Au.TFile&&((S=vn(e.view.app,E))===null||S===void 0||S.openFile(A).catch(k=>e.view.plugin.displayError(k)))}function s(E){E.stopPropagation(),e.view.plugin.tools.openDiff({aFile:e.change.path,aRef:"",event:E})}var o=qz();o.__mouseover=[Uz,e],o.__click=i;var l=G(o),c=G(l),u=G(c,!0);H(c);var f=te(c,2),d=G(f),h=G(d);{var p=E=>{var S=Vz();S.__click=a,Ze(S,A=>r[0]=A,()=>r==null?void 0:r[0]),Gr("auxclick",S,a),ae(E,S)};_e(h,E=>{Fo(e.change.vaultPath,e.view.app)&&E(p)})}var g=te(h,2);g.__click=[zz,e],Ze(g,E=>r[1]=E,()=>r==null?void 0:r[1]);var v=te(g,2);v.__click=[Gz,e],Ze(v,E=>r[2]=E,()=>r==null?void 0:r[2]),H(d);var y=te(d,2),b=G(y,!0);H(y),H(f),H(l),H(o),Fe(E=>{ve(l,"data-path",e.change.vaultPath),ve(l,"data-tooltip-position",R(n)),ve(l,"aria-label",e.change.vaultPath),Be(u,E),ve(y,"data-type",e.change.workingDir),Be(b,e.change.workingDir)},[()=>Kn(e.change.vaultPath)]),Gr("auxclick",o,E=>{E.stopPropagation(),E.button==2?Xn(e.view.app,E,e.change.vaultPath,e.view.leaf,"git-source-control"):i(E)}),ae(t,o),rt()}gt(["mouseover","click"]);m();var O5=require("obsidian");function Wz(t,e){e.view.app.vault.getAbstractFileByPath(e.change.vaultPath)&&Cs(t,e.view,e.change.vaultPath)}var Yz=fe('
');function Tu(t,e){tt(e,!0);let r=Ct(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function n(f){var d;f.stopPropagation();let h=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);h instanceof O5.TFile&&((d=vn(e.view.app,f))===null||d===void 0||d.openFile(h).catch(p=>e.view.plugin.displayError(p)))}var i=Yz();i.__mouseover=[Wz,e],i.__click=n;var a=G(i),s=G(a),o=G(s,!0);H(s);var l=te(s,2),c=G(l),u=G(c,!0);H(c),H(l),H(a),H(i),Fe(f=>{ve(a,"data-path",e.change.vaultPath),ve(a,"data-tooltip-position",R(r)),ve(a,"aria-label",e.change.vaultPath),Be(o,f),ve(c,"data-type",e.change.workingDir),Be(u,e.change.workingDir)},[()=>Kn(e.change.vaultPath)]),Gr("auxclick",i,f=>{f.stopPropagation(),f.button==2?Xn(e.view.app,f,e.change.vaultPath,e.view.leaf,"git-source-control"):n(f)}),ae(t,i),rt()}gt(["mouseover","click"]);m();var mp=require("obsidian");function Xz(t,e){e.view.app.vault.getFileByPath(e.change.vaultPath)&&Cs(t,e.view,e.change.vaultPath)}function Kz(t,e){t.stopPropagation(),e.manager.unstage(e.change.path,!1).catch(r=>e.view.plugin.displayError(r)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}var Zz=fe('
'),Jz=fe('
');function Cu(t,e){tt(e,!0);let r=Ne([]),n=Ct(()=>e.view.leaf.getRoot().side=="left"?"right":"left");Zt(()=>{for(let b of r)b&&(0,mp.setIcon)(b,b.getAttr("data-icon"))});function i(b){b.stopPropagation(),Io(e.change.path)?a(b):s(b)}function a(b){var E;b.stopPropagation();let S=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);S instanceof mp.TFile&&((E=vn(e.view.app,b))===null||E===void 0||E.openFile(S).catch(A=>e.view.plugin.displayError(A)))}function s(b){var E;b.stopPropagation(),e.view.plugin.tools.openDiff({aFile:(E=e.change.from)!==null&&E!==void 0?E:e.change.path,bFile:e.change.path,aRef:"HEAD",bRef:"",event:b})}var o=Jz();o.__mouseover=[Xz,e],o.__click=i;var l=G(o),c=G(l),u=G(c,!0);H(c);var f=te(c,2),d=G(f),h=G(d);{var p=b=>{var E=Zz();E.__click=a,Ze(E,S=>r[0]=S,()=>r==null?void 0:r[0]),ae(b,E)};_e(h,b=>{Fo(e.change.vaultPath,e.view.app)&&b(p)})}var g=te(h,2);g.__click=[Kz,e],Ze(g,b=>r[1]=b,()=>r==null?void 0:r[1]),H(d);var v=te(d,2),y=G(v,!0);H(v),H(f),H(l),H(o),Fe(b=>{ve(l,"data-path",e.change.vaultPath),ve(l,"data-tooltip-position",R(n)),ve(l,"aria-label",e.change.vaultPath),Be(u,b),ve(v,"data-type",e.change.index),Be(y,e.change.index)},[()=>Kn(e.change.vaultPath)]),Gr("auxclick",o,b=>{b.stopPropagation(),b.button==2?Xn(e.view.app,b,e.change.vaultPath,e.view.leaf,"git-source-control"):i(b)}),ae(t,o),rt()}gt(["mouseover","click"]);m();m();var Qz=fe(''),eV=fe("
");function Ps(t,e){tt(e,!0);var r=eV(),n=G(r);{var i=a=>{var s=Qz(),o=G(s),l=G(o),c=G(l,!0);H(l),H(o),H(s),Fe(()=>{ve(o,"aria-label","And "+(e.files.length-500)+" more files"),Be(c,"And "+(e.files.length-500)+" more files")}),ae(a,s)};_e(n,a=>{e.files.length>500&&a(i)})}H(r),ae(t,r),rt()}var rV=fe("
"),nV=(t,e,r)=>e(t,R(r)),iV=(t,e,r)=>e(t,R(r).path),aV=fe('
'),sV=(t,e,r)=>e(t,R(r)),oV=(t,e,r)=>e(t,R(r).path),lV=fe('
',1),cV=fe(''),uV=fe('
'),fV=fe("
");function Rs(t,e){tt(e,!0);var r,n;let i=cn(e,"topLevel",3,!1),a=cn(e,"closed",15);for(let g of e.hierarchy.children)((n=(r=g.children)===null||r===void 0?void 0:r.length)!==null&&n!==void 0?n:0)>100&&a(a()[g.title]=!0,!0);let s=Ct(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function o(g,v){g.stopPropagation(),e.plugin.gitManager.stageAll({dir:v}).catch(y=>e.plugin.displayError(y)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function l(g,v){g.stopPropagation(),e.plugin.gitManager.unstageAll({dir:v}).catch(y=>e.plugin.displayError(y)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function c(g,v){g.stopPropagation(),e.plugin.discardAll(v.vaultPath)}function u(g,v){g.stopPropagation(),a(a()[v.path]=!a()[v.path],!0)}var f=fV();let d;var h=G(f);Vr(h,17,()=>Fc(e.hierarchy.children,500),zr,(g,v)=>{var y=Li(),b=kr(y);{var E=A=>{var k=rV(),w=G(k);{var x=T=>{Cu(T,{get change(){return R(v).data},get manager(){return e.plugin.gitManager},get view(){return e.view}})},_=T=>{var C=Li(),I=kr(C);{var L=J=>{ku(J,{get change(){return R(v).data},get manager(){return e.plugin.gitManager},get view(){return e.view}})},$=J=>{var de=Li(),le=kr(de);{var ce=Te=>{Tu(Te,{get change(){return R(v).data},get view(){return e.view}})};_e(le,Te=>{e.fileType==2&&Te(ce)},!0)}ae(J,de)};_e(I,J=>{e.fileType==1?J(L):J($,!1)},!0)}ae(T,C)};_e(w,T=>{e.fileType==0?T(x):T(_,!1)})}H(k),ae(A,k)},S=A=>{var k=uV();k.__click=[nV,u,v];let w;var x=G(k),_=te(G(x),2);let T;var C=te(_,2),I=G(C,!0);H(C);var L=te(C,2),$=G(L),J=G($);{var de=ne=>{var N=aV();N.__click=[iV,l,v],ae(ne,N)},le=ne=>{var N=lV(),W=kr(N);W.__click=[sV,c,v];var B=te(W,2);B.__click=[oV,o,v],ae(ne,N)};_e(J,ne=>{e.fileType==0?ne(de):ne(le,!1)})}il(2),H($),H(L),H(x);var ce=te(x,2);{var Te=ne=>{var N=cV(),W=G(N);Rs(W,{get hierarchy(){return R(v)},get plugin(){return e.plugin},get view(){return e.view},get fileType(){return e.fileType},get closed(){return a()},set closed(B){a(B)}}),H(N),Pn(3,N,()=>ui,()=>({duration:150})),ae(ne,N)};_e(ce,ne=>{a()[R(v).path]||ne(Te)})}H(k),Fe((ne,N)=>{w=ot(k,1,"tree-item nav-folder",null,w,ne),ve(x,"data-tooltip-position",R(s)),ve(x,"aria-label",R(v).vaultPath),T=ot(_,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,T,N),Be(I,R(v).title)},[()=>({"is-collapsed":a()[R(v).path]}),()=>({"is-collapsed":a()[R(v).path]})]),Gr("auxclick",k,ne=>Xn(e.view.app,ne,R(v).vaultPath,e.view.leaf,"git-source-control")),ae(A,k)};_e(b,A=>{R(v).data?A(E):A(S,!1)})}ae(g,y)});var p=te(h,2);Ps(p,{get files(){return e.hierarchy.children}}),H(f),Fe(g=>d=ot(f,1,"",null,d,g),[()=>({topLevel:i()})]),ae(t,f),rt()}gt(["click"]);function dV(t,e,r,n,i,a){if(ie(e,!0),R(r)){let s=R(r).staged.length>0;n().promiseQueue.addTask(()=>n().commit({fromAuto:!1,commitMessage:R(i),onlyStaged:s}).then(()=>ie(i,n().settings.commitMessage,!0)).finally(a))}}function I5(t,e,r,n,i){t.stopPropagation(),ie(e,!0),r().promiseQueue.addTask(()=>r().gitManager.stageAll({status:R(n)}).finally(i))}function F5(t,e,r,n,i){t.stopPropagation(),ie(e,!0),r().promiseQueue.addTask(()=>r().gitManager.unstageAll({status:R(n)}).finally(i))}function hV(t,e,r,n){ie(e,!0),r().promiseQueue.addTask(()=>r().push().finally(n))}function pV(t,e,r,n){ie(e,!0),r().promiseQueue.addTask(()=>r().pullChangesFromRemote().finally(n))}function mV(t,e){t.stopPropagation(),e().discardAll()}var gV=(t,e,r,n)=>{ie(e,!R(e)),(0,Ms.setIcon)(r[6],R(e)?"list":"folder"),n().settings.treeStructure=R(e),n().saveSettings()},vV=(t,e)=>ie(e,""),yV=fe('
'),wV=(t,e)=>ie(e,!R(e)),bV=fe(" ",1),_V=fe(''),xV=(t,e)=>ie(e,!R(e)),SV=fe(" ",1),EV=fe(''),AV=(t,e)=>ie(e,!R(e)),kV=fe(" ",1),TV=fe(''),CV=fe('
'),PV=fe(''),RV=fe('
'),MV={hash:"svelte-11adhly",code:`.commit-msg-input.svelte-11adhly {width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field);}.git-commit-msg.svelte-11adhly {position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto;}main.svelte-11adhly .git-tools:where(.svelte-11adhly) .files-count:where(.svelte-11adhly) {padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center;}.nav-folder-title.svelte-11adhly {align-items:center;}.git-commit-msg-clear-button.svelte-11adhly {position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out;}.git-commit-msg-clear-button.svelte-11adhly:after {content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;mask-image:url("data:image/svg+xml,");mask-repeat:no-repeat;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat;}`};function fy(t,e){tt(e,!0),Tn(t,MV);let r=cn(e,"plugin",7),n=cn(e,"view",7),i=Pe(!1),a=Pe(void 0),s=Pe(Ne([])),o=Pe(Ne(r().settings.commitMessage)),l=Ne([]),c=Pe(void 0),u=Pe(void 0),f=Pe(void 0),d=Pe(!0),h=Pe(!0),p=Pe(!0),g=Pe(0),v=Pe(Ne({})),y=Pe(Ne({})),b=Pe(Ne({})),E=Pe(Ne(r().settings.treeStructure));n().registerEvent(n().app.workspace.on("obsidian-git:loading-status",()=>ie(i,!0))),n().registerEvent(n().app.workspace.on("obsidian-git:status-changed",()=>void A().catch(console.error))),n().plugin.cachedStatus==null?n().plugin.refresh().catch(console.error):A().catch(console.error),Zt(()=>{l.forEach(X=>(0,Ms.setIcon)(X,X.getAttr("data-icon")))}),Zt(()=>{l.forEach(X=>{var Oe,De;!X||X.id!="push"||(Ms.Platform.isMobile?(X.removeClass("button-border"),R(g)>0&&X.addClass("button-border")):((Oe=X.firstElementChild)===null||Oe===void 0||Oe.removeAttribute("color"),R(g)>0&&((De=X.firstElementChild)===null||De===void 0||De.setAttr("color","var(--text-accent)"))))})}),n().scope=new Ms.Scope(r().app.scope),n().scope.register(["Ctrl"],"Enter",X=>S());function S(){if(ie(i,!0),R(a)){let X=R(a).staged.length>0;r().promiseQueue.addTask(()=>r().commitAndSync({fromAutoBackup:!1,commitMessage:R(o),onlyStaged:X}).then(()=>{ie(o,r().settings.commitMessage,!0)}).finally(k))}}function A(){return Ts(this,void 0,void 0,function*(){if(!r().gitReady){ie(a,void 0);return}if(ie(g,yield r().gitManager.getUnpushedCommits(),!0),ie(a,r().cachedStatus,!0),ie(i,!1),r().lastPulledFiles&&r().lastPulledFiles!=R(s)&&(ie(s,r().lastPulledFiles,!0),ie(f,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(s))},!0)),R(a)){let X=(Oe,De)=>Oe.vaultPath.split("/").last().localeCompare(Kn(De.vaultPath));R(a).changed.sort(X),R(a).staged.sort(X),ie(c,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(a).changed)},!0),ie(u,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(a).staged)},!0)}else ie(c,void 0),ie(u,void 0)})}function k(){n().app.workspace.trigger("obsidian-git:refresh")}let w=Ct(()=>(R(o).match(/\n/g)||[]).length+1||1);var x=RV(),_=G(x),T=G(_),C=G(T);C.__click=S,Ze(C,X=>l[0]=X,()=>l==null?void 0:l[0]);var I=te(C,2);I.__click=[dV,i,a,r,o,k],Ze(I,X=>l[1]=X,()=>l==null?void 0:l[1]);var L=te(I,2);L.__click=[I5,i,r,a,k],Ze(L,X=>l[2]=X,()=>l==null?void 0:l[2]);var $=te(L,2);$.__click=[F5,i,r,a,k],Ze($,X=>l[3]=X,()=>l==null?void 0:l[3]);var J=te($,2);J.__click=[hV,i,r,k],Ze(J,X=>l[4]=X,()=>l==null?void 0:l[4]);var de=te(J,2);de.__click=[pV,i,r,k],Ze(de,X=>l[5]=X,()=>l==null?void 0:l[5]);var le=te(de,2);le.__click=[gV,E,l,r],Ze(le,X=>l[6]=X,()=>l==null?void 0:l[6]);var ce=te(le,2);let Te;ce.__click=k,Ze(ce,X=>l[7]=X,()=>l==null?void 0:l[7]),H(T),H(_);var ne=te(_,2),N=G(ne);H1(N);var W=te(N,2);{var B=X=>{var Oe=yV();Oe.__click=[vV,o],ve(Oe,"aria-label","Clear"),ae(X,Oe)};_e(W,X=>{R(o)&&X(B)})}H(ne);var $e=te(ne,2),lr=G($e);{var Ut=X=>{var Oe=PV(),De=G(Oe);let Pt;var Le=G(De);Le.__click=[wV,h];var U=G(Le);let Je;var j=te(U,4),Z=G(j),Se=G(Z);Se.__click=[F5,i,r,a,k],Ze(Se,Mt=>l[8]=Mt,()=>l==null?void 0:l[8]),H(Z);var We=te(Z,2),Rt=G(We,!0);H(We),H(j),H(Le);var vl=te(Le,2);{var j5=Mt=>{var Gt=_V(),Bi=G(Gt);{var Rn=Jt=>{Rs(Jt,{get hierarchy(){return R(u)},get plugin(){return r()},get view(){return n()},get fileType(){return 0},topLevel:!0,get closed(){return R(v)},set closed(fn){ie(v,fn,!0)}})},Os=Jt=>{var fn=bV(),Pa=kr(fn);Vr(Pa,17,()=>Fc(R(a).staged,500),zr,(Hi,yl)=>{Cu(Hi,{get change(){return R(yl)},get view(){return n()},get manager(){return r().gitManager}})});var fi=te(Pa,2);Ps(fi,{get files(){return R(a).staged}}),ae(Jt,fn)};_e(Bi,Jt=>{R(E)?Jt(Rn):Jt(Os,!1)})}H(Gt),Pn(3,Gt,()=>ui,()=>({duration:150})),ae(Mt,Gt)};_e(vl,Mt=>{R(h)&&Mt(j5)})}H(De);var Ru=te(De,2);let dy;var Mu=G(Ru);Mu.__click=[xV,d];var hy=G(Mu);let py;var my=te(hy,4),yp=G(my),gy=G(yp);gy.__click=[mV,r];var vy=te(gy,2);vy.__click=[I5,i,r,a,k],Ze(vy,Mt=>l[9]=Mt,()=>l==null?void 0:l[9]),H(yp);var yy=te(yp,2),N5=G(yy,!0);H(yy),H(my),H(Mu);var B5=te(Mu,2);{var H5=Mt=>{var Gt=EV(),Bi=G(Gt);{var Rn=Jt=>{Rs(Jt,{get hierarchy(){return R(c)},get plugin(){return r()},get view(){return n()},get fileType(){return 1},topLevel:!0,get closed(){return R(y)},set closed(fn){ie(y,fn,!0)}})},Os=Jt=>{var fn=SV(),Pa=kr(fn);Vr(Pa,17,()=>Fc(R(a).changed,500),zr,(Hi,yl)=>{ku(Hi,{get change(){return R(yl)},get view(){return n()},get manager(){return r().gitManager}})});var fi=te(Pa,2);Ps(fi,{get files(){return R(a).changed}}),ae(Jt,fn)};_e(Bi,Jt=>{R(E)?Jt(Rn):Jt(Os,!1)})}H(Gt),Pn(3,Gt,()=>ui,()=>({duration:150})),ae(Mt,Gt)};_e(B5,Mt=>{R(d)&&Mt(H5)})}H(Ru);var U5=te(Ru,2);{var G5=Mt=>{var Gt=CV();let Bi;var Rn=G(Gt);Rn.__click=[AV,p];var Os=te(G(Rn),4),Jt=G(Os,!0);H(Os),H(Rn);var fn=te(Rn,2);{var Pa=fi=>{var Hi=TV(),yl=G(Hi);{var z5=Is=>{Rs(Is,{get hierarchy(){return R(f)},get plugin(){return r()},get view(){return n()},get fileType(){return 2},topLevel:!0,get closed(){return R(b)},set closed(Ou){ie(b,Ou,!0)}})},V5=Is=>{var Ou=kV(),wy=kr(Ou);Vr(wy,17,()=>R(s),zr,(W5,Y5)=>{Tu(W5,{get change(){return R(Y5)},get view(){return n()}})});var q5=te(wy,2);Ps(q5,{get files(){return R(s)}}),ae(Is,Ou)};_e(yl,Is=>{R(E)?Is(z5):Is(V5,!1)})}H(Hi),Pn(3,Hi,()=>ui,()=>({duration:150})),ae(fi,Hi)};_e(fn,fi=>{R(p)&&fi(Pa)})}H(Gt),Fe(fi=>{Bi=ot(Gt,1,"pulled nav-folder",null,Bi,fi),Be(Jt,R(s).length)},[()=>({"is-collapsed":!R(p)})]),ae(Mt,Gt)};_e(U5,Mt=>{R(s).length>0&&R(f)&&Mt(G5)})}H(Oe),Fe((Mt,Gt,Bi,Rn)=>{Pt=ot(De,1,"staged tree-item nav-folder",null,Pt,Mt),Je=ot(U,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,Je,Gt),Be(Rt,R(a).staged.length),dy=ot(Ru,1,"changes tree-item nav-folder",null,dy,Bi),py=ot(hy,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,py,Rn),Be(N5,R(a).changed.length)},[()=>({"is-collapsed":!R(h)}),()=>({"is-collapsed":!R(h)}),()=>({"is-collapsed":!R(d)}),()=>({"is-collapsed":!R(d)})]),ae(X,Oe)};_e(lr,X=>{R(a)&&R(u)&&R(c)&&X(Ut)})}H($e),H(x),Fe(X=>{ve(x,"data-type",$t.type),ve(le,"data-icon",R(E)?"list":"folder"),Te=ot(ce,1,"clickable-icon nav-action-button",null,Te,X),ve(N,"rows",R(w))},[()=>({loading:R(i)})]),ey(N,()=>R(o),X=>ie(o,X)),ae(t,x),rt()}gt(["click"]);var Pu=class extends $5.ItemView{constructor(e,r){super(e),this.plugin=r,this.hoverPopover=null}getViewType(){return $t.type}getDisplayText(){return $t.name}getIcon(){return $t.icon}onClose(){return this._view&&ji(this._view),super.onClose()}reload(){this._view&&ji(this._view),this._view=Ta(fy,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};m();var gp=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;this.statusBarEl.addClass("mod-clickable"),this.statusBarEl.onClickEvent(n=>{this.plugin.switchBranch().catch(i=>r.displayError(i))})}async display(){if(this.plugin.gitReady){let e=await this.plugin.gitManager.branchInfo();e.current!=null?this.statusBarEl.setText(e.current):this.statusBarEl.empty()}else this.statusBarEl.empty()}remove(){this.statusBarEl.remove()}};var vp=class extends we.Plugin{constructor(){super(...arguments);this.automaticsManager=new Bc(this);this.tools=new Uc(this);this.localStorage=new vh(this);this.state={gitAction:0,offlineMode:!1};this.gitReady=!1;this.promiseQueue=new fh(this);this.intervalsToClear=[];this.lineAuthoringFeature=new uh(this)}setPluginState(r){var n;this.state=Object.assign(this.state,r),(n=this.statusBar)==null||n.display()}async updateCachedStatus(){var r,n;return this.app.workspace.trigger("obsidian-git:loading-status"),this.cachedStatus=await this.gitManager.status(),this.cachedStatus.conflicted.length>0?(this.localStorage.setConflict(!0),await((r=this.branchBar)==null?void 0:r.display())):(this.localStorage.setConflict(!1),await((n=this.branchBar)==null?void 0:n.display())),this.app.workspace.trigger("obsidian-git:status-changed",this.cachedStatus),this.cachedStatus}async refresh(){if(!this.gitReady)return;let r=this.app.workspace.getLeavesOfType($t.type),n=this.app.workspace.getLeavesOfType(Zr.type);(this.settings.changedFilesInStatusBar||r.some(i=>{var a;return!((a=i.isDeferred)!=null&&a)})||n.some(i=>{var a;return!((a=i.isDeferred)!=null&&a)}))&&await this.updateCachedStatus().catch(i=>this.displayError(i)),this.app.workspace.trigger("obsidian-git:refreshed")}refreshUpdatedHead(){this.lineAuthoringFeature.refreshLineAuthorViews()}async onload(){console.log("loading "+this.manifest.name+" plugin: v"+this.manifest.version),Nc.plugin=this,this.localStorage.migrate(),await this.loadSettings(),await this.migrateSettings(),this.settingsTab=new Kd(this.app,this),this.addSettingTab(this.settingsTab),this.localStorage.getPluginDisabled()||(this.registerStuff(),this.app.workspace.onLayoutReady(()=>this.init({fromReload:!1}).catch(r=>this.displayError(r))))}onExternalSettingsChange(){this.reloadSettings().catch(r=>this.displayError(r))}async reloadSettings(){let r=JSON.stringify(this.settings);await this.loadSettings();let n=JSON.stringify(this.settings);r!==n&&(this.log("Reloading settings"),this.unloadPlugin(),await this.init({fromReload:!0}),this.app.workspace.getLeavesOfType($t.type).forEach(i=>{var a;if(!((a=i.isDeferred)!=null&&a))return i.view.reload()}),this.app.workspace.getLeavesOfType(Zr.type).forEach(i=>{var a;if(!((a=i.isDeferred)!=null&&a))return i.view.reload()}))}registerStuff(){this.registerEvent(this.app.workspace.on("obsidian-git:refresh",()=>{this.refresh().catch(r=>this.displayError(r))})),this.registerEvent(this.app.workspace.on("obsidian-git:head-change",()=>{this.refreshUpdatedHead()})),this.registerEvent(this.app.workspace.on("file-menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"file-manu")})),this.registerEvent(this.app.workspace.on("obsidian-git:menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"obsidian-git:menu")})),this.registerEvent(this.app.workspace.on("active-leaf-change",r=>{this.onActiveLeafChange(r)})),this.registerEvent(this.app.vault.on("modify",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("delete",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("create",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("rename",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerView($t.type,r=>new Pu(r,this)),this.registerView(Zr.type,r=>new Su(r,this)),this.registerView(ua.type,r=>new ls(r,this)),this.registerView(ca.type,r=>new fs(r,this)),this.addRibbonIcon("git-pull-request","Open Git source control",async()=>{var i;let r=this.app.workspace.getLeavesOfType($t.type),n;r.length===0?(n=(i=this.app.workspace.getRightLeaf(!1))!=null?i:this.app.workspace.getLeaf(),await n.setViewState({type:$t.type})):n=r.first(),await this.app.workspace.revealLeaf(n)}),this.registerHoverLinkSource($t.type,{display:"Git View",defaultMod:!0}),this.lineAuthoringFeature.onLoadPlugin(),this.setRefreshDebouncer(),oM(this)}setRefreshDebouncer(){var r;(r=this.debRefresh)==null||r.cancel(),this.debRefresh=(0,we.debounce)(()=>{this.settings.refreshSourceControl&&this.refresh().catch(console.error)},this.settings.refreshSourceControlTimer,!0)}async addFileToGitignore(r,n){let i=this.gitManager.getRelativeRepoPath(r,!0),a=u3({isFolder:n,gitRelativePath:i});return await this.app.vault.adapter.append(this.gitManager.getRelativeVaultPath(".gitignore"),` -`+a),this.refresh()}handleFileMenu(r,n,i,a){if(!this.gitReady||!this.settings.showFileMenu||!n)return;let s;if(typeof n=="string"?s=n:s=n.path,i=="file-explorer-context-menu"&&(r.addItem(o=>{o.setTitle("Git: Stage").setIcon("plus-circle").setSection("action").onClick(l=>{this.promiseQueue.addTask(async()=>{n instanceof we.TFile?await this.stageFile(n):(await this.gitManager.stageAll({dir:this.gitManager.getRelativeRepoPath(s,!0)}),this.app.workspace.trigger("obsidian-git:refresh"))})})}),r.addItem(o=>{o.setTitle("Git: Unstage").setIcon("minus-circle").setSection("action").onClick(l=>{this.promiseQueue.addTask(async()=>{n instanceof we.TFile?await this.unstageFile(n):(await this.gitManager.unstageAll({dir:this.gitManager.getRelativeRepoPath(s,!0)}),this.app.workspace.trigger("obsidian-git:refresh"))})})}),r.addItem(o=>{o.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(l=>{this.addFileToGitignore(s,n instanceof we.TFolder).catch(c=>this.displayError(c))})})),i=="git-source-control"){r.addItem(l=>{l.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(c=>{this.addFileToGitignore(s,n instanceof we.TFolder).catch(u=>this.displayError(u))})});let o=this.app.vault.adapter;a==="obsidian-git:menu"&&o instanceof we.FileSystemAdapter&&(r.addItem(l=>{l.setTitle("Open in default app").setIcon("arrow-up-right").setSection("action").onClick(c=>{this.app.openWithDefaultApp(s)})}),r.addItem(l=>{l.setTitle("Show in system explorer").setIcon("arrow-up-right").setSection("action").onClick(c=>{window.electron.shell.showItemInFolder(L5.join(o.getBasePath(),s))})}))}}async migrateSettings(){this.settings.mergeOnPull!=null&&(this.settings.syncMethod=this.settings.mergeOnPull?"merge":"rebase",this.settings.mergeOnPull=void 0,await this.saveSettings()),this.settings.autoCommitMessage===void 0&&(this.settings.autoCommitMessage=this.settings.commitMessage,await this.saveSettings()),this.settings.gitPath!=null&&(this.localStorage.setGitPath(this.settings.gitPath),this.settings.gitPath=void 0,await this.saveSettings()),this.settings.username!=null&&(this.localStorage.setPassword(this.settings.username),this.settings.username=void 0,await this.saveSettings())}unloadPlugin(){var r,n;this.gitReady=!1,this.lineAuthoringFeature.deactivateFeature(),this.automaticsManager.unload(),(r=this.branchBar)==null||r.remove(),(n=this.statusBar)==null||n.remove(),this.statusBar=void 0,this.branchBar=void 0,this.gitManager.unload(),this.promiseQueue.clear();for(let i of this.intervalsToClear)window.clearInterval(i);this.intervalsToClear=[],this.debRefresh.cancel()}onunload(){this.unloadPlugin(),console.log("unloading "+this.manifest.name+" plugin")}async loadSettings(){let r=await this.loadData();r==null&&(r={showedMobileNotice:!0}),this.settings=gT(Xe,r)}async saveSettings(){var r;(r=this.settingsTab)==null||r.beforeSaveSettings(),await this.saveData(this.settings)}get useSimpleGit(){return we.Platform.isDesktopApp}async init({fromReload:r=!1}){var n;if(this.settings.showStatusBar&&!this.statusBar){let i=this.addStatusBarItem();this.statusBar=new dh(i,this),this.intervalsToClear.push(window.setInterval(()=>{var a;return(a=this.statusBar)==null?void 0:a.display()},1e3))}try{this.useSimpleGit?(this.gitManager=new Ce(this),await this.gitManager.setGitInstance()):this.gitManager=new wn(this);let i=await this.gitManager.checkRequirements(),a=this.localStorage.getPausedAutomatics();switch(i){case"missing-git":this.displayError(`Cannot run git command. Trying to run: '${this.localStorage.getGitPath()||"git"}' .`);break;case"missing-repo":new we.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo.",1e4);break;case"valid":if(this.gitReady=!0,this.setPluginState({gitAction:0}),we.Platform.isDesktop&&this.settings.showBranchStatusBar&&!this.branchBar){let s=this.addStatusBarItem();this.branchBar=new gp(s,this),this.intervalsToClear.push(window.setInterval(()=>{var o;return void((o=this.branchBar)==null?void 0:o.display().catch(console.error))},6e4))}await((n=this.branchBar)==null?void 0:n.display()),this.lineAuthoringFeature.conditionallyActivateBySettings(),this.app.workspace.trigger("obsidian-git:refresh"),this.app.workspace.trigger("obsidian-git:head-change"),!r&&this.settings.autoPullOnBoot&&!a&&this.promiseQueue.addTask(()=>this.pullChangesFromRemote()),a||await this.automaticsManager.init(),a&&new we.Notice("Automatic routines are currently paused.");break;default:this.log("Something weird happened. The 'checkRequirements' result is "+i)}}catch(i){this.displayError(i),console.error(i)}}async createNewRepo(){try{await this.gitManager.init(),new we.Notice("Initialized new repo"),await this.init({fromReload:!0})}catch(r){this.displayError(r)}}async cloneNewRepo(){let n=await new ze(this,{placeholder:"Enter remote URL"}).openAndGetResult();if(n){let i="Vault Root",a=await new ze(this,{options:this.gitManager instanceof wn?[i]:[],placeholder:"Enter directory for clone. It needs to be empty or not existent.",allowEmpty:this.gitManager instanceof wn}).openAndGetResult();if(a==null)return;if(a===i&&(a="."),a=(0,we.normalizePath)(a),a==="/"&&(a="."),a==="."){let f=await new ze(this,{options:["NO","YES"],placeholder:`Does your remote repo contain a ${this.app.vault.configDir} directory at the root?`,onlySelection:!0}).openAndGetResult();if(f===void 0){new we.Notice("Aborted clone");return}else if(f==="YES"){let d="DELETE ALL YOUR LOCAL CONFIG AND PLUGINS";if(await new ze(this,{options:["Abort clone",d],placeholder:`To avoid conflicts, the local ${this.app.vault.configDir} directory needs to be deleted.`,onlySelection:!0}).openAndGetResult()===d)await this.app.vault.adapter.rmdir(this.app.vault.configDir,!0);else{new we.Notice("Aborted clone");return}}}let s=await new ze(this,{placeholder:"Specify depth of clone. Leave empty for full clone.",allowEmpty:!0}).openAndGetResult(),o;if(s===void 0){new we.Notice("Aborted clone");return}if(s!==""&&(o=parseInt(s),isNaN(o))){new we.Notice("Invalid depth. Aborting clone.");return}new we.Notice(`Cloning new repo into "${a}"`);let l=this.settings.basePath,c=a&&a!==".";c&&(this.settings.basePath=a);try{await this.gitManager.clone(vv(n),a,o),new we.Notice("Cloned new repo."),new we.Notice("Please restart Obsidian"),c&&await this.saveSettings()}catch(u){this.displayError(u),this.settings.basePath=l,await this.saveSettings()}}}async isAllInitialized(){return this.gitReady||await this.init({fromReload:!0}),this.gitReady}async pullChangesFromRemote(){if(!await this.isAllInitialized())return;let r=await this.pull();if(r!==!1){if(r||this.displayMessage("Pull: Everything is up-to-date"),this.gitManager instanceof Ce){let n=await this.updateCachedStatus();n.conflicted.length>0&&(this.displayError(`You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted))}this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0})}}async commitAndSync({fromAutoBackup:r,requestCustomMessage:n=!1,commitMessage:i,onlyStaged:a=!1}){!await this.isAllInitialized()||(this.settings.syncMethod=="reset"&&this.settings.pullBeforePush&&await this.pull(),!await this.commit({fromAuto:r,requestCustomMessage:n,commitMessage:i,onlyStaged:a}))||(this.settings.syncMethod!="reset"&&this.settings.pullBeforePush&&await this.pull(),this.settings.disablePush||(await this.remotesAreSet()&&await this.gitManager.canPush()?await this.push():this.displayMessage("No commits to push")),this.setPluginState({gitAction:0}))}async commit({fromAuto:r,requestCustomMessage:n=!1,onlyStaged:i=!1,commitMessage:a,amend:s=!1}){if(!await this.isAllInitialized())return!1;try{let o=this.localStorage.getConflict(),l,c=[],u=[];if(this.gitManager instanceof Ce){if(await this.mayDeleteConflictFile(),l=await this.updateCachedStatus(),l.conflicted.length==0&&(o=!1),r&&l.conflicted.length>0)return this.displayError(`Did not commit, because you have conflicts in ${l.conflicted.length} ${l.conflicted.length==1?"file":"files"}. Please resolve them and commit per command.`),await this.handleConflict(l.conflicted),!1;c=l.staged,u=l.changed}else{if(r&&o)return this.displayError("Did not commit, because you have conflicts. Please resolve them and commit per command."),!1;{o&&await this.mayDeleteConflictFile();let f=this.gitManager;i?c=await f.getStagedFiles():u=(await f.getUnstagedFiles()).map(({path:h,type:p})=>({vaultPath:this.gitManager.getRelativeVaultPath(h),path:h,type:p}))}}if(await this.tools.hasTooBigFiles(i?c:[...c,...u]))return this.setPluginState({gitAction:0}),!1;if(u.length+c.length!==0||o){let f=a!=null?a:a=r?this.settings.autoCommitMessage:this.settings.commitMessage;if(r&&this.settings.customMessageOnAutoBackup||n){!this.settings.disablePopups&&r&&new we.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort");let p=await new hh(this).openAndGetResult();if(p!=null&&p!=""&&p!="...")f=p;else return this.setPluginState({gitAction:0}),!1}else if(this.gitManager instanceof Ce&&this.settings.commitMessageScript){let p=this.settings.commitMessageScript,g=this.localStorage.getHostname()||"",v=p.replace("{{hostname}}",g);v=v.replace("{{date}}",(0,we.moment)().format(this.settings.commitDateFormat));let y=await $c("sh",["-c",v],{cwd:this.gitManager.absoluteRepoPath});y.code!=0?this.displayError(y.stderr):y.stdout.trim().length==0?this.displayMessage("Stdout from commit message script is empty. Using default message."):f=y.stdout}let d;i?d=await this.gitManager.commit({message:f,amend:s}):d=await this.gitManager.commitAll({message:f,status:l,unstagedFiles:u,amend:s}),this.gitManager instanceof Ce&&await this.updateCachedStatus();let h=!1;d===void 0&&(h=!0,d=u.length+c.length||0),this.displayMessage(`Committed${h?" approx.":""} ${d} ${d==1?"file":"files"}`)}else this.displayMessage("No changes to commit");return this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(o){return this.displayError(o),!1}}async push(){if(!await this.isAllInitialized()||!await this.remotesAreSet())return!1;let r=this.localStorage.getConflict();try{this.gitManager instanceof Ce&&await this.mayDeleteConflictFile();let n;if(this.gitManager instanceof Ce&&(n=await this.updateCachedStatus()).conflicted.length>0)return this.displayError(`Cannot push. You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted),!1;if(this.gitManager instanceof wn&&r)return this.displayError("Cannot push. You have conflicts"),!1;this.log("Pushing....");let i=await this.gitManager.push();return i!==void 0&&(i>0?this.displayMessage(`Pushed ${i} ${i==1?"file":"files"} to remote`):this.displayMessage("No commits to push")),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(n){return n instanceof Co?this.handleNoNetworkError(n):this.displayError(n),!1}}async pull(){if(!await this.remotesAreSet())return!1;try{this.log("Pulling....");let r=await this.gitManager.pull()||[];return this.setPluginState({offlineMode:!1}),r.length>0&&(this.displayMessage(`Pulled ${r.length} ${r.length==1?"file":"files"} from remote`),this.lastPulledFiles=r),r.length}catch(r){return this.displayError(r),!1}}async fetch(){if(await this.remotesAreSet())try{await this.gitManager.fetch(),this.displayMessage("Fetched from remote"),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh")}catch(r){this.displayError(r)}}async mayDeleteConflictFile(){let r=this.app.vault.getAbstractFileByPath(To);r&&(this.app.workspace.iterateAllLeaves(n=>{var i;n.view instanceof we.MarkdownView&&((i=n.view.file)==null?void 0:i.path)==r.path&&n.detach()}),await this.app.vault.delete(r))}async stageFile(r){return await this.isAllInitialized()?(await this.gitManager.stage(r.path,!0),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async unstageFile(r){return await this.isAllInitialized()?(await this.gitManager.unstage(r.path,!0),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async switchBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo(),n=await new pp(this,r.branches).openAndGetReslt();if(n!=null)return await this.gitManager.checkout(n),this.displayMessage(`Switched to ${n}`),this.app.workspace.trigger("obsidian-git:refresh"),await((i=this.branchBar)==null?void 0:i.display()),n}async switchRemoteBranch(){var a;if(!await this.isAllInitialized())return;let r=await this.selectRemoteBranch()||"",[n,i]=ki(r);if(i!=null&&n!=null)return await this.gitManager.checkout(i,n),this.displayMessage(`Switched to ${r}`),await((a=this.branchBar)==null?void 0:a.display()),r}async createBranch(){var n;if(!await this.isAllInitialized())return;let r=await new ze(this,{placeholder:"Create new branch"}).openAndGetResult();if(r!=null)return await this.gitManager.createBranch(r),this.displayMessage(`Created new branch ${r}`),await((n=this.branchBar)==null?void 0:n.display()),r}async deleteBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo();r.current&&r.branches.remove(r.current);let n=await new ze(this,{options:r.branches,placeholder:"Delete branch",onlySelection:!0}).openAndGetResult();if(n!=null){let a=!1;if(!await this.gitManager.branchIsMerged(n)){let o=await new ze(this,{options:["YES","NO"],placeholder:"This branch isn't merged into HEAD. Force delete?",onlySelection:!0}).openAndGetResult();if(o!=="YES")return;a=o==="YES"}return await this.gitManager.deleteBranch(n,a),this.displayMessage(`Deleted branch ${n}`),await((i=this.branchBar)==null?void 0:i.display()),n}}async remotesAreSet(){return this.settings.updateSubmodules||(await this.gitManager.branchInfo()).tracking?!0:(new we.Notice("No upstream branch is set. Please select one."),await this.setUpstreamBranch())}async setUpstreamBranch(){let r=await this.selectRemoteBranch();return r==null?(this.displayError("Aborted. No upstream-branch is set!",1e4),this.setPluginState({gitAction:0}),!1):(await this.gitManager.updateUpstreamBranch(r),this.displayMessage(`Set upstream branch to ${r}`),this.setPluginState({gitAction:0}),!0)}async discardAll(r){if(!await this.isAllInitialized())return!1;let n=await this.gitManager.status({path:r}),i=0,a=0;for(let o of n.changed)o.workingDir=="U"?i++:a++;if(i+a==0)return!1;let s=await new gl({app:this.app,filesToDeleteCount:i,filesToDiscardCount:a,path:r!=null?r:""}).openAndGetResult();switch(s){case!1:return s;case"discard":await this.gitManager.discardAll({dir:r,status:this.cachedStatus});break;case"delete":{await this.gitManager.discardAll({dir:r,status:this.cachedStatus});let o=await this.gitManager.getUntrackedPaths({path:r,status:this.cachedStatus});for(let l of o){let c=this.gitManager.getRelativeVaultPath(l),u=this.app.vault.getAbstractFileByPath(c);u?await this.app.fileManager.trashFile(u):l.endsWith("/")?await this.app.vault.adapter.rmdir(c,!0):await this.app.vault.adapter.remove(c)}break}default:Ud(s)}return this.app.workspace.trigger("obsidian-git:refresh"),s}async handleConflict(r){this.localStorage.setConflict(!0);let n;r!==void 0&&(n=["# Conflicts","Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`","(This file will automatically be deleted before commit)","[[#Additional Instructions]] available below file list","",...r.map(i=>{let a=this.app.vault.getAbstractFileByPath(i);return a instanceof we.TFile?`- [[${this.app.metadataCache.fileToLinktext(a,"/")}]]`:`- Not a file: ${i}`}),` -# Additional Instructions -I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. - -\`\`\`diff -<<<<<<< HEAD - File changes in local repository -======= - File changes in remote repository ->>>>>>> origin/main -\`\`\``]),await this.tools.writeAndOpenFile(n==null?void 0:n.join(` -`))}async editRemotes(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new ze(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}).openAndGetResult();if(i){let a=await this.gitManager.getRemoteUrl(i),o=await new ze(this,{initialValue:a,placeholder:"Enter remote URL"}).openAndGetResult();if(o)return await this.gitManager.setRemote(i,vv(o)),i}}async selectRemoteBranch(){let r=await this.gitManager.getRemotes(),n;r.length===0&&(n=await this.editRemotes(),n==null&&(r=await this.gitManager.getRemotes()));let i=new ze(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}),a=n!=null?n:await i.openAndGetResult();if(a){this.displayMessage("Fetching remote branches"),await this.gitManager.fetch(a);let s=await this.gitManager.getRemoteBranches(a),l=await new ze(this,{options:s,placeholder:"Select or create a new remote branch by typing its name and selecting it"}).openAndGetResult();return l==null?void 0:l.startsWith(a+"/")?l:`${a}/${l}`}}async removeRemote(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new ze(this,{options:r,placeholder:"Select a remote"}).openAndGetResult();i&&await this.gitManager.removeRemote(i)}onActiveLeafChange(r){var s,o;let n=r==null?void 0:r.view;if(!(n!=null&&n.getState().file)&&!(n instanceof ls||n instanceof fs))return;let i=this.app.workspace.getLeavesOfType($t.type).first(),a=this.app.workspace.getLeavesOfType(Zr.type).first();if((s=i==null?void 0:i.view.containerEl.querySelector("div.tree-item-self.is-active"))==null||s.removeClass("is-active"),(o=a==null?void 0:a.view.containerEl.querySelector("div.tree-item-self.is-active"))==null||o.removeClass("is-active"),(r==null?void 0:r.view)instanceof ls||(r==null?void 0:r.view)instanceof fs){let l=r.view.state.bFile;this.lastDiffViewState=r.view.getState();let c;i&&r.view.state.aRef=="HEAD"?c=i.view.containerEl.querySelector(`div.staged div.tree-item-self[data-path='${l}']`):i&&r.view.state.aRef==""?c=i.view.containerEl.querySelector(`div.changes div.tree-item-self[data-path='${l}']`):a&&(c=a.view.containerEl.querySelector(`div.tree-item-self[data-path='${l}']`)),c==null||c.addClass("is-active")}else this.lastDiffViewState=void 0}handleNoNetworkError(r){this.state.offlineMode?this.log("Encountered network error, but already in offline mode"):this.displayError("Git: Going into offline mode. Future network errors will no longer be displayed.",2e3),this.setPluginState({gitAction:0,offlineMode:!0})}displayMessage(r,n=4*1e3){var i;(i=this.statusBar)==null||i.displayMessage(r.toLowerCase(),n),this.settings.disablePopups||(!this.settings.disablePopupsForNoChanges||!r.startsWith("No changes"))&&new we.Notice(r,5*1e3),this.log(r)}displayError(r,n=10*1e3){var a;if(r instanceof D5.Errors.UserCanceledError){new we.Notice("Aborted");return}let i;r instanceof Error?i=r:i=new Error(String(r)),this.setPluginState({gitAction:0}),this.settings.showErrorNotices&&new we.Notice(i.message,n),console.error(`${this.manifest.id}:`,i.stack),(a=this.statusBar)==null||a.displayMessage(i.message.toLowerCase(),n)}log(...r){console.log(`${this.manifest.id}:`,...r)}}; -/*! Bundled license information: - -ieee754/index.js: - (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) - -buffer/index.js: - (*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - *) - -safe-buffer/index.js: - (*! safe-buffer. MIT License. Feross Aboukhadijeh *) - -crc-32/crc32.js: - (*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com *) - -js-sha256/src/sha256.js: - (** - * [js-sha256]{@link https://github.com/emn178/js-sha256} - * - * @version 0.9.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2014-2017 - * @license MIT - *) - -feather-icons/dist/feather.js: - (*! - Copyright (c) 2016 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames - *) -*/ - -/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json deleted file mode 100644 index 2f24b79..0000000 --- a/.obsidian/plugins/obsidian-git/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "author": "Vinzent", - "authorUrl": "https://github.com/Vinzent03", - "id": "obsidian-git", - "name": "Git", - "description": "Integrate Git version control with automatic backup and other advanced features.", - "isDesktopOnly": false, - "fundingUrl": "https://ko-fi.com/vinzent", - "version": "2.35.2" -} diff --git a/.obsidian/plugins/obsidian-git/styles.css b/.obsidian/plugins/obsidian-git/styles.css deleted file mode 100644 index 83c543b..0000000 --- a/.obsidian/plugins/obsidian-git/styles.css +++ /dev/null @@ -1,629 +0,0 @@ -@keyframes loading { - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -} - -.workspace-leaf-content[data-type="git-view"] .button-border { - border: 2px solid var(--interactive-accent); - border-radius: var(--radius-s); -} - -.workspace-leaf-content[data-type="git-view"] .view-content { - padding-left: 0; - padding-top: 0; - padding-right: 0; -} - -.workspace-leaf-content[data-type="git-history-view"] .view-content { - padding-left: 0; - padding-top: 0; - padding-right: 0; -} - -.loading { - overflow: hidden; -} - -.loading > svg { - animation: 2s linear infinite loading; - transform-origin: 50% 50%; - display: inline-block; -} - -.obsidian-git-center { - margin: auto; - text-align: center; - width: 50%; -} - -.obsidian-git-textarea { - display: block; - margin-left: auto; - margin-right: auto; -} - -.obsidian-git-disabled { - opacity: 0.5; -} - -.obsidian-git-center-button { - display: block; - margin: 20px auto; -} - -.tooltip.mod-left { - overflow-wrap: break-word; -} - -.tooltip.mod-right { - overflow-wrap: break-word; -} - -/* Limits the scrollbar to the view body */ -.git-view { - display: flex; - flex-direction: column; - position: relative; - height: 100%; -} - -.git-tools { - display: flex; - margin-left: auto; -} -.git-tools .type { - padding-left: var(--size-2-1); - display: flex; - align-items: center; - justify-content: center; - width: 11px; -} - -.git-tools .type[data-type="M"] { - color: orange; -} -.git-tools .type[data-type="D"] { - color: red; -} -.git-tools .buttons { - display: flex; -} -.git-tools .buttons > * { - padding: 0 0; - height: auto; -} - -.workspace-leaf-content[data-type="git-view"] .tree-item-self, -.workspace-leaf-content[data-type="git-history-view"] .tree-item-self { - align-items: center; -} - -.workspace-leaf-content[data-type="git-view"] - .tree-item-self:hover - .clickable-icon, -.workspace-leaf-content[data-type="git-history-view"] - .tree-item-self:hover - .clickable-icon { - color: var(--icon-color-hover); -} - -/* Highlight an item as active if it's diff is currently opened */ -.is-active .git-tools .buttons > * { - color: var(--nav-item-color-active); -} - -.git-author { - color: var(--text-accent); -} - -.git-date { - color: var(--text-accent); -} - -.git-ref { - color: var(--text-accent); -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-d-none { - display: none; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-wrapper { - text-align: left; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-header { - background-color: var(--background-primary); - border-bottom: 1px solid var(--interactive-accent); - font-family: var(--font-monospace); - height: 35px; - padding: 5px 10px; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-header, -.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { - font-size: 14px; - margin-left: auto; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-lines-added { - border: 1px solid #b4e2b4; - border-radius: 5px 0 0 5px; - color: #399839; - padding: 2px; - text-align: right; - vertical-align: middle; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted { - border: 1px solid #e9aeae; - border-radius: 0 5px 5px 0; - color: #c33; - margin-left: 1px; - padding: 2px; - text-align: left; - vertical-align: middle; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-size: 15px; - width: 100%; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-name { - overflow-x: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper { - border: 1px solid var(--background-modifier-border); - border-radius: 3px; - margin-bottom: 1em; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse { - -webkit-box-pack: end; - -ms-flex-pack: end; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border: 1px solid var(--background-modifier-border); - border-radius: 3px; - cursor: pointer; - display: none; - font-size: 12px; - justify-content: flex-end; - padding: 4px 8px; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected { - background-color: #c8e1ff; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input { - margin: 0 4px 0 0; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-diff-table { - border-collapse: collapse; - font-family: Menlo, Consolas, monospace; - font-size: 13px; - width: 100%; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-files-diff { - width: 100%; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-diff { - overflow-y: hidden; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff { - display: inline-block; - margin-bottom: -8px; - margin-right: -4px; - overflow-x: scroll; - overflow-y: hidden; - width: 50%; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-line { - padding: 0 8em; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-line, -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { - display: inline-block; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - white-space: nowrap; - width: 100%; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { - padding: 0 4.5em; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn { - word-wrap: normal; - background: none; - display: inline-block; - padding: 0; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - vertical-align: middle; - white-space: pre; - width: 100%; -} - -.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - del { - background-color: #ffb6ba; -} - -.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - del { - background-color: #8d232881; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, -.workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del, -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { - border-radius: 0.2em; - display: inline-block; - margin-top: -1px; - text-decoration: none; - vertical-align: middle; -} - -.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - ins { - background-color: #97f295; - text-align: left; -} - -.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-code-side-line - ins { - background-color: #1d921996; - text-align: left; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix { - word-wrap: normal; - background: none; - display: inline; - padding: 0; - white-space: pre; -} - -.workspace-leaf-content[data-type="diff-view"] .line-num1 { - float: left; -} - -.workspace-leaf-content[data-type="diff-view"] .line-num1, -.workspace-leaf-content[data-type="diff-view"] .line-num2 { - -webkit-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; - padding: 0 0.5em; - text-overflow: ellipsis; - width: 3.5em; -} - -.workspace-leaf-content[data-type="diff-view"] .line-num2 { - float: right; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber { - background-color: var(--background-primary); - border: solid var(--background-modifier-border); - border-width: 0 1px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - color: var(--text-muted); - cursor: pointer; - display: inline-block; - position: absolute; - text-align: right; - width: 7.5em; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after { - content: "\200b"; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { - background-color: var(--background-primary); - border: solid var(--background-modifier-border); - border-width: 0 1px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - color: var(--text-muted); - cursor: pointer; - display: inline-block; - overflow: hidden; - padding: 0 0.5em; - position: absolute; - text-align: right; - text-overflow: ellipsis; - width: 4em; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-diff-tbody tr { - position: relative; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after { - content: "\200b"; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder, -.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { - background-color: var(--background-primary); - border-color: var(--background-modifier-border); -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix, -.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber, -.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, -.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { - direction: rtl; -} - -.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del { - background-color: #fee8e9; - border-color: #e9aeae; -} - -.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins { - background-color: #dfd; - border-color: #b4e2b4; -} - -.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del { - background-color: #521b1d83; - border-color: #691d1d73; -} - -.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins { - background-color: rgba(30, 71, 30, 0.5); - border-color: #13501381; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-info { - background-color: var(--background-primary); - border-color: var(--background-modifier-border); - color: var(--text-normal); -} - -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-del.d2h-change { - background-color: #fdf2d0; -} - -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-del.d2h-change { - background-color: #55492480; -} - -.theme-light - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-ins.d2h-change { - background-color: #ded; -} - -.theme-dark - .workspace-leaf-content[data-type="diff-view"] - .d2h-file-diff - .d2h-ins.d2h-change { - background-color: rgba(37, 78, 37, 0.418); -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper { - margin-bottom: 10px; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a { - color: #3572b0; - text-decoration: none; -} - -.workspace-leaf-content[data-type="diff-view"] - .d2h-file-list-wrapper - a:visited { - color: #3572b0; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header { - text-align: left; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title { - font-weight: 700; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - text-align: left; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list { - display: block; - list-style: none; - margin: 0; - padding: 0; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li { - border-bottom: 1px solid var(--background-modifier-border); - margin: 0; - padding: 5px 10px; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li:last-child { - border-bottom: none; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-file-switch { - cursor: pointer; - display: none; - font-size: 10px; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-icon { - fill: currentColor; - margin-right: 10px; - vertical-align: middle; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-deleted { - color: #c33; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-added { - color: #399839; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-changed { - color: #d0b44c; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-moved { - color: #3572b0; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-tag { - background-color: var(--background-primary); - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-size: 10px; - margin-left: 5px; - padding: 0 2px; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag { - border: 2px solid #c33; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-added-tag { - border: 1px solid #399839; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag { - border: 1px solid #d0b44c; -} - -.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag { - border: 1px solid #3572b0; -} - -/* ====================== Line Authoring Information ====================== */ - -.cm-gutterElement.obs-git-blame-gutter { - /* Add background color to spacing inbetween and around the gutter for better aesthetics */ - border-width: 0px 2px 0.2px 2px; - border-style: solid; - border-color: var(--background-secondary); - background-color: var(--background-secondary); -} - -.cm-gutterElement.obs-git-blame-gutter > div, -.line-author-settings-preview { - /* delegate text color to settings */ - color: var(--obs-git-gutter-text); - font-family: monospace; - height: 100%; /* ensure, that age-based background color occupies entire parent */ - text-align: right; - padding: 0px 6px 0px 6px; - white-space: pre; /* Keep spaces and do not collapse them. */ -} - -@media (max-width: 800px) { - /* hide git blame gutter not to superpose text */ - .cm-gutterElement.obs-git-blame-gutter { - display: none; - } -} - -.git-unified-diff-view, -.git-split-diff-view .cm-deletedLine .cm-changedText { - background-color: #ee443330; -} - -.git-unified-diff-view, -.git-split-diff-view .cm-insertedLine .cm-changedText { - background-color: #22bb2230; -} - -.git-obscure-prompt[git-is-obscured="true"] #git-show-password:after { - -webkit-mask-image: url('data:image/svg+xml,'); -} - -.git-obscure-prompt[git-is-obscured="false"] #git-show-password:after { - -webkit-mask-image: url('data:image/svg+xml,'); -} - -/* Override styling of Codemirror merge view "collapsed lines" indicator */ -.git-split-diff-view .ͼ2 .cm-collapsedLines { - background: var(--interactive-normal); - border-radius: var(--radius-m); - color: var(--text-accent); - font-size: var(--font-small); - padding: var(--size-4-1) var(--size-4-1); -} -.git-split-diff-view .ͼ2 .cm-collapsedLines:hover { - background: var(--interactive-hover); - color: var(--text-accent-hover); -} diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index fb04040..e75b18a 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -20,8 +20,51 @@ "icon": "lucide-file", "title": "介值定理例题" } + }, + { + "id": "cd7d011fbf651eac", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "介值定理例题.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "介值定理例题" + } + }, + { + "id": "906a5c19786d30c7", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "介值定理例题.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "介值定理例题" + } + }, + { + "id": "13bc134bb0804c7d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "conflict-files-obsidian-git.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "conflict-files-obsidian-git" + } } - ] + ], + "currentTab": 3 } ], "direction": "vertical" @@ -191,17 +234,42 @@ "obsidian-git:Open Git source control": false } }, - "active": "b6107f657aaca089", + "active": "13bc134bb0804c7d", "lastOpenFiles": [ - "隐函数,参数方程和应用题(解析版).md", "介值定理例题.md", + "conflict-files-obsidian-git.md", + "隐函数,参数方程和应用题(解析版).md", + "编写小组/讲义/图片/球浸入水示意图.jpg", + "编写小组/讲义/图片/应用题梯子.jpg", + "编写小组/讲义/图片/应用题人拉船.png", + "编写小组/课后测/课后测解析版2.md", + "编写小组/课后测/课后测解析版1.md", + "编写小组/课后测/课后测3.md", + "编写小组/课后测/课后测2.md", + "编写小组/课后测/课后测1.md", + "编写小组/课前测/课前测解析版2.md", + "编写小组/课前测/课前测解析版1.md", + "编写小组/课前测/课前测3.md", + "编写小组/课前测/课前测2.md", + "编写小组/课前测/课前测1.md", + "编写小组/讲义/隐函数,参数方程和应用题(解析版).md", + "编写小组/讲义/隐函数,参数方程和应用题.md", + "编写小组/讲义/证明题方法:单调有界定理,介值定理.md", + "编写小组/讲义/级数敛散性的基本思路和方法(解析版).md", + "编写小组/讲义/级数敛散性的基本思路和方法.md", + "编写小组/讲义/极限计算的基本方法(解析版).md", + "编写小组/讲义/极限计算的基本方法(解析版2).md", + "编写小组/讲义/极限计算的基本方法.md", + "编写小组/讲义/图片", + "编写小组/讲义/二阶微分推导.md", + "编写小组/课后测", + "编写小组/二阶微分推导.md", + "编写小组/课前测", + "编写小组/讲义", + "编写小组", "Chapter 2-3 极限/根值判别法.md", "Chapter 4 微积分基础/隐函数求导和应用题(1)(1).md", "Chapter 2-3 极限/比值判别法.md", - "Chapter 2 极限/比值判别法.md", - "未命名.base", - "Chapter 2 极限/根值判别法.md", - "Chapter 2 极限/比较判别法.md", - "小测/12.23/课后测(解析).md" + "未命名.base" ] } \ No newline at end of file diff --git a/Chapter 2-3 极限/其他判别法.docx b/Chapter 2-3 极限/其他判别法.docx deleted file mode 100644 index f6d8d1f..0000000 Binary files a/Chapter 2-3 极限/其他判别法.docx and /dev/null differ diff --git a/Chapter 2-3 极限/根值判别法.md b/Chapter 2-3 极限/根值判别法.md deleted file mode 100644 index c4d157b..0000000 --- a/Chapter 2-3 极限/根值判别法.md +++ /dev/null @@ -1,358 +0,0 @@ -# 根值判别法(柯西判别法) - - - -## Quick Description - - - -### 原理 - - - -通过计算级数通项 $u_n$ 的 $n$ 次方根的极限 $\rho = \lim\limits_{n\to\infty} \sqrt[n]{u_n}$,将原级数与等比级数 $\sum \rho^n$ 比较,从而判断敛散性。 - - - -### 适用情况 - - - -1. 适用于正项级数 $\sum u_n$(一般 $u_n > 0$)。 - -2. 当 $u_n$ 含有 $n$ 次幂、指数形式或连乘因子时,此方法往往有效。 - -3. 当比值判别法失效或难以计算时,可尝试根值判别法。 - - - -### 优势和劣势 - - - -**优势** - - - -1. 对于含 $n$ 次幂、指数或幂指结构的级数,计算 $\sqrt[n]{u_n}$ 可能比计算比值 $u_{n+1}/u_n$ 更简单。 - -2. 理论清晰,与等比级数直接比较,直观性强。 - - - -**劣势** - - - -1. 当 $\rho = 1$ 时无法判断(此时级数可能收敛也可能发散)。 - -2. 需要求 $\sqrt[n]{u_n}$ 的极限,有时计算较复杂。 - -3. 仅适用于正项级数。 - - - ---- - - - -## 定理与证明 - - - -### 定理(根值判别法) - - - -设 $\sum_{n=1}^\infty u_n$ 是**正项级数**,且 - - - -$ρ=\lim ⁡n→∞ u_n n ρ=n→∞\lim ​nu_n$​​ - - - -(这里允许 $\rho = +\infty$)。 - - - -1. 若 $\rho < 1$,则级数收敛。 - -2. 若 $\rho > 1$(包括 $\rho = +\infty$),则级数发散。 - -3. 若 $\rho = 1$,判别法失效(级数可能收敛也可能发散)。 - - - -### 证明思路 - - - -由极限定义:对任意 $\varepsilon > 0$,存在 $N$,当 $n > N$ 时, - - - -$ρ−ε [!note]   - -> **情形 $\rho < 1$**   - -> 取 $\varepsilon$ 使 $r = \rho + \varepsilon < 1$,则 - -> - -> unN)un​N) - -> - -> 而几何级数 $\sum r^n$ 收敛,由比较判别法知 $\sum u_n$ 收敛。 - - - -> [!note]   - -> **情形 $\rho > 1$**   -> 取 $\varepsilon$ 使 $r = \rho - \varepsilon > 1$,则 -> -> $u_n>r^n(n>N)$ -> -> 而几何级数 $\sum r^n$ 发散,故 $\sum u_n$ 发散。 - - - -> [!note]   - -> **情形 $\rho = 1$**   -> 反例: -> -> - $\sum \frac{1}{n}$ 发散,但 $\sqrt[n]{\frac{1}{n}} \to 1$。 ->     -> - $\sum \frac{1}{n^2}$ 收敛,但 $\sqrt[n]{\frac{1}{n^2}} \to 1$。 ->     - - - ---- - - - -## 典型例题 - - - -> [!example] 例1   - -> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \left(1 - \frac{1}{n}\right)^n$ 的敛散性。 - -> - -> **解**   - -> 计算根值: - -> - -> unn=(1−1n)nn=1−1n→1(n→∞)nun​​=n(1−n1​)n​=1−n1​→1(n→∞) - -> - -> 此时 $\rho = 1$,根值判别法失效。 - -> - -> 改用其他方法:注意到 - -> - -> (1−1n)n=enln⁡(1−1n)∼e−1(n→∞)(1−n1​)n=enln(1−n1​)∼e−1(n→∞) - -> - -> 所以 $u_n \to e^{-1} \neq 0$,由级数收敛的必要条件(通项必须趋于0)知该级数发散。 - - - -> [!example] 例2   - -> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{n}{\left(a + \frac{1}{n}\right)^n} \quad (a > 0)$ 的敛散性。 - -> - -> **解**   - -> 计算根值: - -> - -> unn=n(a+1n)nn=nna+1nnun​​=n(a+n1​)nn​​=a+n1​nn​​ - -> - -> 因为 $\sqrt[n]{n} \to 1$,所以 - -> - -> lim⁡n→∞unn=1an→∞lim​nun​​=a1​ - -> - -> - 若 $\frac{1}{a} < 1$ 即 $a > 1$,则级数收敛。 - ->     - -> - 若 $\frac{1}{a} > 1$ 即 $0 < a < 1$,则级数发散。 - ->     - -> - 若 $a = 1$,此时 $\rho = 1$,判别法失效。   - ->     当 $a = 1$ 时, - ->     - ->     un=n(1+1n)n∼ne(n→∞)un​=(1+n1​)nn​∼en​(n→∞) - ->     - ->     通项不趋于0,故级数发散。 - ->     - -> - -> **综上**: - -> - -> - 当 $a > 1$ 时,级数收敛; - ->     - -> - 当 $0 < a \le 1$ 时,级数发散。 - ->     - - - -> [!example] 例3(常用结论)   - -> 证明:$\displaystyle \lim_{n\to\infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max{a_1, a_2, \dots, a_m}$,其中 $a_k > 0$。 - -> - -> **证明**   - -> 令 $M = \max{a_1, \dots, a_m}$,则 - -> - -> Mn≤a1n+⋯+amn≤mMnMn≤a1n​+⋯+amn​≤mMn - -> - -> 两边开 $n$ 次方: - -> - -> M≤a1n+⋯+amnn≤M⋅mnM≤na1n​+⋯+amn​​≤M⋅nm​ - -> - -> 因为 $\sqrt[n]{m} \to 1$,由夹逼定理得结论。 - -> - -> 此结论在判断形如 $\sum (a_1^n + \cdots + a_m^n)$ 的级数时可直接使用。 - - - -> [!example] 例4   - -> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{2^n + 3^n}{5^n}$ 的敛散性。 - -> - -> **解** - -> - -> un=2n+3n5n=(25)n+(35)nun​=5n2n+3n​=(52​)n+(53​)n - -> - -> 计算根值: - -> - -> unn=(25)n+(35)nnnun​​=n(52​)n+(53​)n​ - -> - -> 由例3结论,$\sqrt[n]{u_n} \to \max\left{\frac{2}{5}, \frac{3}{5}\right} = \frac{3}{5} < 1$,故级数收敛。 - - - ---- - - - -## 注意事项 - - - -1. 根值判别法仅适用于正项级数。 - -2. 当 $\rho = 1$ 时,需改用其他方法(如比较判别法、积分判别法、比值判别法等)。 - -3. 计算 $\sqrt[n]{u_n}$ 时,常用结论: - -    nn→1,nkn→1,an=a1/n→1 (a>0)nn​→1,nnk​→1,na​=a1/n→1 (a>0) - -4. 若 $u_n$ 含有 $n!$ 或连乘形式,通常使用比值判别法更简便;若含 $n$ 次幂,则根值判别法可能更直接。 - - - ---- - - - -## 练习题 - - - -> [!question] 练习1   - -> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \left(\frac{n}{2n+1}\right)^n$ 的敛散性。 - - - -> [!question] 练习2   - -> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{5^n}{n^n}$ 的敛散性。 - - - -> [!question] 练习3   - -> 设 $a > 0$,讨论级数 $\displaystyle \sum_{n=1}^{\infty} \left(\frac{a}{n}\right)^n$ 的敛散性。 - - - -> [!note] 参考答案 - -> - -> 1. $\rho = \frac{1}{2} < 1$,收敛。 - ->     - -> 2. $\rho = 0 < 1$,收敛。 - ->     - -> 3. 对任意 $a > 0$,有 $\rho = 0 < 1$,收敛。 - -> \ No newline at end of file diff --git a/Chapter 2-3 极限/比值判别法.md b/Chapter 2-3 极限/比值判别法.md deleted file mode 100644 index 5ac4e12..0000000 --- a/Chapter 2-3 极限/比值判别法.md +++ /dev/null @@ -1,123 +0,0 @@ -# 比值判别法 - -## 原理 - -对于正项级数 $\sum_{n=1}^{\infty}u_n\ (u_n>0)$,计算极限$\rho=\lim\limits_{n \to \infty}\frac{u_{n+1}}{u_n}$,根据$\rho$与 1 的大小关系判断级数敛散性。 -1. 若 $\boldsymbol{\rho<1}$,则级数收敛; -2. 若 $\boldsymbol{\rho>1}$(或 $\rho=+\infty$),则级数发散; -3. 若 $\boldsymbol{\rho=1}$,则判别法失效,需用其他方法(如比较判别法、积分判别法等)判断。 - -## **适用情况** - -主要适用于通项含阶乘、指数幂(如 $a^n$)、$n^n$ 等形式的正项级数,这类通项的 $\frac{u_{n+1}}{u_n}$ ,作商后阶乘、指数部分可大幅化简,极限易求。 - -## **优势** - -1. 化简效率高:通项含 n!、$a^n$ 时,作商 $\frac{u_{n+1}}{u_n}$ 能直接约去大量重复因子 -2. 判定直接:只需计算一个极限值与 1 比较,无需像比较判别法那样构造合适的参考级数,对初学者更友好。 - -## **劣势** - -1. 对通项形式依赖强:仅适合含阶乘、指数幂的正项级数,对于通项为多项式、分式(如 $u_n=\frac{1}{n^p}$)的级数,$\lim\limits_{n\to\infty}\frac{u_{n+1}}{u_n}=1$,判别法直接失效。 -2. 失效情形无判定能力:当极限 $\rho=1$ 时,无法判断级数敛散性,必须换用比较判别法、积分判别法等其他方法,增加了解题步骤。 -3. 仅针对正项级数:不能直接应用于任意项级数(如交错级数),若要使用,需先对通项取绝对值判断绝对收敛,再进一步分析条件收敛。 -4. 极限可能不存在:部分正项级数的 $\lim\limits_{n\to\infty}\frac{u_{n+1}}{u_n}$ 不存在,此时比值判别法无法使用。 - -## **例子** - -> [!example] 例1 -判定级数敛散性: -$$\sum_{n=1}^{\infty} \frac{2^n}{n!}$$ - - - -**解析** -用比值判别法: -$$\frac{a_{n+1}}{a_n} = \frac{2^{n+1}}{(n+1)!} \cdot \frac{n!}{2^n} = \frac{2}{n+1} \to 0$$ -因此收敛。 - - ->[!example] 例2 -设 $\alpha$ 为正常数,判定级数的敛散性: -$$\sum_{n=1}^\infty \frac{(2n-1)!!}{(n!)^\alpha}$$ - - -**解析** - -1. 记通项 - -$$a_n = \frac{(2n-1)!!}{(n!)^\alpha}$$ - -这里 $(2n-1)!! = 1\cdot 3\cdot 5 \cdots (2n-1) = \frac{(2n)!}{2^n \, n!}$。 - -所以:$$a_n = \frac{\frac{(2n)!}{2^n \, n!}}{(n!)^\alpha}= \frac{(2n)!}{2^n \, (n!)^{\alpha+1}}$$ - -2. 用比值判别法 -$$\frac{a_{n+1}}{a_n} = \frac{(2n+2)!}{2^{n+1}((n+1)!)^{\alpha+1}} \cdot \frac{2^n (n!)^{\alpha+1}}{(2n)!}$$ -化简:$$\frac{(2n+2)!}{(2n)!} = (2n+1)(2n+2) = 2(2n+1)(n+1)$$$$\frac{2^n}{2^{n+1}} = \frac12$$$$\frac{(n!)^{\alpha+1}}{((n+1)!)^{\alpha+1}} = \frac{1}{(n+1)^{\alpha+1}}$$ -所以:$$\frac{a_{n+1}}{a_n} - -= \frac{2(2n+1)(n+1) \cdot \frac12}{(n+1)^{\alpha+1}} - -= \frac{2n+1}{(n+1)^{\alpha}}$$ -3. 计算极限 -$$\lim_{n\to\infty} \frac{2n+1}{(n+1)^{\alpha}}$$ -· 若 $\alpha$> 1,极限为 0,比值判别法得出 $\lim \frac{a_{n+1}}{a_n}$ = 0 < 1,级数收敛。 - -· 若 $\alpha$ = 1,极限为 $\lim_{n\to\infty} \frac{2n+1}{n+1}$ = 2 > 1,级数发散。 - -· 若 0 < $\alpha$ < 1,极限为 $\infty$ > 1,级数发散。 - -4. 答案 - - 当$\alpha$>1时收敛,当 0 < $\alpha$ < 1 时发散 - ->[!example] **习题1** -级数 $$\displaystyle \sum_{n=1}^{\infty} \frac{(2n)!}{(n!)^2} \cdot \frac{1}{5^n}$$ 的敛散性是 - -A. 收敛 - -B. 发散 - -C. 无法判断 - - -**解析** -$$a_n = \frac{(2n)!}{(n!)^2 \cdot 5^n}$$ - -$$\frac{a_{n+1}}{a_n} - -= \frac{(2n+2)!}{((n+1)!)^2 \cdot 5^{n+1}} \cdot \frac{(n!)^2 \cdot 5^n}{(2n)!}$$ -化简: -$$\frac{(2n+2)!}{(2n)!} = (2n+2)(2n+1)$$ -$$\frac{(n!)^2}{((n+1)!)^2} = \frac{1}{(n+1)^2}$$ - -$$\frac{5^n}{5^{n+1}} = \frac15$$ -所以 - -$$\frac{a_{n+1}}{a_n} = \frac{(2n+2)(2n+1)}{(n+1)^2} \cdot \frac15 -= \frac{2(2n+1)}{n+1} \cdot \frac15$$ -$$\lim_{n\to\infty} \frac{4n+2}{5(n+1)} = \frac{4}{5} < 1$$ -所以收敛。 - -答案:A - ->[!example] **习题2** -级数 $\displaystyle \sum_{n=1}^{\infty} \frac{3^n}{n^2}$ 的敛散性是 - -A. 收敛 - -B. 发散 - -C. 无法判断 - -解 -$$a_n = \frac{3^n}{n^2}$$ -$$\frac{a_{n+1}}{a_n} = \frac{3^{n+1}}{(n+1)^2} \cdot \frac{n^2}{3^n} - -= 3 \cdot \frac{n^2}{(n+1)^2}$$ -$$\lim_{n\to\infty} 3 \cdot \frac{n^2}{(n+1)^2} = 3 > 1$$ - -所以发散。 - -答案:B \ No newline at end of file diff --git a/Chapter 2-3 极限/比较判别法.md b/Chapter 2-3 极限/比较判别法.md deleted file mode 100644 index cd07a96..0000000 --- a/Chapter 2-3 极限/比较判别法.md +++ /dev/null @@ -1,97 +0,0 @@ -### Quick Description - -#### 原理 -不等式形式:放缩,大敛则小敛,小散则大散 -极限形式:比值的极限为常数,则同敛散 -#### 适用情况 -正项级数 -#### 优势和劣势 -放缩在高中有知识基础,比较好上手 -与比值/根值判别法不同,判定出变号级数的绝对值发散后,无法得到原级数发散 -### 例子 -#例一 -判断级数$\sum_{n=2}^{\infty} \sin\left(\frac{1}{\ln n} \right)$的敛散性 - -设 $a_n = \sin\left( \frac{1}{\ln n} \right)$,其中 $n \geq 2$ 。记其前n项和为$S_n$。 -由于当 $n \geq 2$ 时,有 $\frac{1}{\ln n} > 0$ ,且 $\sin n > \frac{n}{2}$ ,因此存在 $N$ ,使得当$n > N$时,$q_n = \sin\left( \frac{1}{\ln n} \right) > \frac{1}{2} \cdot \frac{1}{\ln n} > \frac{1}{2n}.$ -记$\sum \frac{1}{2n}$的前$n$项和为$T_n$。 -由于 $\lim_{n \to \infty} S_n > \lim_{n \to \infty} T_n, \quad \text{而} \quad \lim_{n \to \infty} T_n = +\infty,$ -因此 $\lim_{n \to \infty} S_n = +\infty.$ -故级数 $\sum_{n=2}^{\infty} \sin\left( \frac{1}{\ln n} \right)$ 发散。 - -#例二 -**基础练习** - -1. **下列级数中收敛的有\_\_\_\_\_\_**。 - - A $\sin \frac{\pi}{2} + \sin \frac{\pi}{2^2} + \sin \frac{\pi}{2^3} + \cdots$ - B $\sum_{n=1}^{\infty} \frac{1}{5^n} \cdot \frac{3n^3 + 2n^2}{4n^3 + 1}$ - C $\sum_{n=1}^{\infty} \frac{1}{(a+n-1)(a+n)(a+n+1)} \quad (a>0)$ - D $\sum_{n=1}^{\infty} \frac{1}{n\sqrt[n]{n}}$ - E $\sum_{n=1}^{\infty} \frac{1}{n} \arctan \frac{n}{n+1}$ - F $\sum_{n=1}^{\infty} \frac{\sqrt{n+\sqrt{n}}}{n^2+1}$ - - **参考答案:ABCF. - - **A** 由于 $0 < \sin \frac{\pi}{2^n} \leq \frac{\pi}{2^n}$,且几何级数 $\sum_{n=1}^{\infty} \frac{\pi}{2^n}$ 收敛,故原级数收敛。 - - **B** 由于 $\lim_{n \to \infty} \left( \frac{1}{5^n} \cdot \frac{3n^3 + 2n^2}{4n^3 + 1} \right) / \left( \frac{1}{5^n} \right) = \frac{3}{4}$,又几何级数 $\sum_{n=1}^{\infty} \frac{1}{5^n}$ 收敛,故原级数收敛。 - - **C** 由于 $\lim_{n \to \infty} \left( \frac{1}{(a+n-1)(a+n)(a+n+1)} \right) / \left( \frac{1}{n^3} \right) = 1$,而级数 $\sum_{n=1}^{\infty} \frac{1}{n^3}$ 收敛,故原级数收敛。(或由 $\frac{1}{(a+n-1)(a+n)(a+n+1)} \leq \frac{1}{(a+n-1)^3} < \frac{1}{(n-1)^3} \;(n>1)$) - - **D** 由于 $\lim_{n \to \infty} \frac{1}{n\sqrt[n]{n}} / \frac{1}{n} = \lim_{n \to \infty} \frac{1}{\sqrt[n]{n}} = 1$,级数 $\sum_{n=1}^{\infty} \frac{1}{n}$ 发散,故原级数发散。 - - **E** 由于 $\lim_{n \to \infty} \left( \frac{1}{n} \cdot \arctan \frac{n}{n+1} \right) / \frac{1}{n} = \frac{\pi}{4}$,又级数 $\sum_{n=1}^{\infty} \frac{1}{n}$ 发散,故原级数发散。 - - **F** 由于 $\lim_{n \to \infty} \frac{\sqrt{n+\sqrt{n}}}{n^2+1} / \frac{1}{n^{3/2}} = \lim_{n \to \infty} \sqrt{1+\frac{1}{\sqrt{n}}} / \left( 1+\frac{1}{n^2} \right) = 1$,又 $\sum_{n=1}^{\infty} \frac{1}{n^{3/2}}$ 收敛,故原级数收敛。 - - - - -练习: -**判定断下列级数的敛散性:** -A.收敛 B.发散 -(1) $\sum_{n=1}^{\infty} \frac{\sqrt{n+1}-\sqrt{n}}{n}$ -(2) $\sum_{n=1}^{\infty} (\sqrt[n]{a}-1) \quad (a>0)$ - - - -解答: -**(1)** 由于 -$a_n = \frac{\sqrt{n+1}-\sqrt{n}}{n} = \frac{1}{n(\sqrt{n+1}+\sqrt{n})} < \frac{1}{n \cdot 2\sqrt{n}} = \frac{1}{2n^{3/2}}$, -而 $\sum_{n=1}^\infty \frac{1}{n^{3/2}}$ 收敛,故由比较判别法知原级数收敛。 - -**(2)** - -- 当 $a = 1$ 时,通项 $\sqrt[n]{a}-1 = 0$,级数为 $\sum_{n=1}^\infty 0$,收敛。 - -- 当 $a > 1$ 时,级数为正项级数。由于 - $\lim\limits_{n\to\infty} \frac{\sqrt[n]{a}-1}{1/n} = \lim\limits_{n\to\infty} \frac{e^{(\ln a)/n} - 1}{1/n} = \ln a > 0$, - 而 $\sum_{n=1}^\infty \frac{1}{n}$ 发散,故此时级数发散。 - -- 当 $0 < a < 1$ 时,级数为负项级数。考虑 $\sum_{n=1}^\infty (1-\sqrt[n]{a})$, - $\lim\limits_{n\to\infty} \frac{1-\sqrt[n]{a}}{1/n} = -\ln a > 0$,同理级数发散。 - - -综上,级数当 $a = 1$ 时收敛,当 $a>0$ 且 $a \neq 1$ 时发散。 - - - - -**判定断下列级数的敛散性:** -A.收敛 B.发散 -(1) $\sum_{n=1}^{\infty} \frac{3+(-1)^n}{2^{n+1}}$ -(2) $\sum_{n=1}^{\infty} \ln\left(1+\frac{1}{n}\right)$ -(3) $\sum_{n=2}^{\infty} \frac{1}{(\ln n)^n}$ - - - -**(1)** 由于 -$a_n = \frac{3+(-1)^n}{2^{n+1}} \le \frac{4}{2^{n+1}} = \frac{1}{2^{,n-1}}$, -而 $\sum_{n=1}^\infty \frac{1}{2^{,n-1}}$ 收敛,由比较判别法知原级数收敛。 - -**(2)** 方法一: -$\lim\limits_{n\to\infty} \frac{\ln!\left(1+\frac{1}{n}\right)}{1/n} = 1$,而 $\sum_{n=1}^\infty \frac{1}{n}$ 发散,故原级数发散。 - -方法二: -部分和 -$S_n = \sum_{k=1}^n \ln\left(1+\frac{1}{k}\right) = \sum_{k=1}^n [\ln(k+1) - \ln k] = \ln(n+1) \to +\infty$, -故级数发散。 - -**(3)** 当 $n > e^2$ 时,$\ln n > 2$,从而 $\frac{1}{(\ln n)^n} < \frac{1}{2^{,n}}$。 -由于 $\sum_{n=2}^\infty \frac{1}{2^{,n}}$ 收敛,由比较判别法知原级数收敛。 - diff --git a/Chapter 2-3 极限/部分和判别法.md b/Chapter 2-3 极限/部分和判别法.md deleted file mode 100644 index 28daa1b..0000000 --- a/Chapter 2-3 极限/部分和判别法.md +++ /dev/null @@ -1,392 +0,0 @@ - -## **原理** - -对于级数 $\sum_{n=1}^{\infty}u_n$,构造其部分和数列 $S_n=u_1+u_2+\dots+u_n$。若极限 $\lim\limits_{n\to\infty}S_n=S$(S 为有限常数),则级数收敛,且和为 S;若该极限不存在(或为无穷大),则级数发散。 - -## **适用情况** - -适用于部分和可通过公式化简求和的级数,典型类型包括: - -1.等比级数:$\sum_{n=1}^{\infty}aq^{n-1}(a\neq0)$,部分和 $S_n=\frac{a(1-q^n)}{1-q}$; - -2.裂项相消型级数:如 $\sum_{n=1}^{\infty}\frac{1}{n(n+1)}$,通项可拆为 $\frac{1}{n}-\frac{1}{n+1}$,部分和可逐项抵消化简; - -3. 少数可通过错位相减、分组求和的特殊级数。 - -## **优势** - -1. 本质性强:直接基于级数收敛的定义,判定结果准确,还能同时求出级数的和,这是比值、比较判别法等无法做到的。 - -2. 无形式限制:不像比值判别法依赖通项的阶乘、指数结构,只要部分和能化简,任何类型级数都适用。 - -## **劣势** - -1. 适用范围极窄:绝大多数级数的部分和无法用初等函数化简(如调和级数 $\sum\frac{1}{n}$、$\sum\frac{n}{2^n}$虽能判定敛散性,但部分和无简单表达式)。 - -2. 计算难度高:裂项、错位相减等求和技巧性强,对复杂通项不易找到化简方法。 - -3. 效率低:对比判别法,求部分和的步骤通常更繁琐,不适用于快速判定敛散性。 - -## **例子** - ->[!example] **例1** ->判定级数 $\sum_{n=1}^{\infty}\frac{2}{(2n-1)(2n+1)}$的敛散性,若收敛求其和 - -解析 - -1.  裂项变形 - -   $\frac{2}{(2n-1)(2n+1)}=\frac{1}{2n-1}-\frac{1}{2n+1}$ - -2.  求部分和 - -   $S_n=\sum_{k=1}^{n}\left(\frac{1}{2k-1}-\frac{1}{2k+1}\right) = \left(1-\frac{1}{3}\right)+\left(\frac{1}{3}-\frac{1}{5}\right)+\dots+\left(\frac{1}{2n-1}-\frac{1}{2n+1}\right) = 1-\frac{1}{2n+1}$ - -3.  取极限 - -   $\lim_{n \to \infty}S_n=\lim_{n \to \infty}\left(1-\frac{1}{2n+1}\right)=1$ - -4.  结论:该级数 **收敛**,和为 \( 1 \) - ->[!example] **例2** -判断级数$\sin \frac{\pi}{6} + \sin \frac{2\pi}{6} + \cdots + \sin \frac{n\pi}{6} + \cdots$的敛散性 - -解析: - -1. 已知公式 - -由积化和差公式: - -$2\sin A \sin B = \cos(A-B) - \cos(A+B)$ - -令  $A = k\theta$, $B = \frac{\theta}{2}$ ,则: - -$2\sin(k\theta) \sin\left( \frac{\theta}{2} \right) = \cos\left( k\theta - \frac{\theta}{2} \right) - \cos\left( k\theta + \frac{\theta}{2} \right)$ - -$= \cos\left( (k - \tfrac12)\theta \right) - \cos\left( (k + \tfrac12)\theta \right)$ - -因此: - -$\boxed{\sin(k\theta) = \frac{\cos\left( (k - \tfrac12)\theta \right) - \cos\left( (k + \tfrac12)\theta \right)}{ 2\sin\frac{\theta}{2} }}$ - -这是一个裂项公式,因为对 k 求和时,中间项会消去。 - -2. 应用到本题 - -题中级数为: - -$\sum_{k=1}^{\infty} \sin\left( \frac{k\pi}{6} \right)$ - -这里  $\theta = \frac{\pi}{6}$ , $\sin\frac{\theta}{2}$ = $\sin\frac{\pi}{12} \neq 0$。 - -利用上面裂项公式,记 - -$a_k = \sin\left( \frac{k\pi}{6} \right)$ - -$= \frac{\cos\left( \frac{(k - \frac12)\pi}{6} \right) - \cos\left( \frac{(k + \frac12)\pi}{6} \right)}{2\sin\frac{\pi}{12}}$ - -即 - -$a_k = \frac{1}{2\sin\frac{\pi}{12}} \left[ \cos\left( \frac{(2k-1)\pi}{12} \right) - \cos\left( \frac{(2k+1)\pi}{12} \right) \right]$ - -3. 求部分和 $S_n$ - -$S_n = \sum_{k=1}^n a_k$ - -$= \frac{1}{2\sin\frac{\pi}{12}} \sum_{k=1}^n \left[ \cos\frac{(2k-1)\pi}{12} - \cos\frac{(2k+1)\pi}{12} \right]$ - -记 $C_m = \cos\frac{(2m-1)\pi}{12}$,则: - -$\sum_{k=1}^n \left[ C_k - C_{k+1} \right]$ - -这是一个裂项和: - -$\sum_{k=1}^n (C_k - C_{k+1}) = C_1 - C_{n+1}$ - -其中 - -$C_1 = \cos\frac{(2\cdot 1 - 1)\pi}{12} = \cos\frac{\pi}{12}$ - -$C_{n+1} = \cos\frac{(2(n+1)-1)\pi}{12} = \cos\frac{(2n+1)\pi}{12}$ - -因此: - -$S_n = \frac{1}{2\sin\frac{\pi}{12}} \left[ \cos\frac{\pi}{12} - \cos\frac{(2n+1)\pi}{12} \right]$ - -4. 分析极限 - -当 $n \to \infty$ 时, $\frac{(2n+1)\pi}{12} \mod 2\pi$  在 $[0, 2\pi)$ 内不趋于一个固定值,而是周期性地取多个不同值。 - -事实上,$\cos\frac{(2n+1)\pi}{12}$ 的值在 $n$ 增加时振荡,不会趋于一个常数。 - -因此: - -$\lim_{n\to\infty} S_n \quad \text{不存在。}$ - -**习题1** - -级数 - -$\sum_{n=1}^{\infty} \frac{2n+1}{n^2(n+1)^2}$ - -\]   - -的和为 - -A. 0 - -B. 1 - -C. 2 - -D. 不存在(发散) - -解: - -观察 - -$\frac{2n+1}{n^2(n+1)^2} = \frac{(n+1)^2 - n^2}{n^2(n+1)^2} = \frac{1}{n^2} - \frac{1}{(n+1)^2}$ - -部分和: - -$S_N = \sum_{n=1}^N \left[ \frac{1}{n^2} - \frac{1}{(n+1)^2} \right] = 1 - \frac{1}{(N+1)^2} \to 1$ - -收敛到 1。 - -答案:B - -**习题2** - -级数 - -$\sum_{n=1}^{\infty} \left( \sqrt{n+2} - 2\sqrt{n+1} + \sqrt{n} \right)$ - -\]   - -的敛散性是 - -A. 收敛到 0 - -B. 收敛到 $1 - \sqrt{2}$ - -C. 收敛到 $\sqrt{2} - 2$ - -D. 发散 - -解: - -观察通项: - -设 $a_n = \sqrt{n}$,则 - -$a_{n+2} - 2a_{n+1} + a_n = (a_{n+2} - a_{n+1}) - (a_{n+1} - a_n)$ - -\]   - -记 $b_n = a_{n+1} - a_n = \sqrt{n+1} - \sqrt{n}$,则 - -原通项 = $b_{n+1} - b_n$。 - -部分和: - -$S_N = \sum_{n=1}^N (b_{n+1} - b_n) = b_{N+1} - b_1$ - -\]   - -$b_{N+1} = \sqrt{N+2} - \sqrt{N+1}, \quad b_1 = \sqrt{2} - 1$ - -\]   - -因此 - -$S_N = (\sqrt{N+2} - \sqrt{N+1}) - (\sqrt{2} - 1)$ - -\]   - -当 $N \to \infty,\sqrt{N+2} - \sqrt{N+1} \to 0$,所以 - -$lim_{N\to\infty} S_N = 1 - \sqrt{2}$ - -\]   - -收敛到 $1 - \sqrt{2}$。 - -答案:B - -# **级数运算性质判别法** - -## **原理** - -1. 线性运算性质的应用 - -设$\sum u_n、\sum v_n$ 为已知敛散性的级数,k 为非零常数: - -- 若 $\sum u_n$ 收敛,则 $\sum ku_n$ 收敛;若 $\sum u_n$ 发散,则 $\sum ku_n$ 发散。 - -- 若 $\sum u_n$ 和 $\sum v_n$ 都收敛,则 $\sum(u_n\pm v_n)$ 收敛。 - -- 若 $\sum u_n$ 收敛、$\sum v_n$ 发散,则 $\sum(u_n\pm v_n)$ 发散。 - -注:若两者都发散,$\sum(u_n\pm v_n)$ 敛散性不确定。 - -2. 添减/改变有限项性质的应用 - -对任意级数,增加、去掉或改变有限项,不改变其敛散性。 - -例:$\sum_{n=3}^{\infty}\frac{1}{2^n}$ 收敛,因为它是收敛等比级数 $\sum_{n=1}^{\infty}\frac{1}{2^n}$ 去掉前2项得到的。 - -3. 正项级数重组性质的应用 - -若正项级数 $\sum u_n$ 收敛,任意重排其项得到的新级数仍收敛,且和不变。 - -## **适用情况** - -1. 待判定级数可拆分为两个或多个已知敛散性的级数的线性组合(如 $\sum (u_n\pm v_n)、\sum ku_n)$。 - -2. 级数仅增减、改变有限项,或对正项级数进行项的重组。 - -3. 已知级数多为基础类型(等比级数、$p$-级数、调和级数等),便于直接套用性质。 - -## **优势** - -1. 快捷高效:无需计算极限或构造不等式,直接利用已知结论推导,步骤简洁。 - -2. 既适用于正项级数,也适用于任意项级数(如交错级数)。 - -## **劣势** - -1. 依赖性强:必须依赖已知敛散性的“参考级数”,若无法拆分或无合适参考级数,则无法使用。 - -2. 有局限性:对于 $\sum u_n$ 和 $\sum v_n$ 均发散的情况,$\sum (u_n\pm v_n)$ 的敛散性无法直接判定,性质失效。 - -## **例子** - ->[!example] **例1** ->判断级数$\sum_{n=1}^{\infty} (-1)^n \frac{n+2}{n+1} \cdot \frac{1}{\sqrt{n}}$的敛散性。 - -解析: - -原级数: - -$S = \sum_{n=1}^\infty (-1)^n \frac{n+2}{n+1} \cdot \frac{1}{\sqrt{n}}.$ - -将 $\frac{n+2}{n+1}$ 写成: - -$\frac{n+2}{n+1} = 1 + \frac{1}{n+1}.$ - -于是通项: - -$(-1)^n \frac{1}{\sqrt{n}} \cdot \left( 1 + \frac{1}{n+1} \right)$ - -$= (-1)^n \frac{1}{\sqrt{n}} \;+\; (-1)^n \frac{1}{\sqrt{n} \,(n+1)}.$ - -记 - -$u_n = (-1)^n \frac{1}{\sqrt{n}}, \quad v_n = (-1)^n \frac{1}{\sqrt{n} \, (n+1)}.$ - -则原级数: - -$S = \sum_{n=1}^\infty u_n \;+\; \sum_{n=1}^\infty v_n.$ - -第一项:$\sum_{n=1}^\infty u_n = \sum_{n=1}^\infty (-1)^n \frac{1}{\sqrt{n}}$。 - -· 这是交错 $p$-级数, $p = \frac12 < 1$,不绝对收敛; - -· 由莱布尼茨判别法($1/\sqrt{n} 单调递减趋于 0$)⇒ 条件收敛。 - -第二项:$\sum_{n=1}^\infty v_n$,比较 $v_n$ 的绝对值: - -$|v_n| = \frac{1}{\sqrt{n} \,(n+1)} \sim \frac{1}{n^{3/2}} \quad (n\to\infty).$ - -因为 $p = 3/2 > 1$,所以 $\sum |v_n|$ 收敛 ⇒ $\sum v_n$ 绝对收敛。 - -利用级数运算性质: - -已知 - -· 若两个级数 $\sum A_n 和 \sum B_n$ 都收敛,则 $\sum (A_n + B_n)$ 收敛(收敛级数的和收敛)。 - -· 若 $\sum A_n$ 条件收敛,$\sum B_n$ 绝对收敛,则 $\sum (A_n + B_n)$条件收敛(因为加一个绝对收敛级数不改变条件收敛的性质)。 - -这里: - -$S = \underbrace{\sum_{n=1}^\infty (-1)^n \frac{1}{\sqrt{n}}}_{\text{条件收敛}} \;+\; \underbrace{\sum_{n=1}^\infty (-1)^n \frac{1}{\sqrt{n}(n+1)}}_{\text{绝对收敛}}.$ - -因此 $S$ 是 条件收敛的级数 - ->[!example] **例2** -讨论级数$\sum_{n=2}^{\infty} \frac{(-1)^n}{\sqrt{n} + (-1)^n}$的敛散性 - -解析:先对通项有理化变形,再拆分为两个级数的和,结合级数运算性质判断 - -步骤1 通项有理化与变形 - -对通项分母有理化: -$$ - -\begin{align*} - -u_n &= \frac{(-1)^n}{\sqrt{n} + (-1)^n} \\ - -&= \frac{(-1)^n \left[\sqrt{n} - (-1)^n\right]}{\left[\sqrt{n} + (-1)^n\right]\left[\sqrt{n} - (-1)^n\right]} \\ - -&= \frac{(-1)^n \sqrt{n} - 1}{n - 1} \\ - -&= \frac{(-1)^n \sqrt{n}}{n - 1} - \frac{1}{n - 1} - -\end{align*} -$$ - -$\frac{(-1)^n \sqrt{n}}{n - 1}$用莱布尼兹判别法判断收敛 - -$\sum_{n=2}^{\infty} \frac{1}{n - 1}:令 k=n-1,级数变为 \sum_{k=1}^{\infty} \frac{1}{k}$(调和级数),**发散**。 - -根据级数运算性质:**收敛级数 + 收敛级数 - 发散级数 = 发散级数**。 - -因此,级数$\sum_{n=2}^{\infty} \frac{(-1)^n}{\sqrt{n} + (-1)^n}$**发散**。 - -**习题1** - -已知级数 $\sum_{n=1}^{\infty} a_n$ 收敛,$\sum_{n=1}^{\infty} b_n$ 发散,则以下说法正确的是( ) - -A. $\sum_{n=1}^{\infty} (a_n + b_n)$ 必收敛 - -B. $\sum_{n=1}^{\infty} (a_n + b_n)$ 必发散 - -C. $\sum_{n=1}^{\infty} (a_n b_n)$ 必发散 - -D. $\sum_{n=1}^{\infty} (a_n^2)$ 必收敛 - -解析: - -设 $s_n = a_1+\dots+a_n$ 收敛,$t_n = b_1+\dots+b_n$ 发散。 - -则 $a_n+b_n$ 的前 $n$ 项和 = $s_n + t_n$,收敛+发散 = 发散,故 B 正确。 - -反例:A 错。C:取 $a_n=\frac{(-1)^n}{\sqrt{n}}$(条件收敛),$b_n=(-1)^n$(发散),则 $a_n b_n = \frac{1}{\sqrt{n}}$ 发散,但这是特例,不是“必”发散,若 $a_n=\frac{1}{n^2}, b_n=n$,则 $a_n b_n = \frac{1}{n}$ 发散;若 $a_n=\frac{1}{n^2}, b_n=(-1)^n n$,则 $a_n b_n = \frac{(-1)^n}{n}$ 收敛(条件收敛)。所以 C 不对。D:反例 $a_n = \frac{(-1)^n}{\sqrt{n}}$ 收敛(条件收敛),但 $a_n^2 = \frac{1}{n}$ 发散。 - -答案:B - -**习题2** - -级数 $\sum_{n=1}^{\infty} \left( \frac{\sin n}{n^2} + \frac{(-1)^n}{n} \right)$ 的收敛性是: - -A. 绝对收敛 - -B. 条件收敛 - -C. 发散 - -D. 可能收敛可能发散 - -解析 - -拆成两个: - -1. $\sum \frac{\sin n}{n^2}:因 |\frac{\sin n}{n^2}| \le \frac{1}{n^2}$,绝对收敛。 - -2. $\sum \frac{(-1)^n}{n}$ 是交错调和级数,条件收敛。 - -   条件收敛 + 绝对收敛 = 条件收敛。 - -答案:B \ No newline at end of file diff --git a/Chapter 4 微积分基础/参数方程导数.md b/Chapter 4 微积分基础/参数方程导数.md deleted file mode 100644 index a6ba875..0000000 --- a/Chapter 4 微积分基础/参数方程导数.md +++ /dev/null @@ -1,16 +0,0 @@ - -已知 $\left\{ \begin{array}{c} x=x\left( t \right)\\ y=y\left( t \right)\\ \end{array} \right.$ - -$y'\left( t \right) =\frac{dy}{dt}$ -$x'\left( t \right)=\frac{dx}{dt}$ - - $y'=\frac{dy}{dx}=\frac{dy}{dt}\cdot \frac{1}{\frac{dx}{dt}}=\frac{y'\left( t \right)}{x'\left( t \right)}$ - -则有 $y''=\frac{d^2y}{dx^2}=\frac{dy'}{dx}=\frac{dy'}{dt}\cdot \frac{1}{\frac{dx}{dt}}=\frac{dy'}{dt}\cdot \frac{1}{x'\left( t \right)}=(\frac{y'(t)}{x'(t)})'\cdot \frac{1}{x'\left( t \right)}$ - -而 $\frac{y'(t)}{x'(t)}=\frac{y''\left( t \right) x'\left( t \right) -x''\left( t \right) y'\left( t \right)}{x'^2\left( t \right)}$ - -故 $y''=\frac{y''\left( t \right) x'\left( t \right) -x''\left( t \right) y'\left( t \right)}{x'^3\left( t \right)}$ - - - diff --git a/Chapter 4 微积分基础/应用题真题.md b/Chapter 4 微积分基础/应用题真题.md deleted file mode 100644 index 463ccf6..0000000 --- a/Chapter 4 微积分基础/应用题真题.md +++ /dev/null @@ -1,87 +0,0 @@ ->[!example] **例1**(2020) ->有一个正圆锥形漏斗,深度 $18 \text{ cm}$ ,上端口直径为 $12 \text{ cm}$ (即半径 $6 \text{ cm}$ )。漏斗下方连接一个圆柱形筒,圆柱筒直径为 $10 \text{ cm}$ (即半径 $5 \text{ cm}$ )。初始时刻漏斗内盛满水,然后水从漏斗流入圆柱筒。已知当漏斗中水深为 $12 \text{ cm}$ 时,漏斗水面下降的速度是 $1 \text{ cm/min}$ -问:此时圆柱筒内液面上升的速度是多少? - - -**解析**: -设 t (s)时漏斗水深为 h (cm),圆柱形容器的水深为 H (cm),则有 -$$\pi 5^2 H = V_0 - \frac{1}{3} \pi \left( \frac{6}{18} h \right)^2 h$$ -关于 t 求导数得 -$$25 \frac{dH}{dt} = -\frac{1}{9} h^2 \frac{dh}{dt}$$ -当 h = 12, $\frac{dh}{dt} = -1$ 时, -$$\frac{dH}{dt} = \frac{16}{25} \text{(cm/s)}$$ - - ->[!example] **例2** (2021) ->一长为 L 米的木梯靠在倾角为$\frac{\pi}{3}$的光滑斜坡上,木梯的顶部距离 A 点 h 米,底部距离 A 点 d 米,受重力作用木梯的顶部以 $a \, \mathrm{m/s}$ 的速度沿直线 BA 下滑,底部水平向右运动。问:当木梯的顶部和底部与 A 点的距离相等时,底部的水平速度为多少? ->![[2dc97df311b6179d9c28babc1848adfc.jpg]] - - - -**解析:** -设运动 t 秒后,木梯的顶部距离 A 点 $y(t) \, \mathrm{m}$ ,底部距离 A 点 $x(t) \, \mathrm{m}$ 。由图易知 -$$\left(y(t)\sin\frac{\pi}{3}\right)^2 + \left(x(t)+y(t)\cos\frac{\pi}{3}\right)^2 = L^2$$ -即 -$$x^2(t)+y^2(t)+x(t)y(t)=L^2$$ -方程两端分别对 t 求导,可得 -$$2x(t)x'(t)+2y(t)y'(t)+x(t)y'(t)+x'(t)y(t)=0$$ -由于 $y'(t)=-a \, (\mathrm{m/s})$ ,因此当 x(t)=y(t) 时,有 -$$2x'(t)-2a-a+x'(t)=0$$ -故 $$x'(t)=a \, (\mathrm{m/s})$$ - - ->[!example] **例3**(2023) ->有一个长度为5m的梯子贴靠在铅直的墙上,假设其下端沿地板以3m/s的速率离开墙脚而滑动,则 -(1) 何时梯子的上、下端能以相同的速率移动? -(2) 何时其上端下滑之速率为4m/s? - - -**解析:** -设在时刻 t ,梯子上端与墙角的距离为 $x(t) \, \mathrm{m}$ ,下端与墙角的距离为 $y(t) \, \mathrm{m}$ ,则 -$$x^2 + y^2 = 25$$ -两端同时对 t 求导数可得 -$$x \frac{dx}{dt} + y \frac{dy}{dt} = 0$$ - -(1) 当$\frac{dx}{dt} = -\frac{dy}{dt}$ 时,可得 x = y ,进而 $y = \frac{5}{\sqrt{2}} \, (\mathrm{m})$ , -即下端距墙脚 $\frac{5}{\sqrt{2}} \, \mathrm{m}$ 时上下端能以相同的速率移动。 - -(2) 当 $\frac{dy}{dt} = -4 \, (\mathrm{m/s})$ , $\frac{dx}{dt} = 3 \, (\mathrm{m/s})$ 时,有 $4x = 3y$ ,将其代入 $x^2 + y^2 = 25$ , -解得$y = 4 \, (\mathrm{m})$,即下端距墙脚4 m时,上端下滑速度为$4 m/s$ - - - ->[!example] **例4**(2022) ->某部举行八一阅兵,队列正步通过阅兵台时步幅间距离为75厘米,步速为每分钟112步。某观礼人员离行进队列垂直距离为60米,视线追随队列领队,求其视线与队列夹角为$\frac{\pi}{6}$时,视线转动角度的变化率。 - - - -**解析:** -- 建立几何模型:设时间为\(t\)分钟,步幅间距离0.75米,步速为每分钟112步,则队列行进距离$x = 0.75×112t = 84t$米。设视线与队列夹角为$theta$,由正切函数关系可得$tan\theta=\frac{x}{60}$,即$\tan\theta=\frac{84t}{60}=\frac{7t}{5}$。 -- 两边对$t$求导:根据复合函数求导法则 -$$(tan\theta)^\prime=\sec^{2}\theta\cdot\frac{d\theta}{dt})$$对$tan\theta=\frac{7t}{5}$两边求导得$$sec^{2}\theta\cdot\frac{d\theta}{dt}=\frac{7}{5}$$ -求解:$\frac{d\theta}{dt}$:当$theta = \frac{\pi}{6}$时,$sec\theta=\frac{2}{\sqrt{3}}$,$sec^{2}\theta=\frac{4}{3}$,代入$sec^{2}\theta\cdot\frac{d\theta}{dt}=\frac{7}{5}$, - -可得$$\frac{4}{3}\cdot\frac{d\theta}{dt}=\frac{7}{5}$$解得$$\frac{d\theta}{dt}=\frac{21}{20}(弧度/分钟) -$$ -答案:视线转动角度的变化率为\(\frac{21}{20}\)弧度/分钟。本题主要考察了利用导数解决实际问题中的变化率问题,关键在于建立正确的函数关系并准确求导,易错点是复合函数求导法则的运用。 - - ->[!example] **例5**(2024) ->一架巡逻直升机在距离地面3km的高度以120km/h的速度沿着一条水平笔直的高速公路向前飞行。飞行员观察到迎面驶来一辆汽车,通过雷达测出直升机与汽车的距离为5km,同时此距离以160km/h的速率在减少。试求此时汽车行进的速度。 - - - -**解析**: - -如图建立直角坐标系,设时刻 t直升机位于 A点 (x1​(t),3),汽车位于 B点 (x2​(t),0),直升机与汽车的距离为 z(t),则 - -$$(x2​(t)−x1​(t))2+32=z2(t)$$ - -方程两端分别对 t求导,可得 -$$(x2​(t)−x1​(t))(x2′​(t)−x1′​(t))=z(t)z′(t)$$ - -由于 $z(t)=5$时,$x2​(t)−x1​(t)=4$,$z′(t)=−160$,$x1′​(t)=120$,有 - -$$4(x2′​(t)−120)=5×(−160)$$ - -故 $x2′​(t)=−80$,即汽车行进的速度为 $80km/h$。 \ No newline at end of file diff --git a/Chapter 4 微积分基础/相关变化率(1).md b/Chapter 4 微积分基础/相关变化率(1).md deleted file mode 100644 index 2e3fe4e..0000000 --- a/Chapter 4 微积分基础/相关变化率(1).md +++ /dev/null @@ -1,150 +0,0 @@ -# 飞机航空摄影问题 - -## 问题描述 - -一飞机在离地面2 km的高度,以200 km/h的速度水平飞行到某目标上空,以便进行航空摄影。试求飞机飞至该目标正上方时,摄影机转动的角速率。 - -## 解析 - -### 建立坐标系 - -目标位置:原点 $O(0,0)$ -飞机位置:$P(x,2)$ -飞机高度:$h = 2$ km -水平速度:$\frac{dx}{dt} = -200$ km/h - -### 角度关系 - -$\theta = \arctan\left(\frac{x}{2}\right)$ -$\tan\theta = \frac{x}{2}$ - -### 角速率计算 - -$\frac{d\theta}{dt} = \frac{d\theta}{dx} \cdot \frac{dx}{dt}$ - -$\frac{d\theta}{dx} = \frac{d}{dx} \arctan\left(\frac{x}{2}\right) = \frac{1}{1 + \left(\frac{x}{2}\right)^2} \cdot \frac{1}{2} = \frac{2}{x^2 + 4}$ - -$\frac{d\theta}{dt} = \frac{2}{x^2 + 4} \cdot (-200) = -\frac{400}{x^2 + 4}$ rad/h - -### 目标正上方时的角速率 - -当 $x = 0$ 时: - -$\left. \frac{d\theta}{dt} \right|_{x=0} = -\frac{400}{0 + 4} = -100$ rad/h - -转换单位: - -$100$ rad/h $= 100 \times \frac{180}{\pi}$ °/h $= \frac{18000}{\pi}$ °/h - -$\frac{18000}{\pi}$ °/h $\times \frac{1}{3600}$ h/s $= \frac{5}{\pi}$ °/s $\approx 1.59$ °/s - -## 答案 - -飞机飞至目标正上方时,摄影机转动的角速率为 $\frac{5}{\pi}$ °/s(约1.59 °/s)。 - ---- - -# 人拉船问题 - -## 问题描述 - -人在河岸用绳经过定滑轮以速度 $v$、加速度 $a$ 拉船。绳与水平面夹角为 $\theta$。求此时船的加速度 $a'$。 -![[Pasted image 20251223173057.png]] -## 解析 - -### 变量定义 - -$h$:滑轮高度(定值) -$x$:船到河岸的水平距离 -$l$:绳长 -$v = -\frac{dl}{dt}$:人拉绳的速度 -$a = -\frac{d^2l}{dt^2}$:人拉绳的加速度 -$u = -\frac{dx}{dt}$:船的水平速度 -$a' = -\frac{d^2x}{dt^2}$:船的加速度 -$\theta$:绳与水平面夹角 - -### 几何关系 - -$l^2 = h^2 + x^2$ - -### 一阶导数关系 - -对几何关系求导:$2l\frac{dl}{dt} = 2x\frac{dx}{dt}$ - -$l\frac{dl}{dt} = x\frac{dx}{dt}$ - -代入速度定义:$l(-v) = x(-u)$ - -$u = \frac{l}{x}v = \frac{v}{\cos\theta}$,其中 $\cos\theta = \frac{x}{l}$ - -### 二阶导数关系 - -对一阶关系求导:$\frac{d}{dt}\left(l\frac{dl}{dt}\right) = \frac{d}{dt}\left(x\frac{dx}{dt}\right)$ - -$\left(\frac{dl}{dt}\right)^2 + l\frac{d^2l}{dt^2} = \left(\frac{dx}{dt}\right)^2 + x\frac{d^2x}{dt^2}$ - -$(-v)^2 + l(-a) = (-u)^2 + x(-a')$ - -$v^2 - la = u^2 - xa'$ - -### 求解 $a'$ - -$xa' = u^2 - v^2 + la$ - -$a' = \frac{u^2 - v^2 + la}{x}$ - -代入 $u = \frac{v}{\cos\theta}$, $x = h\tan\theta$, $l = \frac{h}{\cos\theta}$: - -$a' = \frac{\left(\frac{v}{\cos\theta}\right)^2 - v^2 + \left(\frac{h}{\cos\theta}\right)a}{h\tan\theta}$ - -$a' = \frac{v^2\left(\frac{1}{\cos^2\theta} - 1\right)}{h\tan\theta} + \frac{\frac{h}{\cos\theta}a}{h\tan\theta}$ - -$a' = \frac{v^2\tan^2\theta}{h\tan\theta} + \frac{a}{\cos\theta\tan\theta}$ - -$a' = \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta}$ - -## 答案 - -此时船的加速度为: -$a' = \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta}$ - ---- - -# 动点曲线运动问题 - -## 问题描述 - -已知动点 $P$ 在曲线 $y = \sqrt{x}$ 上运动,记坐标原点 $O$ 与 $P$ 间的距离为 $l$。若点 $P$ 横坐标随时间的变化率为常数 $v$,则当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率是多少? - -## 解析 - -### 变量关系 - -点 $P$ 坐标:$(x, y)$, $y = \sqrt{x}$ - -原点 $O$ 与 $P$ 间的距离: -$l = \sqrt{x^2 + y^2} = \sqrt{x^2 + (\sqrt{x})^2} = \sqrt{x^2 + x}$ - -已知:$\frac{dx}{dt} = v$(常数) - -### 距离变化率计算 - -$\frac{dl}{dt} = \frac{d}{dt} \sqrt{x^2 + x} = \frac{d}{dt} (x^2 + x)^{1/2}$ - -$\frac{dl}{dt} = \frac{1}{2}(x^2 + x)^{-1/2} \cdot \frac{d}{dt}(x^2 + x)$ - -$\frac{dl}{dt} = \frac{1}{2\sqrt{x^2 + x}} \cdot (2x + 1) \frac{dx}{dt}$ - -$\frac{dl}{dt} = \frac{2x + 1}{2\sqrt{x^2 + x}} \cdot v$ - -### 在点 $(1, 1)$ 处的变化率 - -当 $x = 1$ 时: - -$\left. \frac{dl}{dt} \right|_{x=1} = \frac{2\cdot 1 + 1}{2\sqrt{1^2 + 1}} \cdot v = \frac{3}{2\sqrt{2}} \cdot v = \frac{3v}{2\sqrt{2}}$ - -有理化:$\frac{3v}{2\sqrt{2}} = \frac{3v\sqrt{2}}{4}$ - -## 答案 - -当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率为 $\frac{3v\sqrt{2}}{4}$。 \ No newline at end of file diff --git a/Chapter 4 微积分基础/相关变化率(2).md b/Chapter 4 微积分基础/相关变化率(2).md deleted file mode 100644 index 8821fc2..0000000 --- a/Chapter 4 微积分基础/相关变化率(2).md +++ /dev/null @@ -1,152 +0,0 @@ -#### 飞机航空摄影问题 - -##### 问题描述 - ->[!example] 例题 ->一飞机在离地面$2 km$的高度,以$200 km/h$的速度水平飞行到某目标上空,以便进行航空摄影。试求飞机飞至该目标正上方时,摄影机转动的角速率。 - -解析: - -1、建立坐标系 - -目标位置:原点 $O(0,0)$ -飞机位置:$P(x,2)$ -飞机高度:$h = 2 km$ -水平速度:$\frac{dx}{dt} = -200 km/h$ - -2、角度关系 - -$$ -\theta = \arctan\left(\frac{x}{2}\right), -\tan\theta =\frac{x}{2} -$$ - -3、角速率计算 - -$$\frac{d\theta}{dt} = \frac{d\theta}{dx} \cdot \frac{dx}{dt}$$ -$$\frac{d\theta}{dx} = \frac{d}{dx} \arctan\left(\frac{x}{2}\right) = \frac{1}{1 + \left(\frac{x}{2}\right)^2} \cdot \frac{1}{2} = \frac{2}{x^2 + 4}$$ -$$\frac{d\theta}{dt} = \frac{2}{x^2 + 4} \cdot (-200) = -\frac{400}{x^2 + 4} rad/h$$ - -4、目标正上方时的角速率 - -当 $x = 0$ 时: - -$$\left. \frac{d\theta}{dt} \right|_{x=0} = -\frac{400}{0 + 4} = -100 rad/h$$ - -5、转换单位: - -$$100 rad/h = 100 \times \frac{180}{\pi} °/h = \frac{18000}{\pi} °/h, - -\frac{18000}{\pi} °/h \times \frac{1}{3600} h/s = \frac{5}{\pi} °/s \approx 1.59 °/s$$ - -答案: - -飞机飞至目标正上方时,摄影机转动的角速率为 $\frac{5}{\pi} °/s$(约$1.59 °/s$)。 - ---- - -#### 人拉船问题 - -##### 问题描述 - ->[!example] 例题 ->人在河岸用绳经过定滑轮以速度 $v$、加速度 $a$ 拉船。绳与水平面夹角为 $\theta$。求此时船的加速度 $a'$。 - -![[Pasted image 20251223173057.png]] -解析 - -1、 变量定义 - -$h$:滑轮高度(定值) -$x$:船到河岸的水平距离 -$l$:绳长 -$v = -\frac{dl}{dt}$:人拉绳的速度 -$a = -\frac{d^2l}{dt^2}$:人拉绳的加速度 -$u = -\frac{dx}{dt}$:船的水平速度 -$a' = -\frac{d^2x}{dt^2}$:船的加速度 -$\theta$:绳与水平面夹角 - -2、几何关系 - -$l^2 = h^2 + x^2$ - -3、 一阶导数关系 - -对几何关系求导:$$2l\frac{dl}{dt} = 2x\frac{dx}{dt}, - -l\frac{dl}{dt} = x\frac{dx}{dt}$$ - -代入速度定义:$l(-v) = x(-u)$ - -$$u = \frac{l}{x}v = \frac{v}{\cos\theta},其中 \cos\theta = \frac{x}{l}$$ - -4、 二阶导数关系 - -对一阶关系求导:$$\frac{d}{dt}\left(l\frac{dl}{dt}\right) = \frac{d}{dt}\left(x\frac{dx}{dt}\right)$$ - -$$\left(\frac{dl}{dt}\right)^2 + l\frac{d^2l}{dt^2} = \left(\frac{dx}{dt}\right)^2 + x\frac{d^2x}{dt^2}$$ - -$$(-v)^2 + l(-a) = (-u)^2 + x(-a')$$ - -$$v^2 - la = u^2 - xa'$$ - -5、 求解 $a'$ - -$$xa' = u^2 - v^2 + la, - -a' = \frac{u^2 - v^2 + la}{x}$$ - -代入 $u = \frac{v}{\cos\theta}$, $x = h\tan\theta$, $l = \frac{h}{\cos\theta}$: - -$$\begin{aligned} -a' &= \frac{\left(\frac{v}{\cos\theta}\right)^2 - v^2 + \left(\frac{h}{\cos\theta}\right)a}{h\tan\theta}\\[1em] - &= \frac{v^2\left(\frac{1}{\cos^2\theta} - 1\right)}{h\tan\theta} + \frac{\frac{h}{\cos\theta}a}{h\tan\theta}\\[1em] - &= \frac{v^2\tan^2\theta}{h\tan\theta} + \frac{a}{\cos\theta\tan\theta}\\[1em] - &= \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta} -\end{aligned}$$ - - 答案: - -此时船的加速度为: -$$a' = \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta}$$ - ---- - -#### 动点曲线运动问题 - -##### 问题描述 - ->[!example] 例题 ->已知动点 $P$ 在曲线 $y = \sqrt{x}$ 上运动,记坐标原点 $O$ 与 $P$ 间的距离为 $l$。若点 $P$ 横坐标随时间的变化率为常数 $v$,则当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率是多少? - -解析: - -1、 变量关系 - -点 $P$ 坐标:$(x, y)$, $y = \sqrt{x}$ - -原点 $O$ 与 $P$ 间的距离: -$$l = \sqrt{x^2 + y^2} = \sqrt{x^2 + (\sqrt{x})^2} = \sqrt{x^2 + x}$$ - -已知:$\frac{dx}{dt} = v$(常数) - -2、距离变化率计算 - -$$\begin{aligned} -\frac{dl}{dt} &= \frac{d}{dt} \sqrt{x^2 + x} = \frac{d}{dt} (x^2 + x)^{1/2}\\[1em] - &= \frac{1}{2}(x^2 + x)^{-1/2} \cdot \frac{d}{dt}(x^2 + x)\\[1em] - &= \frac{1}{2\sqrt{x^2 + x}} \cdot (2x + 1) \frac{dx}{dt}\\[1em] - &= \frac{2x + 1}{2\sqrt{x^2 + x}} \cdot v -\end{aligned}$$ - -3、在点 $(1, 1)$ 处的变化率 - -当 $x = 1$ 时: - -$$\left. \frac{dl}{dt} \right|_{x=1} = \frac{2\cdot 1 + 1}{2\sqrt{1^2 + 1}} \cdot v = \frac{3}{2\sqrt{2}} \cdot v = \frac{3v}{2\sqrt{2}}$$ - -有理化:$\frac{3v}{2\sqrt{2}} = \frac{3v\sqrt{2}}{4}$ - - 答案: - -当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率为 $\frac{3v\sqrt{2}}{4}$。 \ No newline at end of file diff --git a/Chapter 4 微积分基础/相关变化率.md b/Chapter 4 微积分基础/相关变化率.md deleted file mode 100644 index 2e3fe4e..0000000 --- a/Chapter 4 微积分基础/相关变化率.md +++ /dev/null @@ -1,150 +0,0 @@ -# 飞机航空摄影问题 - -## 问题描述 - -一飞机在离地面2 km的高度,以200 km/h的速度水平飞行到某目标上空,以便进行航空摄影。试求飞机飞至该目标正上方时,摄影机转动的角速率。 - -## 解析 - -### 建立坐标系 - -目标位置:原点 $O(0,0)$ -飞机位置:$P(x,2)$ -飞机高度:$h = 2$ km -水平速度:$\frac{dx}{dt} = -200$ km/h - -### 角度关系 - -$\theta = \arctan\left(\frac{x}{2}\right)$ -$\tan\theta = \frac{x}{2}$ - -### 角速率计算 - -$\frac{d\theta}{dt} = \frac{d\theta}{dx} \cdot \frac{dx}{dt}$ - -$\frac{d\theta}{dx} = \frac{d}{dx} \arctan\left(\frac{x}{2}\right) = \frac{1}{1 + \left(\frac{x}{2}\right)^2} \cdot \frac{1}{2} = \frac{2}{x^2 + 4}$ - -$\frac{d\theta}{dt} = \frac{2}{x^2 + 4} \cdot (-200) = -\frac{400}{x^2 + 4}$ rad/h - -### 目标正上方时的角速率 - -当 $x = 0$ 时: - -$\left. \frac{d\theta}{dt} \right|_{x=0} = -\frac{400}{0 + 4} = -100$ rad/h - -转换单位: - -$100$ rad/h $= 100 \times \frac{180}{\pi}$ °/h $= \frac{18000}{\pi}$ °/h - -$\frac{18000}{\pi}$ °/h $\times \frac{1}{3600}$ h/s $= \frac{5}{\pi}$ °/s $\approx 1.59$ °/s - -## 答案 - -飞机飞至目标正上方时,摄影机转动的角速率为 $\frac{5}{\pi}$ °/s(约1.59 °/s)。 - ---- - -# 人拉船问题 - -## 问题描述 - -人在河岸用绳经过定滑轮以速度 $v$、加速度 $a$ 拉船。绳与水平面夹角为 $\theta$。求此时船的加速度 $a'$。 -![[Pasted image 20251223173057.png]] -## 解析 - -### 变量定义 - -$h$:滑轮高度(定值) -$x$:船到河岸的水平距离 -$l$:绳长 -$v = -\frac{dl}{dt}$:人拉绳的速度 -$a = -\frac{d^2l}{dt^2}$:人拉绳的加速度 -$u = -\frac{dx}{dt}$:船的水平速度 -$a' = -\frac{d^2x}{dt^2}$:船的加速度 -$\theta$:绳与水平面夹角 - -### 几何关系 - -$l^2 = h^2 + x^2$ - -### 一阶导数关系 - -对几何关系求导:$2l\frac{dl}{dt} = 2x\frac{dx}{dt}$ - -$l\frac{dl}{dt} = x\frac{dx}{dt}$ - -代入速度定义:$l(-v) = x(-u)$ - -$u = \frac{l}{x}v = \frac{v}{\cos\theta}$,其中 $\cos\theta = \frac{x}{l}$ - -### 二阶导数关系 - -对一阶关系求导:$\frac{d}{dt}\left(l\frac{dl}{dt}\right) = \frac{d}{dt}\left(x\frac{dx}{dt}\right)$ - -$\left(\frac{dl}{dt}\right)^2 + l\frac{d^2l}{dt^2} = \left(\frac{dx}{dt}\right)^2 + x\frac{d^2x}{dt^2}$ - -$(-v)^2 + l(-a) = (-u)^2 + x(-a')$ - -$v^2 - la = u^2 - xa'$ - -### 求解 $a'$ - -$xa' = u^2 - v^2 + la$ - -$a' = \frac{u^2 - v^2 + la}{x}$ - -代入 $u = \frac{v}{\cos\theta}$, $x = h\tan\theta$, $l = \frac{h}{\cos\theta}$: - -$a' = \frac{\left(\frac{v}{\cos\theta}\right)^2 - v^2 + \left(\frac{h}{\cos\theta}\right)a}{h\tan\theta}$ - -$a' = \frac{v^2\left(\frac{1}{\cos^2\theta} - 1\right)}{h\tan\theta} + \frac{\frac{h}{\cos\theta}a}{h\tan\theta}$ - -$a' = \frac{v^2\tan^2\theta}{h\tan\theta} + \frac{a}{\cos\theta\tan\theta}$ - -$a' = \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta}$ - -## 答案 - -此时船的加速度为: -$a' = \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta}$ - ---- - -# 动点曲线运动问题 - -## 问题描述 - -已知动点 $P$ 在曲线 $y = \sqrt{x}$ 上运动,记坐标原点 $O$ 与 $P$ 间的距离为 $l$。若点 $P$ 横坐标随时间的变化率为常数 $v$,则当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率是多少? - -## 解析 - -### 变量关系 - -点 $P$ 坐标:$(x, y)$, $y = \sqrt{x}$ - -原点 $O$ 与 $P$ 间的距离: -$l = \sqrt{x^2 + y^2} = \sqrt{x^2 + (\sqrt{x})^2} = \sqrt{x^2 + x}$ - -已知:$\frac{dx}{dt} = v$(常数) - -### 距离变化率计算 - -$\frac{dl}{dt} = \frac{d}{dt} \sqrt{x^2 + x} = \frac{d}{dt} (x^2 + x)^{1/2}$ - -$\frac{dl}{dt} = \frac{1}{2}(x^2 + x)^{-1/2} \cdot \frac{d}{dt}(x^2 + x)$ - -$\frac{dl}{dt} = \frac{1}{2\sqrt{x^2 + x}} \cdot (2x + 1) \frac{dx}{dt}$ - -$\frac{dl}{dt} = \frac{2x + 1}{2\sqrt{x^2 + x}} \cdot v$ - -### 在点 $(1, 1)$ 处的变化率 - -当 $x = 1$ 时: - -$\left. \frac{dl}{dt} \right|_{x=1} = \frac{2\cdot 1 + 1}{2\sqrt{1^2 + 1}} \cdot v = \frac{3}{2\sqrt{2}} \cdot v = \frac{3v}{2\sqrt{2}}$ - -有理化:$\frac{3v}{2\sqrt{2}} = \frac{3v\sqrt{2}}{4}$ - -## 答案 - -当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率为 $\frac{3v\sqrt{2}}{4}$。 \ No newline at end of file diff --git a/Chapter 4 微积分基础/隐函数与参数方程求导.md b/Chapter 4 微积分基础/隐函数与参数方程求导.md deleted file mode 100644 index 404a54b..0000000 --- a/Chapter 4 微积分基础/隐函数与参数方程求导.md +++ /dev/null @@ -1,154 +0,0 @@ - - -## 隐函数求导 - -### 原理 - -设方程 $F(x, y) = 0$ 确定 $y$ 是 $x$ 的函数 $y = y(x)$,则对方程两边关于 $x$ 求导(注意 $y$ 是 $x$ 的函数),再解出 $y'$ 即可。 - -### **适用情况** - -适用于方程中 $x$ 与 $y$ 混合在一起,无法或不易解出 $y = f(x)$ 的情况,如: -- 圆的方程:$x^2 + y^2 = 1$ -- 椭圆方程:$\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$ -- 一般隐式方程:$e^{x+y} + \ln(xy) = 0$ - -### **优势** -1. 不必显式解出 $y = f(x)$,可直接求导; -2. 适用于复杂关系式,尤其是含有 $x$、$y$ 混合的函数形式。 - -### **劣势** -1. 求导过程中需注意 $y$ 是 $x$ 的函数,常需使用链式法则; -2. 最终表达式中可能仍含有 $y$,需结合原方程化简。 - -### **例子** - -> [!example] 例1 -求由方程 $x^2 + y^2 = 1$ 确定的隐函数 $y = y(x)$ 的导数。 - -**解析** -两边对 $x$ 求导: -$$ -2x + 2y \cdot y' = 0 -$$ -解得: -$$ -y' = -\frac{x}{y} -$$ - ---- - -## 参数方程求导 - -### 原理 - -设曲线由参数方程 -$$ -\begin{cases} -x = x(t) \\ -y = y(t) -\end{cases} -$$ -给出,则 $y$ 关于 $x$ 的导数为: -$$ -\frac{dy}{dx} = \frac{dy/dt}{dx/dt} = \frac{y'(t)}{x'(t)} -$$ -前提是 $x'(t) \neq 0$。 - -### **适用情况** -适用于曲线由参数形式给出,尤其是: -- 物理中的运动轨迹; -- 极坐标、摆线、旋轮线等曲线; -- 复杂曲线的简化表示。 - -### **优势** -1. 形式简洁,直接利用两个导数作商; -2. 适用于参数化表示,便于计算高阶导数。 - -### **劣势** -1. 要求 $x'(t) \neq 0$,否则导数不存在; -2. 高阶导数计算需重复使用公式,略显繁琐。 - -### **例子** - -> [!example] 例2 -求参数方程 -$$ -\begin{cases} -x = a\cos t \\ -y = b\sin t -\end{cases} -$$ -所确定的函数 $y = y(x)$ 的导数。 - -**解析** -计算: -$$ -\frac{dx}{dt} = -a\sin t, \quad \frac{dy}{dt} = b\cos t -$$ -因此: -$$ -\frac{dy}{dx} = \frac{b\cos t}{-a\sin t} = -\frac{b}{a}\cot t -$$ - ---- - -## 习题 - -> [!example] **习题1** -设 $y$ 由方程 $e^{x+y} = xy$ 确定,则 $y'$ 在点 $(1,0)$ 处的值为 -A. $0$ -B. $1$ -C. $-1$ -D. 不存在 - -**解析** -两边对 $x$ 求导: -$$ -e^{x+y}(1 + y') = y + x y' -$$ -代入 $(1,0)$: -$$ -e^{1+0}(1 + y') = 0 + 1 \cdot y' -$$ -即: -$$ -e(1 + y') = y' -$$ -解得: -$$ -y' = \frac{e}{1 - e} -$$ -该值不为选项中所列,故判断为“不存在直接匹配”,但若只允许选 ABCD,则可能选 D。 -实际应说明:$y' = \frac{e}{1-e}$ 是一个确定数值。 - ---- - -> [!example] **习题2** -参数方程 -$$ -\begin{cases} -x = t^2 + 1 \\ -y = t^3 - t -\end{cases} -$$ -在 $t = 1$ 处的导数 $\left. \frac{dy}{dx} \right|_{t=1}$ 为 -A. $1$ -B. $2$ -C. $3$ -D. $4$ - -**解析** -计算: -$$ -\frac{dx}{dt} = 2t, \quad \frac{dy}{dt} = 3t^2 - 1 -$$ -则: -$$ -\frac{dy}{dx} = \frac{3t^2 - 1}{2t} -$$ -代入 $t = 1$: -$$ -\left. \frac{dy}{dx} \right|_{t=1} = \frac{3 \cdot 1^2 - 1}{2 \cdot 1} = \frac{2}{2} = 1 -$$ -答案:A \ No newline at end of file diff --git a/Chapter 4 微积分基础/隐函数求导、参数方程求导.md b/Chapter 4 微积分基础/隐函数求导、参数方程求导.md deleted file mode 100644 index 5d14d7f..0000000 --- a/Chapter 4 微积分基础/隐函数求导、参数方程求导.md +++ /dev/null @@ -1,136 +0,0 @@ -## 题目 - -### 隐函数求导 - -1. 已知由方程 $e^{(x y - 1)(x + y)} \ln (x^3 + y^3) = \frac{xy(x^2 + y^2)}{(x y)^{x^2 + x y + y^2}} \ln (\sqrt{x + y})$ 所确定的函数单调减,求其在点 $(1,1)$ 处的切线方程。 - -2. 已知由方程 $\arctan\left( \frac{x^2 y + x y^2}{2} \right) = \arcsin\left( \frac{\sqrt{x^2 + y^2}}{x + y} \right)$ 所确定的函数在其连续区间内单调减,求其在点 $(1,1)$ 处的切线方程。 - - - -### 参数方程求导 - -3. 设参数方程 $x = e^{t^2} \arcsin(t^2)$,$y = \ln(1+t^4) \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值。 - -4. 设参数方程 $x = e^{t} \sin t + \ln(1+t^2)$,$y = e^{t} \cos t + \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值。 - ---- - -## 解析 - -### 1. - -##### 解法一(直接求导) - -设 $y = y(x) 、$ 是由方程确定的隐函数,且 $y(1)=1$。两边对 $x$ 求导,并记 $y' = \frac{dy}{dx}$。分别计算左边导数 $\frac{dL}{dx}$ 和右边导数 $\frac{dR}{dx}$ 在点 $(1,1)$ 处的值。 - -左边:$L = e^{(xy-1)(x+y)} \ln(x^3+y^3)$。 -令 $u = (xy-1)(x+y)$,则 $u(1,1)=0$。 -$u' = (y + x y')(x+y) + (xy-1)(1+y')$,在 $(1,1)$ 处,$u' = 2(1+y')$。 -于是 $\frac{dL}{dx} = e^{u} u' \ln(x^3+y^3) + e^{u} \cdot \frac{1}{x^3+y^3} \cdot (3x^2 + 3y^2 y')$ -在 $(1,1)$ 处,$e^{u}=1$,$\ln(x^3+y^3)=\ln 2$,$x^3+y^3=2$,所以 $\frac{dL}{dx}\bigg|_{(1,1)} = 2(1+y') \ln 2 + \frac{3}{2}(1+y') = \left(2\ln 2 + \frac{3}{2}\right)(1+y')$。 - -右边:$R = \frac{1}{2} (xy)^{1-(x^2+xy+y^2)} (x^2+y^2) \ln(x+y)$。 -令 $A = (xy)^{1-(x^2+xy+y^2)}$,$B = x^2+y^2$,$C = \ln(x+y)$,则 $R = \frac{1}{2} A B C$。 -在 $(1,1)$ 处,$A=1$,$B=2$,$C=\ln 2$。 - -先求 $A'$。取对数:$\ln A = [1-(x^2+xy+y^2)] \ln(xy)$。求导: -$\frac{A'}{A} = [-(2x + y + x y' + 2y y')] \ln(xy) + [1-(x^2+xy+y^2)] \cdot \frac{y + x y'}{xy}$ -在 $(1,1)$ 处,$\ln(xy)=0 $,$ 1-(x^2+xy+y^2) = -2 $,$ xy=1$,所以 $\frac{A'}{A} = -2(1+y')$,即 $A' = -2(1+y')$。 -$B' = 2x + 2y y' = 2 + 2y' = 2(1+y')$。 -$C' = \frac{1+y'}{x+y} = \frac{1}{2}(1+y')$。 - -于是 $\frac{dR}{dx} = \frac{1}{2} (A' B C + A B' C + A B C')$ -代入:$\frac{dR}{dx} = \frac{1}{2} \left[ -2(1+y') \cdot 2 \cdot \ln 2 + 1 \cdot 2(1+y') \cdot \ln 2 + 1 \cdot 2 \cdot \frac{1}{2}(1+y') \right]$ -化简:$\frac{dR}{dx} = \frac{1}{2} \left[ -4(1+y') \ln 2 + 2(1+y') \ln 2 + (1+y') \right] = \frac{1}{2} (1+y') (1 - 2\ln 2)$。 - -由 $\frac{dL}{dx} = \frac{dR}{dx}$ 得: -$\left(2\ln 2 + \frac{3}{2}\right)(1+y') = \frac{1}{2} (1+y') (1 - 2\ln 2)$ -若 $1+y' \neq 0$,则 $2\ln 2 + \frac{3}{2} = \frac{1}{2} - \ln 2$,即 $3\ln 2 = -1$,矛盾。故 $1+y' = 0$,即 $y' = -1$。 - -所以切线斜率为 $-1$,切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 - -答案:切线方程为 $y = -x + 2$。 - -##### 解法二 - -由方程形式可知,交换 $x$ 与 $y$ 后方程不变,故曲线关于直线 $y = x$ 对称。点 $(1,1)$ 位于曲线且落在对称轴 $y = x$ 上。 -在对称轴上的点处,切线斜率只可能为 $1$(与对称轴平行)或 $-1$(与对称轴垂直)。 -因为函数单调减,所以在 $(1,1)$ 处导数 $y' < 0$,故斜率不可能为 $1$,只可能为 $-1$。 -由点斜式得切线方程: -$y - 1 = -1 \cdot (x - 1)$, -即 $y = -x + 2$。 - - - - -### 2. -##### 解法一(直接求导) - -对方程两边关于 $x$ 求导,$y$ 视为 $x$ 的函数,记 $y' = \frac{dy}{dx}$。 -左边:设 $u = \frac{x^2 y + x y^2}{2}$,则导数为 $\frac{1}{1+u^2} \cdot \frac{du}{dx}$。 -$\frac{du}{dx} = \frac{1}{2}(2xy + x^2 y' + y^2 + 2xy y')$。 -在 $(1,1)$ 处,$u=1$,$\frac{1}{1+u^2} = \frac{1}{2}$,$\frac{du}{dx} = \frac{1}{2}(2+1 + (1+2)y') = \frac{3}{2}(1+y')$, -所以左边导数为 $\frac{1}{2} \cdot \frac{3}{2}(1+y') = \frac{3}{4}(1+y')$。 - -右边:设 $v = \frac{\sqrt{x^2 + y^2}}{x + y}$,则导数为 $\frac{1}{\sqrt{1-v^2}} \cdot \frac{dv}{dx}$。 -在 $(1,1)$ 处,$v = \frac{\sqrt{2}}{2}$,$\sqrt{1-v^2} = \frac{1}{\sqrt{2}}$,所以 $\frac{1}{\sqrt{1-v^2}} = \sqrt{2}$。 -计算 $\frac{dv}{dx}$:$v = \frac{\sqrt{x^2+y^2}}{x+y}$, -$\frac{dv}{dx} = \frac{(x+y) \cdot \frac{x + y y'}{\sqrt{x^2+y^2}} - \sqrt{x^2+y^2}(1+y')}{(x+y)^2}$。 -代入 $(1,1)$,$\sqrt{x^2+y^2} = \sqrt{2}$,$x+y=2$,$\frac{dv}{dx} = \frac{2 \cdot \frac{1+y'}{\sqrt{2}} - \sqrt{2}(1+y')}{4} = 0$。 -因此右边导数为 $\sqrt{2} \cdot 0 = 0$。 - -由左右导数相等得:$\frac{3}{4}(1+y') = 0$,解得 $y' = -1$。 - -故切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 - - -##### 解法二 - -方程中交换 $x$ 与 $y$ 后形式不变,故曲线关于直线 $y = x$ 对称。点 $(1,1)$ 在曲线上且位于对称轴 $y = x$ 上。 -由对称性,在对称轴上的点处,切线斜率只可能为 $1$(与对称轴平行)或 $-1$(与对称轴垂直)。 -已知函数单调减,即在定义区间内 $y' < 0$,因此斜率不可能为 $1$,只能为 $-1$。 - -切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 - - ---- - - - ---- - -### 3. - -**解析:** -先求一阶导: -$\frac{dx}{dt} = 2t e^{t^2} \left( \frac{1}{\sqrt{1-t^4}} + \arcsin(t^2) \right)$,$\frac{dy}{dt} = \frac{4t^3}{1+t^4} \arctan(t^3) + \ln(1+t^4) \cdot \frac{3t^2}{1+t^6}$。 -在 $t=0$ 处,$\frac{dx}{dt}=0$,$\frac{dy}{dt}=0$。 - -需用公式 $\frac{d^2 y}{dx^2} = \frac{ \frac{dx}{dt} \frac{d^2 y}{dt^2} - \frac{dy}{dt} \frac{d^2 x}{dt^2} }{ \left( \frac{dx}{dt} \right)^3 }$。 -利用泰勒展开: -$x(t) = t^2 + t^4 + O(t^6)$,得 $\frac{dx}{dt} = 2t + 4t^3 + O(t^5)$,$\frac{d^2 x}{dt^2} = 2 + 12t^2 + O(t^4)$; -$y(t) = t^7 + O(t^{11})$,得 $\frac{dy}{dt} = 7t^6 + O(t^{10})$,$\frac{d^2 y}{dt^2} = 42t^5 + O(t^9)$。 -分子:$\frac{dx}{dt} \frac{d^2 y}{dt^2} - \frac{dy}{dt} \frac{d^2 x}{dt^2} = 70 t^6 + O(t^7)$,分母:$(\frac{dx}{dt})^3 = 8 t^3 + O(t^5)$。 -当 $t \to 0$,$\frac{d^2 y}{dx^2} = \frac{70 t^6}{8 t^3} \to 0$,故值为 $0$。 - -**答案:** $\frac{d^2 y}{dx^2} \big|_{t=0} = 0$。 - ---- - -### 4. - -**解析:** -计算一阶导: -$\frac{dx}{dt} = e^{t} \sin t + e^{t} \cos t + \frac{2t}{1+t^2}$,$\frac{dy}{dt} = e^{t} \cos t - e^{t} \sin t + \frac{3t^2}{1+t^6}$。 -在 $t=0$ 处:$\frac{dx}{dt} = 1$,$\frac{dy}{dt} = 1$。 - -二阶导: -$\frac{d^2 x}{dt^2} = 2 e^{t} \cos t + \frac{2 - 2t^2}{(1+t^2)^2}$,$\frac{d^2 y}{dt^2} = -2 e^{t} \sin t + \frac{6t(1+t^6) - 18t^7}{(1+t^6)^2}$。 -在 $t=0$ 处:$\frac{d^2 x}{dt^2} = 4$,$\frac{d^2 y}{dt^2} = 0$。 - -代入公式: -$\frac{d^2 y}{dx^2} = \frac{1 \cdot 0 - 1 \cdot 4}{1^3} = -4$。 - -**答案:** $\frac{d^2 y}{dx^2} \big|_{t=0} = -4$。 ---- diff --git a/Chapter 4 微积分基础/隐函数求导和应用题(1)(1).md b/Chapter 4 微积分基础/隐函数求导和应用题(1)(1).md deleted file mode 100644 index 38cc481..0000000 --- a/Chapter 4 微积分基础/隐函数求导和应用题(1)(1).md +++ /dev/null @@ -1,57 +0,0 @@ -## **隐函数求导** -隐函数求导其实基本没什么难度,主要就是计算问题,所以下面以计算题为主。同时,也要注意包含抽象函数的求导。 ->[!example] 设方程$y=y(x)$由方程$xe^{f(y)}=e^y$确定,其中$f$具有二阶导数,且$f'\neq1$,求$\frac{d^2y}{dx^2}.$ - -解1: -两边对$x$求导得 -$$e^{f(y)}+xy'f'(y)e^{f(y)}=y'e^y$$ -从而 -$$y'=\frac{e^{f(y)}}{e^y-xf'(y)e^{f(y)}}=\frac{e^{f(y)}}{xe^{f(y)}(1-f'(y))}=\frac{1}{x(1-f'(y))}$$ -两边再对$x$求导得 -$$\frac{d^2y}{dx^2}=y''=-\frac{1-f'(y)-xy'f''(y)}{x^2(1-f'(y))^2}=-\frac{(1-f'(y))^2-f''(y)}{x^2(1-f'(y))^3}$$ -解2:两边取对数得$$lnx+f(y)=y$$ -两边对$x$求导得$$\frac{1}{x}+y'f'(y)=y'$$ -从而$$y'=\frac{1}{x(1-f'(y))}$$ -后同解1. - ->[!example] 曲线$\ln{\sqrt{x^2+y^2}}=arctan(\frac{x}{y})$在点(0,1)处的切线方程为$\_\_\_$ ->(A)$y=-x+1$ ->(B)$y=1$ ->(C)$y=x+1$ ->(D)$y=\frac{1}{2}x+1$ - - -解:由原式得$$\frac{1}{2}ln(x^2+y^2)=arctan(\frac{x}{y})$$ -两边对$x$求导得 $$\frac{1}{2}\cdot \frac{2x+2yy'}{x^2+y^2}=\frac{y-xy'}{x^2+y^2}$$$$x+yy'=y-xy'$$$$y'=\frac{y-x}{y+x}$$ -故$y'|_{x=0,y=1}=1$,即曲线在(0,1)处切线的斜率为1,故切线方程为: -$$y=x+1$$选C. - ->[!example] 函数$y=y(x)$由方程$sin(x^2+y^2)+e^x-xy^2=0$所确定,则$\frac{dy}{dx}=\_\_$. - -解: -两边求微分得: -$$(2xdx+2ydy)cos(x^2+y^2)+e^xdx-y^2dx-2xydy=0$$ -$$(2xcos(x^2+y^2)+e^x-y^2)dx+(2ycos(x^2+y^2)-2xy)dy=0$$ -$$\frac{dy}{dx}=\frac{2xcos(x^2+y^2)+e^x-y^2}{2xy-2ycos(x^2+y^2)}$$ - -## **应用题** -应用题就比较综合了,它可以考很多知识点,比如参数方程,比如隐函数求导,也有可能就是一个普通的求导。但关键不在于求导,因为应用题不会有很恶心的表达式,关键在于建立一个准确的模型,也就是(1)把需要求的对象找出来,即自变量和因变量,注意可能有多个;(2)根据条件把关系式列出来。我的建议是大家可以画一画示意图。 ->[!example] 半径为$a$的球渐渐沉入盛有部分水的半径为$b(b>a)$的圆柱形容器中.若球以匀速$c$下沉,求:球浸没一半时,容器内水面上升的速率. ->(A)$\frac{a^2c}{b^2}$ ->(B)$\frac{a^c}{b^2-a^2}$ ->(C)$\frac{a^2c}{2b^2}$ ->(D)$\frac{a^2c}{b^2+a^2}$ - -解:主要的等量关系是:球浸入水中的体积与水“溢出”的体积相同(如果把水面上升视为溢出的话)。设时间为$t$,球下沉的体积为$V$,水上升的高度为$H$,球浸入水的高度为$h$,则有$$V=\pi h^2(a-\frac{h}{3}),dV=(2\pi ah-\pi h^2)dh=\pi h(2a-h)dh$$(这个公式大家可以记住) -且(如图)$$dV=\pi(b^2-a^2+(a-h)^2)dH$$ -![[球浸入水示意图.jpg]] -于是$$\pi(b^2-a^2+(a-h)^2)dH=\pi h(2a-h)dh$$$$dH=\frac{h(2a-h)}{b^2-2ah+h^2}dh$$$$\frac{dH}{dt}=\frac{h(2a-h))}{b^2-2ah+h^2}\frac{dh}{dt}$$而$\frac{dh}{dt}=c,h=a$,故$$\frac{dH}{dt}=\frac{a^2c}{b^2-a^2}$$ -选B. - ->[!example] 利用微分估计值也是导数应用的一种。利用微分估计下面几个式子的值: ->(1)$\sqrt{34}$(保留两位小数) ->(2)摆的振动周期公式为:$T=2\pi \sqrt{\frac{l}{g}}$。其中$l$为摆长(厘米),重力加速度$g=981cm^2/s$.为了使周期$T$增大$0.05$秒,摆长$l=20cm$的长度需要作何修正?(参考数据:$\sqrt{981\times20}\approx140.07,\frac{1}{\pi}\approx0.318$,保留两位小数) - -解:(1)$\sqrt{34}=\sqrt{36-2}=6\sqrt{1-\frac{1}{18}}$,考虑函数$f(x)=\sqrt{x}$,$f'(x)=\frac{1}{2\sqrt{x}},f'(1)=\frac{1}{2}$,故$df=\frac{dx}{2\sqrt{x}},df|_{x=1}=\frac{1}{2}dx$,取$dx=-\frac{1}{18}$,得$df=-\frac{1}{36}$,故$$\sqrt{34}\approx 6(1-\frac{1}{36})=\frac{35}{6}\approx5.83$$ -(2)$dT=T'dl=\pi\sqrt{\frac{1}{gl}}dl=0.05$,则$$dl=\frac{1}{\pi}\sqrt{gl}\approx\frac{1}{3.14}\times\sqrt{981\times20}\times0.05\approx2.23$$ -故需要增加摆长约$2.23$厘米 diff --git a/Chapter 4 微积分基础/隐函数求导和应用题.md b/Chapter 4 微积分基础/隐函数求导和应用题.md deleted file mode 100644 index 338766e..0000000 --- a/Chapter 4 微积分基础/隐函数求导和应用题.md +++ /dev/null @@ -1,47 +0,0 @@ -## **隐函数求导** -隐函数求导其实基本没什么难度,主要就是计算问题,所以下面以计算题为主。同时,也要注意包含抽象函数的求导。 ->[!example] 设方程$y=y(x)$由方程$xe^{f(y)}=e^y$确定,其中$f$具有二阶导数,且$f'\neq1$,求$\frac{d^2y}{dx^2}.$ - -解1: -两边对$x$求导得 -$$e^{f(y)}+xy'f'(y)e^{f(y)}=y'e^y$$ -从而 -$$y'=\frac{e^{f(y)}}{e^y-xf'(y)e^{f(y)}}=\frac{e^{f(y)}}{xe^{f(y)}(1-f'(y))}=\frac{1}{x(1-f'(y))}$$ -两边再对$x$求导得 -$$\frac{d^2y}{dx^2}=y''=-\frac{1-f'(y)-xy'f''(y)}{x^2(1-f'(y))^2}=-\frac{(1-f'(y))^2-f''(y)}{x^2(1-f'(y))^3}$$ -解2:两边取对数得$$lnx+f(y)=y$$ -两边对$x$求导得$$\frac{1}{x}+y'f'(y)=y'$$ -从而$$y'=\frac{1}{x(1-f'(y))}$$ -后同解1. - ->[!example] 求曲线$\ln{\sqrt{x^2+y^2}}=arctan(\frac{x}{y})$在点(0,1)处的切线方程。 - -解:由原式得$$\frac{1}{2}ln(x^2+y^2)=arctan(\frac{x}{y})$$ -两边对$x$求导得 $$\frac{1}{2}\cdot \frac{2x+2yy'}{x^2+y^2}=\frac{y-xy'}{x^2+y^2}$$$$x+yy'=y-xy'$$$$y'=\frac{y-x}{y+x}$$ -故$y'|_{x=0,y=1}=1$,即曲线在(0,1)处切线的斜率为1,故切线方程为: -$$y=x+1$$ - ->[!example] 函数$y=y(x)$由方程$sin(x^2+y^2)+e^x-xy^2=0$所确定,则$\frac{dy}{dx}=\_\_$. - -解: -两边求微分得: -$$(2xdx+2ydy)cos(x^2+y^2)+e^xdx-y^2dx-2xydy=0$$ -$$(2xcos(x^2+y^2)+e^x-y^2)dx+(2ycos(x^2+y^2)-2xy)dy=0$$ -$$\frac{dy}{dx}=\frac{2xcos(x^2+y^2)+e^x-y^2}{2xy-2ycos(x^2+y^2)}$$ - -## **应用题** -应用题就比较综合了,它可以考很多知识点,比如参数方程,比如隐函数求导,也有可能就是一个普通的求导。但关键不在于求导,因为应用题不会有很恶心的表达式,关键在于建立一个准确的模型,也就是(1)把需要求的对象找出来,即自变量和因变量,注意可能有多个;(2)根据条件把关系式列出来。我的建议是大家可以画一画示意图。 ->[!example] 半径为$a$的球渐渐沉入盛有部分水的半径为$b(b>a)$的圆柱形容器中.若球以匀速$c$下沉,求:球浸没一半时,容器内水面上升的速率. - -解:主要的等量关系是:球浸入水中的体积与水“溢出”的体积相同(如果把水面上升视为溢出的话)。设时间为$t$,球下沉的体积为$V$,水上升的高度为$H$,球浸入水的高度为$h$,则有$$V=\pi h^2(a-\frac{h}{3}),dV=(2\pi ah-\pi h^2)dh=\pi h(2a-h)dh$$(这个公式大家可以记住) -且(如图)$$dV=\pi(b^2-a^2+(a-h)^2)dH$$ -![[球浸入水示意图.jpg]] -于是$$\pi(b^2-a^2+(a-h)^2)dH=\pi h(2a-h)dh$$$$dH=\frac{h(2a-h)}{b^2-2ah+h^2}dh$$$$\frac{dH}{dt}=\frac{h(2a-h))}{b^2-2ah+h^2}\frac{dh}{dt}$$而$\frac{dh}{dt}=c,h=a$,故$$\frac{dH}{dt}=\frac{a^2c}{b^2-a^2}$$ - ->[!example] 利用微分估计值也是导数应用的一种。利用微分估计下面几个式子的值: ->(1)$\sqrt{34}$(保留两位小数) ->(2)摆的振动周期公式为:$T=2\pi \sqrt{\frac{l}{g}}$。其中$l$为摆长(厘米),重力加速度$g=981cm^2/s$.为了使周期$T$增大$0.05$秒,摆长$l=20cm$的长度需要作何修正?(参考数据:$\sqrt{981\times20}\approx140.07,\frac{1}{\pi}\approx0.318$,保留两位小数) - -解:(1)$\sqrt{34}=\sqrt{36-2}=6\sqrt{1-\frac{1}{18}}$,考虑函数$f(x)=\sqrt{x}$,$f'(x)=\frac{1}{2\sqrt{x}},f'(1)=\frac{1}{2}$,故$df=\frac{dx}{2\sqrt{x}},df|_{x=1}=\frac{1}{2}dx$,取$dx=-\frac{1}{18}$,得$df=-\frac{1}{36}$,故$$\sqrt{34}\approx 6(1-\frac{1}{36})=\frac{35}{6}\approx5.83$$ -(2)$dT=T'dl=\pi\sqrt{\frac{1}{gl}}dl=0.05$,则$$dl=\frac{1}{\pi}\sqrt{gl}\approx\frac{1}{3.14}\times\sqrt{981\times20}\times0.05\approx2.23$$ -故需要增加摆长约$2.23$厘米 diff --git a/Chapter 4 微积分基础/隐函数求导和应用题(.md b/Chapter 4 微积分基础/隐函数求导和应用题(.md deleted file mode 100644 index ed84d5d..0000000 --- a/Chapter 4 微积分基础/隐函数求导和应用题(.md +++ /dev/null @@ -1,36 +0,0 @@ -## **隐函数求导** -隐函数求导其实基本没什么难度,主要就是计算问题,所以下面以计算题为主。同时,也要注意包含抽象函数的求导。 ->[!example] 设方程$y=y(x)$由方程$xe^{f(y)}=e^y$确定,其中$f$具有二阶导数,且$f'\neq1$,求$\frac{d^2y}{dx^2}.$ - -解1: -两边对$x$求导得 -$$e^{f(y)}+xy'f'(y)e^{f(y)}=y'e^y$$ -从而 -$$y'=\frac{e^{f(y)}}{e^y-xf'(y)e^{f(y)}}=\frac{e^{f(y)}}{xe^{f(y)}(1-f'(y))}=\frac{1}{x(1-f'(y))}$$ -两边再对$x$求导得 -$$\frac{d^2y}{dx^2}=y''=-\frac{1-f'(y)-xy'f''(y)}{x^2(1-f'(y))^2}=-\frac{(1-f'(y))^2-f''(y)}{x^2(1-f'(y))^3}$$ -解2:两边取对数得$$lnx+f(y)=y$$ -两边对$x$求导得$$\frac{1}{x}+y'f'(y)=y'$$ -从而$$y'=\frac{1}{x(1-f'(y))}$$ -后同解1. - - ->[!example] 函数$y=y(x)$由方程$sin(x^2+y^2)+e^x-xy^2=0$所确定,则$\frac{dy}{dx}=\_\_$. - -解: -两边求微分得: -$$(2xdx+2ydy)cos(x^2+y^2)+e^xdx-y^2dx-2xydy=0$$ -$$(2xcos(x^2+y^2)+e^x-y^2)dx+(2ycos(x^2+y^2)-2xy)dy=0$$ -$$\frac{dy}{dx}=\frac{2xcos(x^2+y^2)+e^x-y^2}{2xy-2ycos(x^2+y^2)}$$ - -## **应用题** -应用题就比较综合了,它可以考很多知识点,比如参数方程,比如隐函数求导,也有可能就是一个普通的求导。但关键不在于求导,因为应用题不会有很恶心的表达式,关键在于建立一个准确的模型,也就是(1)把需要求的对象找出来,即自变量和因变量,注意可能有多个;(2)根据条件把关系式列出来。我的建议是大家可以画一画示意图。 - - ->[!example] 利用微分估计值也是导数应用的一种。利用微分估计下面几个式子的值: ->(1)$\sqrt{34}$(保留两位小数) ->(2)摆的振动周期公式为:$T=2\pi \sqrt{\frac{l}{g}}$。其中$l$为摆长(厘米),重力加速度$g=981cm^2/s$.为了使周期$T$增大$0.05$秒,摆长$l=20cm$的长度需要作何修正?(参考数据:$\sqrt{981\times20}\approx140.07,\frac{1}{\pi}\approx0.318$,保留两位小数) - -解:(1)$\sqrt{34}=\sqrt{36-2}=6\sqrt{1-\frac{1}{18}}$,考虑函数$f(x)=\sqrt{x}$,$f'(x)=\frac{1}{2\sqrt{x}},f'(1)=\frac{1}{2}$,故$df=\frac{dx}{2\sqrt{x}},df|_{x=1}=\frac{1}{2}dx$,取$dx=-\frac{1}{18}$,得$df=-\frac{1}{36}$,故$$\sqrt{34}\approx 6(1-\frac{1}{36})=\frac{35}{6}\approx5.83$$ -(2)$dT=T'dl=\pi\sqrt{\frac{1}{gl}}dl=0.05$,则$$dl=\frac{1}{\pi}\sqrt{gl}\approx\frac{1}{3.14}\times\sqrt{981\times20}\times0.05\approx2.23$$ -故需要增加摆长约$2.23$厘米 diff --git a/Chapter 4 微积分基础/隐函数求导(难题).md b/Chapter 4 微积分基础/隐函数求导(难题).md deleted file mode 100644 index 908ef38..0000000 --- a/Chapter 4 微积分基础/隐函数求导(难题).md +++ /dev/null @@ -1,134 +0,0 @@ -## 题目 - -### 隐函数求导 ->[!example] 例1 ->1. 已知由方程 $e^{(x y - 1)(x + y)} \ln (x^3 + y^3) = \frac{xy(x^2 + y^2)}{(x y)^{x^2 + x y + y^2}} \ln (\sqrt{x + y})$ 所确定的函数单调减,求其在点 $(1,1)$ 处的切线方程。 ->2. 已知由方程 $\arctan\left( \frac{x^2 y + x y^2}{2} \right) = \arcsin\left( \frac{\sqrt{x^2 + y^2}}{x + y} \right)$ 所确定的函数在其连续区间内单调减,求其在点 $(1,1)$ 处的切线方程。 - - - -### 参数方程求导 ->[!example] 例2 ->3. 设参数方程 $x = e^{t^2} \arcsin(t^2)$,$y = \ln(1+t^4) \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值(需要用到泰勒展开,仅作习题)。 ->4. 设参数方程 $x = e^{t} \sin t + \ln(1+t^2)$,$y = e^{t} \cos t + \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值。 - ---- - -## 解析 - -### 1. - - 解法一(直接求导) - -设 $y = y(x) 、$ 是由方程确定的隐函数,且 $y(1)=1$。两边对 $x$ 求导,并记 $y' = \frac{dy}{dx}$。分别计算左边导数 $\frac{dL}{dx}$ 和右边导数 $\frac{dR}{dx}$ 在点 $(1,1)$ 处的值。 - -左边:$L = e^{(xy-1)(x+y)} \ln(x^3+y^3)$。 -令 $$u = (xy-1)(x+y),$$则 $u(1,1)=0$。 -有$$u' = (y + x y')(x+y) + (xy-1)(1+y'),$$在 $(1,1)$ 处,$u' = 2(1+y')$。 -于是 $$\frac{dL}{dx} = e^{u} u' \ln(x^3+y^3) + e^{u} \cdot \frac{1}{x^3+y^3} \cdot (3x^2 + 3y^2 y')$$ -在 $(1,1)$ 处,$e^{u}=1$,$\ln(x^3+y^3)=\ln 2$,$x^3+y^3=2$,所以 $\frac{dL}{dx}\bigg|_{(1,1)} = 2(1+y') \ln 2 + \frac{3}{2}(1+y') = \left(2\ln 2 + \frac{3}{2}\right)(1+y')$。 - -右边:$R = \frac{1}{2} (xy)^{1-(x^2+xy+y^2)} (x^2+y^2) \ln(x+y)$。 -令 $$A = (xy)^{1-(x^2+xy+y^2)},B = x^2+y^2,C = \ln(x+y)$$则 $R = \frac{1}{2} A B C$。 -在 $(1,1)$ 处,$A=1$,$B=2$,$C=\ln 2$。 - -先求 $A'$。取对数:$\ln A = [1-(x^2+xy+y^2)] \ln(xy)$。求导得: -$$\frac{A'}{A} = [-(2x + y + x y' + 2y y')] \ln(xy) + [1-(x^2+xy+y^2)] \cdot \frac{y + x y'}{xy}$$ -在 $(1,1)$ 处,$$\ln(xy)=0,1-(x^2+xy+y^2) = -2, xy=1$$,所以 $\frac{A'}{A} = -2(1+y')$,即 $A' = -2(1+y')$。 -易得$$B' = 2x + 2y y' = 2 + 2y' = 2(1+y'), -C' = \frac{1+y'}{x+y} = \frac{1}{2}(1+y').$$ - -于是 $$\frac{dR}{dx} = \frac{1}{2} (A' B C + A B' C + A B C')$$ -代入:$$\frac{dR}{dx} = \frac{1}{2} \left[ -2(1+y') \cdot 2 \cdot \ln 2 + 1 \cdot 2(1+y') \cdot \ln 2 + 1 \cdot 2 \cdot \frac{1}{2}(1+y') \right]$$ -化简:$$\frac{dR}{dx} = \frac{1}{2} \left[ -4(1+y') \ln 2 + 2(1+y') \ln 2 + (1+y') \right] = \frac{1}{2} (1+y') (1 - 2\ln 2)$$ - -由 $\frac{dL}{dx} = \frac{dR}{dx}$ 得: -$$\left(2\ln 2 + \frac{3}{2}\right)(1+y') = \frac{1}{2} (1+y') (1 - 2\ln 2)$$ -若 $1+y' \neq 0$,则 $2\ln 2 + \frac{3}{2} = \frac{1}{2} - \ln 2$,即 $3\ln 2 = -1$,矛盾。故 $1+y' = 0$,即 $y' = -1$。 - -所以切线斜率为 $-1$,切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 - -答案:切线方程为 $y = -x + 2$。 - - 解法二 - -由方程形式可知,交换 $x$ 与 $y$ 后方程不变,故曲线关于直线 $y = x$ 对称。点 $(1,1)$ 位于曲线且落在对称轴 $y = x$ 上。 -在对称轴上的点处,切线斜率只可能为 $1$(与对称轴平行)或 $-1$(与对称轴垂直)。 -因为函数单调减,所以在 $(1,1)$ 处导数 $y' < 0$,故斜率不可能为 $1$,只可能为 $-1$。 -由点斜式得切线方程: -$y - 1 = -1 \cdot (x - 1)$, -即 $y = -x + 2$。 - - - - -### 2. - 解法一(直接求导) - -对方程两边关于 $x$ 求导,$y$ 视为 $x$ 的函数,记 $y' = \frac{dy}{dx}$。 -左边:设 $u = \frac{x^2 y + x y^2}{2}$,则导数为 $\frac{1}{1+u^2} \cdot \frac{du}{dx}$。 -$\frac{du}{dx} = \frac{1}{2}(2xy + x^2 y' + y^2 + 2xy y')$。 -在 $(1,1)$ 处,$$u=1,\frac{1}{1+u^2} = \frac{1}{2},\frac{du}{dx} = \frac{1}{2}(2+1 + (1+2)y') = \frac{3}{2}(1+y')$$ -所以左边导数为 $$\frac{1}{2} \cdot \frac{3}{2}(1+y') = \frac{3}{4}(1+y')$$。 - -右边:设 $v = \frac{\sqrt{x^2 + y^2}}{x + y}$,则导数为 $\frac{1}{\sqrt{1-v^2}} \cdot \frac{dv}{dx}$。 -在 $(1,1)$ 处,$v = \frac{\sqrt{2}}{2}$,$\sqrt{1-v^2} = \frac{1}{\sqrt{2}}$,所以 $\frac{1}{\sqrt{1-v^2}} = \sqrt{2}$。 -计算 $\frac{dv}{dx}$:$$v = \frac{\sqrt{x^2+y^2}}{x+y}, -\frac{dv}{dx} = \frac{(x+y) \cdot \frac{x + y y'}{\sqrt{x^2+y^2}} - \sqrt{x^2+y^2}(1+y')}{(x+y)^2}$$ -代入 $(1,1)$,$$\sqrt{x^2+y^2} = \sqrt{2},x+y=2,\frac{dv}{dx} = \frac{2 \cdot \frac{1+y'}{\sqrt{2}} - \sqrt{2}(1+y')}{4} = 0$$ -因此右边导数为 $\sqrt{2} \cdot 0 = 0$。 - -由左右导数相等得:$\frac{3}{4}(1+y') = 0$,解得 $y' = -1$。 - -故切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 - - - 解法二 - -方程中交换 $x$ 与 $y$ 后形式不变,故曲线关于直线 $y = x$ 对称。点 $(1,1)$ 在曲线上且位于对称轴 $y = x$ 上。 -由对称性,在对称轴上的点处,切线斜率只可能为 $1$(与对称轴平行)或 $-1$(与对称轴垂直)。 -已知函数单调减,即在定义区间内 $y' < 0$,因此斜率不可能为 $1$,只能为 $-1$。 - -切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 - - ---- - - - ---- - -### 3. - -**解析:** -先求一阶导: -$$\frac{dx}{dt} = 2t e^{t^2} \left( \frac{1}{\sqrt{1-t^4}} + \arcsin(t^2) \right)$$$$\frac{dy}{dt} = \frac{4t^3}{1+t^4} \arctan(t^3) + \ln(1+t^4) \cdot \frac{3t^2}{1+t^6}$$ -在 $t=0$ 处,$\frac{dx}{dt}=0$,$\frac{dy}{dt}=0$。 - -需用公式 $$\frac{d^2 y}{dx^2} = \frac{ \frac{dx}{dt} \frac{d^2 y}{dt^2} - \frac{dy}{dt} \frac{d^2 x}{dt^2} }{ \left( \frac{dx}{dt} \right)^3 }$$。 -利用泰勒展开: -$x(t) = t^2 + t^4 + O(t^6)$,得 $$\frac{dx}{dt} = 2t + 4t^3 + O(t^5),\frac{d^2 x}{dt^2} = 2 + 12t^2 + O(t^4);$$ -$y(t) = t^7 + O(t^{11})$,得 $$\frac{dy}{dt} = 7t^6 + O(t^{10}),\frac{d^2 y}{dt^2} = 42t^5 + O(t^9).$$ -分子:$$\frac{dx}{dt} \frac{d^2 y}{dt^2} - \frac{dy}{dt} \frac{d^2 x}{dt^2} = 70 t^6 + O(t^7)$$分母:$$(\frac{dx}{dt})^3 = 8 t^3 + O(t^5)$$ -当 $t \to 0$,$\frac{d^2 y}{dx^2} = \frac{70 t^6}{8 t^3} \to 0$,故值为 $0$。 - -**答案:** $\frac{d^2 y}{dx^2} \big|_{t=0} = 0$。 - ---- - -### 4. - -**解析:** -计算一阶导: -$$\frac{dx}{dt} = e^{t} \sin t + e^{t} \cos t + \frac{2t}{1+t^2},\frac{dy}{dt} = e^{t} \cos t - e^{t} \sin t + \frac{3t^2}{1+t^6}.$$ -在 $t=0$ 处:$\frac{dx}{dt} = 1$,$\frac{dy}{dt} = 1$。 - -二阶导: -$$\frac{d^2 x}{dt^2} = 2 e^{t} \cos t + \frac{2 - 2t^2}{(1+t^2)^2},\frac{d^2 y}{dt^2} = -2 e^{t} \sin t + \frac{6t(1+t^6) - 18t^7}{(1+t^6)^2}.$$ -在 $t=0$ 处:$$\frac{d^2 x}{dt^2} = 4,\frac{d^2 y}{dt^2} = 0.$$ - -代入公式: -$$\frac{d^2 y}{dx^2} = \frac{1 \cdot 0 - 1 \cdot 4}{1^3} = -4.$$ - -**答案:** $\frac{d^2 y}{dx^2} \big|_{t=0} = -4$。 ---- diff --git a/conflict-files-obsidian-git.md b/conflict-files-obsidian-git.md new file mode 100644 index 0000000..d8bbd4f --- /dev/null +++ b/conflict-files-obsidian-git.md @@ -0,0 +1,17 @@ +# Conflicts +Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push` +(This file will automatically be deleted before commit) +[[#Additional Instructions]] available below file list + +- Not a file: .obsidian/workspace.json + +# Additional Instructions +I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. + +```diff +<<<<<<< HEAD + File changes in local repository +======= + File changes in remote repository +>>>>>>> origin/main +``` \ No newline at end of file diff --git a/小测/12.23/课前测.md b/小测/12.23/课前测.md deleted file mode 100644 index eac1d11..0000000 --- a/小测/12.23/课前测.md +++ /dev/null @@ -1,33 +0,0 @@ -1.级数$\sum_{n=1}^{\infty} \frac{\sqrt{n+1}-\sqrt{n}}{n}$收敛 -A.正确 -B.错误 - - -2.级数$\sum_{n=1}^{\infty} \frac{2n+1}{n^2(n+1)^2}$的和为 - -A. 0 - -B. 1 - -C. 2 - -D. 不存在(发散) - - - -3.级数 $\displaystyle \sum_{n=1}^{\infty} \frac{(2n)!}{(n!)^2} \cdot \frac{1}{5^n}$ 收敛 -A.正确 -B.错误 - - - - -4.级数$\sum_{n=1}^{\infty}\frac{(-1)^{n(n-1)/2}}{3^n}.$收敛 -A.正确 -B.错误 - - - -5.级数 $\sum_{n=2}^{\infty} \frac{1}{(\ln n)^n}$ 收敛 -A.正确 -B.错误 \ No newline at end of file diff --git a/小测/12.23/课前测解析版.md b/小测/12.23/课前测解析版.md deleted file mode 100644 index 87dddc9..0000000 --- a/小测/12.23/课前测解析版.md +++ /dev/null @@ -1,68 +0,0 @@ -1.级数$\sum_{n=1}^{\infty} \frac{\sqrt{n+1}-\sqrt{n}}{n}$收敛 -A.正确 -B.错误 -由于 -$a_n = \frac{\sqrt{n+1}-\sqrt{n}}{n} = \frac{1}{n(\sqrt{n+1}+\sqrt{n})} < \frac{1}{n \cdot 2\sqrt{n}} = \frac{1}{2n^{3/2}}$, -而 $\sum_{n=1}^\infty \frac{1}{n^{3/2}}$ 收敛,故由比较判别法知原级数收敛。 - - - -2.级数$\sum_{n=1}^{\infty} \frac{2n+1}{n^2(n+1)^2}$的和为 - -A. 0 - -B. 1 - -C. 2 - -D. 不存在(发散) -解: - -观察 - -$\frac{2n+1}{n^2(n+1)^2} = \frac{(n+1)^2 - n^2}{n^2(n+1)^2} = \frac{1}{n^2} - \frac{1}{(n+1)^2}$ - -部分和: - -$S_N = \sum_{n=1}^N \left[ \frac{1}{n^2} - \frac{1}{(n+1)^2} \right] = 1 - \frac{1}{(N+1)^2} \to 1$ - -收敛到 1。 - - -3.级数 $\displaystyle \sum_{n=1}^{\infty} \frac{(2n)!}{(n!)^2} \cdot \frac{1}{5^n}$ 收敛 -A.正确 -B.错误 -**解析** -$$a_n = \frac{(2n)!}{(n!)^2 \cdot 5^n}$$ - -$$\frac{a_{n+1}}{a_n} - -= \frac{(2n+2)!}{((n+1)!)^2 \cdot 5^{n+1}} \cdot \frac{(n!)^2 \cdot 5^n}{(2n)!}$$ -化简: -$$\frac{(2n+2)!}{(2n)!} = (2n+2)(2n+1)$$ -$$\frac{(n!)^2}{((n+1)!)^2} = \frac{1}{(n+1)^2}$$ - -$$\frac{5^n}{5^{n+1}} = \frac15$$ -所以 - -$$\frac{a_{n+1}}{a_n} = \frac{(2n+2)(2n+1)}{(n+1)^2} \cdot \frac15 -= \frac{2(2n+1)}{n+1} \cdot \frac15$$ -$$\lim_{n\to\infty} \frac{4n+2}{5(n+1)} = \frac{4}{5} < 1$$ -所以收敛。 - -答案:A - - - -4.级数$\sum_{n=1}^{\infty}\frac{(-1)^{n(n-1)/2}}{3^n}.$收敛 -A.正确 -B.错误 -$n(n-1)/2的奇偶性与n正好相反,所以级数也是交错级数,容易证明是收敛$ - -5.级数 $\sum_{n=2}^{\infty} \frac{1}{(\ln n)^n}$ 收敛 -A.正确 -B.错误 -当 $n > e^2$ 时,$\ln n > 2$,从而 $\frac{1}{(\ln n)^n} < \frac{1}{2^{,n}}$。 -由于 $\sum_{n=2}^\infty \frac{1}{2^{,n}}$ 收敛,由比较判别法知原级数收敛。 - - diff --git a/Chapter 4 微积分基础/二阶微分推导.md b/编写小组/二阶微分推导.md similarity index 100% rename from Chapter 4 微积分基础/二阶微分推导.md rename to 编写小组/二阶微分推导.md diff --git a/编写小组/讲义/二阶微分推导.md b/编写小组/讲义/二阶微分推导.md new file mode 100644 index 0000000..bd35c13 --- /dev/null +++ b/编写小组/讲义/二阶微分推导.md @@ -0,0 +1,55 @@ + +首先提出一个问题: +导数和微分是一个东西吗 +**不是。它们密切相关,但本质不同。** + +### 一阶情形 + +- **导数 (Derivative)** + - **本质**:一个**函数**(或该函数在某点的值) + - **含义**:因变量相对于自变量的**变化率**(瞬时斜率) + - **定义**:$f'(x) = \frac{dy}{dx} = \lim_{\Delta x \to 0} \frac{\Delta y}{\Delta x}$ + +- **微分 (Differential)** + - **本质**:一个**表达式**或**量** + - **含义**:函数改变量的**线性主要部分** + - **定义**:$dy = f'(x) \, dx$ + - 其中 $dx$ 是自变量的微分(任意微小改变量) + - $dy$ 是因变量沿切线方向的近似改变量 + +**一阶关系**:$dy = f'(x) \, dx$ + +### 二阶情形 +#### 二阶导数 +- **本质**:一阶导数的导数,仍是一个**函数** +- **符号**:$f''(x)$, $y''$, $\frac{d^2y}{dx^2}$ +- **含义**:函数**变化率的变化率**,描述函数的**凹凸性** +- **定义**:$f''(x) = \frac{d}{dx}[f'(x)]$ + +#### 二阶微分 +- **本质**:微分的微分,是一个**表达式** +- **符号**:$d^2y$ +- + 我们知道:$f''(x) =lim_{\Delta x \rightarrow0} \frac{f'(x+\Delta x) - f'(x)}{dx} = \frac{d^2f(x)}{(dx)^2}$ +现在尝试推导这一公式 +由两函数相乘一阶微分公式:$d[f(x).g(x)] = g(x)d[(fx)] + f(x)d[g(x)]$ +得: + $f''(x) = \frac{d(\frac{df(x)}{dx})}{dx}$ + $= \frac{1}{dx}.\frac{d(df(x))}{dx} + df(x) . \frac{d(\frac{1}{dx})}{dx}$ + $= \frac{d^2f(x)}{(dx)^2} +df(x) . \frac{d(\frac{1}{dx})}{dx}$ +--- + 嘿!您猜怎么着! + 出现了额外的一项,与二阶导数公式不符: $df(x) . \frac{d(\frac{1}{dx})}{dx}=-df(x) . \frac{1}{d^2x}. \frac{d({dx})}{dx}$ +问题出在 $d(dx)$ 上: + 我们知道,一阶导数的意义是当 $\Delta x$ 趋于无穷小的时候 $\Delta y$ 的变化率 + 实际上,在函数曲线上的任何一点处取函数微分, $dx$ 都是相等的 + 即 $dx$ 永远是均匀的,求高阶微分时将其视为常数 + 所以:$d(dx) = 0$ +### $f''(x) =lim_{\Delta x \rightarrow0} \frac{f'(x+\Delta x) - f'(x)}{dx} = \frac{d^2f(x)}{(dx)^2}= \frac{d^2f(x)}{dx^2}$ + +**注意此处的约定写法**:$(dx)^2$ 写作 $dx^2$(注意:这不是 $d(x^2)$) + + + + + diff --git a/编写小组/讲义/图片/应用题人拉船.png b/编写小组/讲义/图片/应用题人拉船.png new file mode 100644 index 0000000..f5ac61e Binary files /dev/null and b/编写小组/讲义/图片/应用题人拉船.png differ diff --git a/编写小组/讲义/图片/应用题梯子.jpg b/编写小组/讲义/图片/应用题梯子.jpg new file mode 100644 index 0000000..88c36b0 Binary files /dev/null and b/编写小组/讲义/图片/应用题梯子.jpg differ diff --git a/编写小组/讲义/图片/球浸入水示意图.jpg b/编写小组/讲义/图片/球浸入水示意图.jpg new file mode 100644 index 0000000..97de5c1 Binary files /dev/null and b/编写小组/讲义/图片/球浸入水示意图.jpg differ diff --git a/编写小组/讲义/极限计算的基本方法.md b/编写小组/讲义/极限计算的基本方法.md new file mode 100644 index 0000000..86a0f37 --- /dev/null +++ b/编写小组/讲义/极限计算的基本方法.md @@ -0,0 +1,247 @@ +--- +tags: + - 编写小组 +--- +**内部资料,禁止传播** +**编委会(不分先后,姓氏首字母顺序):韩魏 刘柯妤 卢吉辚 王轲楠 支宝宁** + +# 有理化根式法 + +## Quick Description + +### 原理 + +通过平方差公式上下同乘有理化,使得 $\infty - \infty$ 或者 $\frac {0}{0}$ 等不定型变得可以处理,从而使极限可以计算 + +### 适用情况 + +分式中出现根式减根式,或形式本身为根式减根式,且极限过程导致出现不定型,常见的有 $\infty - \infty$ 和 $\frac {0}{0}$ + +### 优势和劣势 + +迅速处理上述问题,但注意一般只能处理含根式问题,若无根式,可能考虑抓大头法 + +一般 $\infty - \infty$ 经过有理化可以得到 $\frac{1}{\infty+\infty}$ + +而 $\frac {0}{0}$ 需要上下都经过有理化,一般能约掉一个因式,从而使其可以处理 + +### 例子 + +> [!example] 例1 +> 计算极限 $\lim_{x \to \infty}(\sqrt{x^{2}+1}-\sqrt{x^{2}-1})$ + + + + + + + +> [!example] 例2 +> 计算极限 $\lim_{x \to 4} \frac{\sqrt{2x+1}-3} {\sqrt{x-2}-\sqrt{2}}$ + + + + + + + + +# 夹逼定理法 + +## Quick Description + +### 原理 + +被“夹”在中间的函数,会被两边函数的共同极限“逼”出相同的极限 + +### 适用情况 + +1.针对形如 $\lim\limits_{n\to\infty}\sum_{k=1}^{n}a_{k}$ 的式子,尤其是每一项 $a_{k}$ 含 $n$ 和 $k$、无法直接求和的情况(或连乘) + +2.对于给定的  $m$  个正数  $a_1, a_2, \dots, a_m ,\lim_{n \to \infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max\{a_1, a_2, \dots, a_m\}$. + +3.有界函数放缩 + +### 优势和劣势 + +#### 优势 + +1. 处理复杂表达式的有效工具,对于形式复杂、不易直接化简的极限(如 $\sqrt[n]{a_1^n + \cdots + a_m^n}$  这类“混合幂和”) + +2. 不依赖具体函数形式 + +3. 特别适合涉及  $n \to \infty$  的离散极限 + +4. 直观易懂 + +#### 劣势 + +1. 需要合适的不等式构造,必须找到恰当的上下界,既要容易求极限,又要在所求极限点处上下界极限相等。有时不容易找到这样的函数。 + +2. 可能高估或低估范围 + +3. 对振荡型函数有时不适用 + +## 例子 + +### 类型一: + +> [!example] 例1 +> 求极限 +> $$\lim_{n \to \infty} \left( \frac{n+1}{n^2+1} + \frac{n+2}{n^2+2} + \cdots + \frac{n+n}{n^2+n} \right)$$ + + + + + + + + +> [!example] 例2 +> 证明:$$\lim_{n\to\infty} \frac{n!}{n^n} = 0$$ + + + + + + + + + +### 类型二: + +> [!example] 例3 +> 设  $f(x) = \lim_{n \to \infty} \sqrt[n]{1 + x^n + \left( \frac{x^2}{2} \right)^n} , x \geq 0$,问  $f(x)$  是否为连续函数。 + + + + + + + +> [!example] 例4 +> 证明$\lim_{n\to\infty} \sqrt[n]{3^n + 5^n + 7^n} = 7$ + + + + + + + + +### 类型三: + +> [!example] 例5 +> 求函数极限 $\lim\limits_{x\to0}x^2\sin\frac{1}{x}$ + + + + + + + + +> [!example] 例6 +> 证明:$\lim_{n\to\infty} \sqrt[n]{2 + \sin^2 n} = 1$ + + + + + + + + + +# 凑重要极限法 + +## 原理: + +两个重要极限 +$$(1)\lim\limits_{x \to 0} \tfrac{sinx}{x}=1$$$$(2)\lim\limits_{x \to 0} \tfrac{e^x-1}{x}=1$$ + +## 适用情况 + +x是形式的,也就是说,只要是一个趋于0的函数放在上面两个极限中x的位置,极限的结果仍然不变。首先得是一个除法的形式,如果是乘法,就转化成除以另一个函数的倒数,比如 + +$$\lim\limits_{x \to \infty} x(e^\tfrac{1}{x}-1)=\lim\limits_{x \to \infty } \tfrac{e^\tfrac{1}{x}-1}{\tfrac{1}{x}}=1$$ + +这就是一个常见的化简思路。 + +## 例子 + + +> [!example] 计算下列极限: +> (1)$$\lim\limits_{x \to 0} \tfrac {x-sin2x}{x+sin3x}$$ +> (2)$$\lim\limits_{x \to 0} (\tfrac{1-x}{1+3x})^{1/x}$$ + + + + + + +> [!example] 例2 +> 已知$$\lim\limits_{x\to\infty}(\tfrac{x+1}{x+k})^x=\lim\limits_{x\to0}e^{\tfrac{sin4x}{x}}$$则常数k的值为__ + + + + + + + + + +# 等价无穷小求极限法 + + +本质是利用已知公式进行等价无穷小因子的代换将复杂函数化简 + + +> [!example] 例1 +> 计算 $\displaystyle \lim_{x\to 0}\frac{\sin mx}{\sin nx}$ + + + + + + + +> [!example] 例2 +> 计算 $$\displaystyle \lim_{x\to 0}(\cos x)^{\frac{1+x}{\sin^2 x}}$$ + + + + + + +熟悉常见的极限,灵活运用好极限的四则运算法则和等价无穷小,已经能够解决绝大多数的极限计算题了,无论是简单题还是难题。很多看上去很复杂的所谓难题,无非是在四则运算和等价无穷小之间反复套娃而已,如果可以熟练的分离这些特征,其实不需要泰勒公式等“高级工具”就能快速准确地得出极限值。当然,不是贬低其他的工具,只是说不要学习了所谓的一些高级工具之后,就不重视这些初级的工具和结论。 + + +# 抓大头”求极限法 + +1、形如 + +$$\frac{ax^n + bx^{n-1} + \ldots + p}{cx^m + \beta x^{m-1} + \ldots + \xi}$$ + +的多项式相除:上下同除x的最高次项,再上下各自求极限 + +2、形如 + +$$\ln(ae^{an} + \ldots + p)$$ + +的指对嵌套:先提出e的最高次项,转化为 + +$$\ln e^{\alpha n} \left( a + \frac{\cdots}{e^{\alpha n}} \right)$$ + +即 + +$$\alpha n + \ln \left( a + \frac{\cdots}{e^{\alpha n}} \right)$$ + + +> [!example] 例1 +> 计算$$\lim\limits_{x\to0}\frac{\sqrt{1-4x}-cosx}{x}=$$ + + + + + + diff --git a/编写小组/讲义/极限计算的基本方法(解析版2).md b/编写小组/讲义/极限计算的基本方法(解析版2).md new file mode 100644 index 0000000..e91db4c --- /dev/null +++ b/编写小组/讲义/极限计算的基本方法(解析版2).md @@ -0,0 +1,558 @@ +--- +tags: + - 编写小组 +--- +# 极限计算方法 + +## 一、有理化根式法 + +### 1.1 基本原理 +通过平方差公式上下同乘有理化因式,将 $\infty-\infty$ 或 $\frac{0}{0}$ 等不定型转化为可计算形式。 + +### 1.2 适用情况 +- 分式中出现根式减根式 +- 形式本身为根式减根式 +- 极限过程导致出现不定型(常见 $\infty-\infty$ 和 $\frac{0}{0}$) + +### 1.3 优势与局限 +**优势**:能迅速处理含根式的不定型问题。 + +**局限**:一般只适用于含根式的情况;对于 $\frac{0}{0}$ 型需上下同时有理化,通常能约去零因子。 + +> **🔍 关键转化形式** +> - 对于 $\infty - \infty$ 型:$\sqrt{A} - \sqrt{B} = \frac{A-B}{\sqrt{A}+\sqrt{B}}$ +> - 对于 $\frac{0}{0}$ 型:通常需要分子分母分别有理化 + +### 1.4 典型例题 + +#### 例1:$\infty-\infty$ 型 +计算极限:$\displaystyle \lim_{x \to \infty}(\sqrt{x^{2}+1}-\sqrt{x^{2}-1})$ + +**解**: +$$ +\begin{aligned} +\lim_{x \to \infty}(\sqrt{x^{2}+1}-\sqrt{x^{2}-1}) +&= \lim_{x \to \infty} \frac{(x^{2}+1)-(x^{2}-1)}{\sqrt{x^{2}+1}+\sqrt{x^{2}-1}} \\[0.5em] +&= \lim_{x \to \infty} \frac{2}{\sqrt{x^{2}+1}+\sqrt{x^{2}-1}} \\[0.5em] +&= 0 +\end{aligned} +$$ + +> **💡 分析**:这是典型的$\infty-\infty$型有理化,有理化后分母趋向$\infty$,整体极限为0。 + +#### 例2:$\frac{0}{0}$ 型 +计算极限:$\displaystyle \lim_{x \to 4} \frac{\sqrt{2x+1}-3}{\sqrt{x-2}-\sqrt{2}}$ + +**解**: +$$ +\begin{aligned} +\lim_{x \to 4} \frac{\sqrt{2x+1}-3}{\sqrt{x-2}-\sqrt{2}} +&= \lim_{x \to 4} \frac{(\sqrt{2x+1}-3)(\sqrt{2x+1}+3)(\sqrt{x-2}+\sqrt{2})}{(\sqrt{x-2}-\sqrt{2})(\sqrt{x-2}+\sqrt{2})(\sqrt{2x+1}+3)} \\[0.5em] +&= \lim_{x \to 4} \frac{(2x-8)(\sqrt{x-2}+\sqrt{2})}{(x-4)(\sqrt{2x+1}+3)} \\[0.5em] +&= \lim_{x \to 4} \frac{2(x-4)(\sqrt{x-2}+\sqrt{2})}{(x-4)(\sqrt{2x+1}+3)} \\[0.5em] +&= \lim_{x \to 4} \frac{2(\sqrt{x-2}+\sqrt{2})}{\sqrt{2x+1}+3} \\[0.5em] +&= \frac{2(\sqrt{2}+\sqrt{2})}{3+3} = \frac{4\sqrt{2}}{6} = \frac{2\sqrt{2}}{3} +\end{aligned} +$$ + +> **📝 解题步骤**: +> 1. 识别为$\frac{0}{0}$型,且分子分母均含根式 +> 2. 分子分母分别有理化 +> 3. 化简后约去零因子$(x-4)$ +> 4. 代入$x=4$计算极限值 + +--- + +## 二、夹逼定理法(挤压定理) + +### 2.1 基本原理 +若函数 $f(x)$ 满足 $g(x) \le f(x) \le h(x)$,且 $\lim g(x) = \lim h(x) = L$,则 $\lim f(x) = L$。 + +### 2.2 适用情况 +1. 形如 $\displaystyle \lim_{n\to\infty}\sum_{k=1}^{n}a_k$ 的求和极限(尤其 $a_k$ 含 $n,k$) +2. 幂和根式极限:$\displaystyle \lim_{n \to \infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max\{a_1, a_2, \dots, a_m\}$ +3. 有界函数乘积型极限 +4. 振荡函数与无穷小乘积的极限 + +### 2.3 优势与劣势 +**优势**: +1. 处理复杂表达式的有效工具 +2. 不依赖具体函数形式 +3. 特别适合涉及 $n \to \infty$ 的离散极限 +4. 直观易懂 + +**劣势**: +1. 需要合适的不等式构造 +2. 必须找到恰当的上下界 +3. 可能高估或低估范围 +4. 对振荡型函数有时不适用 + +### 2.4 三种常见类型及例题 + +#### 类型一:求和式极限 +**例1**:求 $\displaystyle \lim_{n \to \infty} \left( \frac{n+1}{n^2+1} + \frac{n+2}{n^2+2} + \cdots + \frac{n+n}{n^2+n} \right)$ + +**解**: +对 $k=1,2,\dots,n$,有 $n^2+1 \le n^2+k \le n^2+n$,故 +$$ +\frac{n+k}{n^2+n} \le \frac{n+k}{n^2+k} \le \frac{n+k}{n^2+1} +$$ + +求和得: +$$ +\frac{\sum_{k=1}^n (n+k)}{n^2+n} \le S_n \le \frac{\sum_{k=1}^n (n+k)}{n^2+1} +$$ + +其中 $\displaystyle \sum_{k=1}^n (n+k) = n^2 + \frac{n(n+1)}{2} = \frac{3n^2+n}{2}$ + +计算上下极限: +$$ +\lim_{n\to\infty} \frac{\frac{3n^2+n}{2}}{n^2+n} = \lim_{n\to\infty} \frac{3n^2+n}{2n^2+2n} = \frac{3}{2} +$$ +$$ +\lim_{n\to\infty} \frac{\frac{3n^2+n}{2}}{n^2+1} = \lim_{n\to\infty} \frac{3n^2+n}{2n^2+2} = \frac{3}{2} +$$ + +由夹逼定理得:$\displaystyle \lim_{n\to\infty} S_n = \frac{3}{2}$ + +**例2**:证明 $\displaystyle \lim_{n\to\infty} \frac{n!}{n^n} = 0$ + +**证明**: +$$ +0 < \frac{n!}{n^n} = \frac{1}{n} \cdot \frac{2}{n} \cdots \frac{n}{n} \le \frac{1}{n} \cdot 1 \cdot 1 \cdots 1 = \frac{1}{n} +$$ +而 $\displaystyle \lim_{n\to\infty} \frac{1}{n} = 0$,故 $\displaystyle \lim_{n\to\infty} \frac{n!}{n^n} = 0$ + +> **🔍 技巧**:对于连乘积,常将部分因子放大为1,部分因子保持不变,得到易求极限的上下界。 + +#### 类型二:幂和根式极限 +**重要结论**:若 $a_k > 0$,则 +$$\lim_{n\to\infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max\{a_1, a_2, \dots, a_m\}$$ + +**例3**:设 $\displaystyle f(x) = \lim_{n \to \infty} \sqrt[n]{1 + x^n + \left( \frac{x^2}{2} \right)^n},\ x \ge 0$,讨论 $f(x)$ 连续性。 + +**解**: +比较三项:$a_1=1,\ a_2=x,\ a_3=\frac{x^2}{2}$ + +1. **当 $0 \le x \le 1$**: + $x \le 1$,且 $\frac{x^2}{2} \le \frac{1}{2} < 1$,最大值为 $1$ + +2. **当 $1 < x \le 2$**: + 比较 $x$ 与 $\frac{x^2}{2}$: + $$x \ge \frac{x^2}{2} \Leftrightarrow 2x \ge x^2 \Leftrightarrow x(2-x) \ge 0 \Leftrightarrow 0 \le x \le 2$$ + 在 $(1, 2]$ 内,$x \ge \frac{x^2}{2}$;同时 $x > 1$,所以最大值是 $x$ + +3. **当 $x > 2$**: + 比较 $x$ 与 $\frac{x^2}{2}$: + $\frac{x^2}{2} > x \ (x > 2)$,且 $\frac{x^2}{2} > 1$,所以最大值是 $\frac{x^2}{2}$ + +故 +$$ +f(x) = \begin{cases} +1, & 0 \le x \le 1 \\ +x, & 1 < x \le 2 \\ +\frac{x^2}{2}, & x > 2 +\end{cases} +$$ + +**连续性检查**: +- 在 $x=1$ 处:$x \to 1^-$ 时 $f(x)=1$;$x \to 1^+$ 时 $f(x)=x \to 1$,且 $f(1)=1$,连续 +- 在 $x=2$ 处:$x \to 2^-$ 时 $f(x)=x \to 2$;$x \to 2^+$ 时 $f(x)=\frac{x^2}{2} \to 2$,且 $f(2)=2$,连续 + +因此 $f(x)$ 在 $[0,+\infty)$ 上连续。 + +**例4**:证明 $\displaystyle \lim_{n\to\infty} \sqrt[n]{3^n + 5^n + 7^n} = 7$ + +**证明**: +$$ +7^n < 3^n + 5^n + 7^n \le 3 \cdot 7^n +$$ +两边开 $n$ 次方: +$$ +7 < \sqrt[n]{3^n + 5^n + 7^n} \le 7 \cdot \sqrt[n]{3} +$$ +而 $\displaystyle \lim_{n\to\infty} \sqrt[n]{3} = 1$,由夹逼定理得证。 + +> **📝 解题模板**: +> 1. 找出最大项 $M = \max\{a_1, a_2, \dots, a_m\}$ +> 2. 构造不等式:$M^n < \sum a_i^n \le m \cdot M^n$ +> 3. 取$n$次根:$M < \sqrt[n]{\sum a_i^n} \le M \cdot \sqrt[n]{m}$ +> 4. 由 $\lim_{n\to\infty} \sqrt[n]{m} = 1$ 得结论 + +#### 类型三:有界函数乘积型 +**例5**:求 $\displaystyle \lim_{x\to0}x^2\sin\frac{1}{x}$ + +**解**: +由 $-1 \le \sin\frac{1}{x} \le 1$,得 +$$ +-x^2 \le x^2\sin\frac{1}{x} \le x^2 +$$ +而 $\displaystyle \lim_{x\to0}(-x^2) = \lim_{x\to0}x^2 = 0$,故原极限为 $0$。 + +**例6**:证明 $\displaystyle \lim_{n\to\infty} \sqrt[n]{2 + \sin^2 n} = 1$ + +**证明**: +$$ +1 \le 2 + \sin^2 n \le 3 \Rightarrow +1 \le \sqrt[n]{2 + \sin^2 n} \le \sqrt[n]{3} +$$ +而 $\displaystyle \lim_{n\to\infty} \sqrt[n]{3} = 1$,故得证。 + +> **⚠️ 注意事项**: +> 1. 确保上下界函数极限存在且相等 +> 2. 不等式方向必须一致 +> 3. 对于振荡函数,常利用其有界性 + +--- + +## 三、凑重要极限法 + +### 3.1 两个重要极限 +1. $\displaystyle \lim_{x \to 0} \frac{\sin x}{x} = 1$ +2. $\displaystyle \lim_{x \to 0} \frac{e^x-1}{x} = 1$ + +### 3.2 变形与推广 +- $\displaystyle \lim_{\square \to 0} \frac{\sin \square}{\square} = 1$($\square$代表任何趋于0的表达式) +- $\displaystyle \lim_{\square \to 0} \frac{e^\square-1}{\square} = 1$ +- $\displaystyle \lim_{\square \to 0} (1+\square)^{1/\square} = e$ + +### 3.3 使用技巧 +1. **识别结构**:寻找$\frac{\sin(\text{无穷小})}{\text{相同的无穷小}}$或$\frac{e^{\text{无穷小}}-1}{\text{相同的无穷小}}$的形式 +2. **变量代换**:令$t = \text{无穷小表达式}$,化为标准形式 +3. **恒等变形**:利用对数、指数等恒等式转化 + +### 3.4 典型例题 + +**例1**: +(1) $\displaystyle \lim_{x \to 0} \frac{x-\sin 2x}{x+\sin 3x}$ + +**解**: +$$ +\lim_{x\to0}\frac{x-\sin 2x}{x+\sin 3x} += \lim_{x\to0}\frac{1-2\cdot\frac{\sin 2x}{2x}}{1+3\cdot\frac{\sin 3x}{3x}} += \frac{1-2\times1}{1+3\times1} = -\frac{1}{4} +$$ + +(2) $\displaystyle \lim_{x \to 0} \left(\frac{1-x}{1+3x}\right)^{1/x}$ + +**解**: +令 $t = -\frac{4x}{1+3x}$,则 $x \to 0$ 时 $t \to 0$,且 +$$ +\frac{1}{x} = -4\cdot\frac{1+3x}{4x} = -4\cdot\frac{1}{t}-3 +$$ + +原式 $= \displaystyle \lim_{t\to 0} (1+t)^{-4/t-3} = \lim_{t\to 0} \left[(1+t)^{1/t}\right]^{-4} \cdot (1+t)^{-3} = e^{-4} \cdot 1 = e^{-4}$ + +**例2**:已知 $\displaystyle \lim_{x\to\infty}\left(\frac{x+1}{x+k}\right)^x = \lim_{x\to0}e^{\frac{\sin 4x}{x}}$,求 $k$ + +**解**: +左边 $= \displaystyle \lim_{x\to\infty}\frac{(1+1/x)^x}{(1+k/x)^x} = \frac{e}{e^k} = e^{1-k}$ + +右边 $= e^{\lim_{x\to0}\frac{\sin 4x}{x}} = e^{4}$ + +故 $e^{1-k} = e^4 \Rightarrow 1-k = 4 \Rightarrow k = -3$ + +### 3.5 课后练习与详解 + +**练习1**:$\displaystyle \lim_{x\to0}\left(\frac{a^x+b^x}{2}\right)^{3/x}\ (a,b>0)$ + +**解**: +$$ +\begin{aligned} +\lim_{x\to0}\left(\frac{a^x+b^x}{2}\right)^{3/x} +&= \lim_{x\to0}\left(1 + \frac{a^x+b^x-2}{2}\right)^{3/x} \\ +&= \lim_{x\to0}\left(1 + \frac{(a^x-1)+(b^x-1)}{2}\right)^{3/x} \\ +&= \lim_{x\to0}\left(1 + \frac{x\ln a + x\ln b + o(x)}{2}\right)^{3/x} \quad (\text{利用 } a^x-1 \sim x\ln a) \\ +&= \lim_{x\to0}\left(1 + \frac{\ln(ab)}{2}x\right)^{3/x} \\ +&= e^{\frac{3\ln(ab)}{2}} = (ab)^{3/2} +\end{aligned} +$$ + +**练习2**:$\displaystyle \lim_{x\to\infty}\frac{3x^2+5}{5x+3}\sin\frac{2}{x}$ + +**解**: +$$ +\begin{aligned} +\lim_{x\to\infty}\frac{3x^2+5}{5x+3}\sin\frac{2}{x} +&= \lim_{x\to\infty}\frac{3x^2+5}{5x+3} \cdot \frac{\sin\frac{2}{x}}{\frac{2}{x}} \cdot \frac{2}{x} \\ +&= \lim_{x\to\infty}\frac{3x^2+5}{5x+3} \cdot 1 \cdot \frac{2}{x} \\ +&= \lim_{x\to\infty}\frac{6x^2+10}{5x^2+3x} = \frac{6}{5} +\end{aligned} +$$ + +**练习3**:$\displaystyle \lim_{x\to\pi/4}\frac{\tan x-1}{x-\pi/4}$ + +**解**: +令 $t = x - \frac{\pi}{4}$,则 $x = t + \frac{\pi}{4},\ t \to 0$ + +$\tan x = \tan\left(t + \frac{\pi}{4}\right) = \frac{\tan t + 1}{1 - \tan t}$ + +于是: +$$ +\begin{aligned} +\tan x - 1 &= \frac{\tan t + 1}{1 - \tan t} - 1 = \frac{2\tan t}{1 - \tan t} \\ +\frac{\tan x-1}{x-\pi/4} &= \frac{2\tan t}{t(1-\tan t)} = 2\cdot\frac{\tan t}{t}\cdot\frac{1}{1-\tan t} +\end{aligned} +$$ + +当 $t \to 0$ 时:$\frac{\tan t}{t} \to 1$,$1-\tan t \to 1$ + +故原极限 $= 2 \times 1 \times 1 = 2$ + +**练习4**:$\displaystyle \lim_{x\to\pi/2}(\sin x)^{\tan x}$ + +**解**: +令 $t = \frac{\pi}{2} - x$,则 $x = \frac{\pi}{2} - t,\ t \to 0$ + +$\sin x = \cos t \sim 1 - \frac{t^2}{2}$ +$\tan x = \cot t = \frac{\cos t}{\sin t} \sim \frac{1}{t}$ + +原式 $= \displaystyle \lim_{t\to0} (\cos t)^{\cot t}$ + +取对数:$\ln(\text{原式}) = \displaystyle \lim_{t\to0} \cot t \cdot \ln(\cos t)$ + +$$ +\cot t \cdot \ln(\cos t) = \frac{\cos t}{\sin t} \cdot \ln(1 - \frac{t^2}{2} + o(t^2)) \sim \frac{1}{t} \cdot (-\frac{t^2}{2}) = -\frac{t}{2} \to 0 +$$ + +故原式 $= e^0 = 1$ + +> **💡 重要技巧**: +> 1. 幂指函数 $[f(x)]^{g(x)}$ 常取对数:$e^{g(x)\ln f(x)}$ +> 2. 利用等价无穷小 $\ln(1+u) \sim u\ (u\to0)$ +> 3. 注意代换后的新变量也趋于0,才能使用重要极限 + +--- + +## 四、等价无穷小代换法 + +### 4.1 基本原理 +在乘积和商的极限运算中,可以将复杂的无穷小量替换为等价的简单无穷小量,简化计算。 + +### 4.2 常用等价无穷小($x\to 0$) +| 等价形式 | 条件 | +|---------|------| +| $x \sim \sin x \sim \tan x \sim \arcsin x \sim \arctan x$ | 基础等价 | +| $x \sim e^x-1 \sim \ln(1+x)$ | 指数对数等价 | +| $1-\cos x \sim \frac{1}{2}x^2$ | 三角函数等价 | +| $(1+x)^a-1 \sim ax$ | 幂函数等价 | +| $a^x-1 \sim x\ln a\ (a>0)$ | 指数函数等价 | +| $x - \sin x \sim \frac{1}{6}x^3$ | 高阶等价 | +| $\tan x - x \sim \frac{1}{3}x^3$ | 高阶等价 | + +### 4.3 使用原则 +1. **乘除运算可直接替换** +2. **加减运算需谨慎**:只有同阶无穷小相加减时,不能随意替换 +3. **复合函数可整体替换** + +### 4.4 典型例题 + +**例1**:计算 $\displaystyle \lim_{x\to 0}\frac{\sin mx}{\sin nx}$ + +**解**: +原式 $= \displaystyle \lim_{x\to 0}\frac{mx}{nx} = \frac{m}{n}$ + +**例2**:计算 $\displaystyle \lim_{x\to 0}(\cos x)^{\frac{1+x}{\sin^2 x}}$ + +**解**:取对数得 +$$ +\begin{aligned} +\ln L &= \lim_{x\to 0}\frac{1+x}{\sin^2 x}\ln(\cos x) \\ +&= \lim_{x\to 0}\frac{1+x}{x^2} \cdot \ln[1+(\cos x-1)] \\ +&= \lim_{x\to 0}\frac{1+x}{x^2} \cdot (\cos x-1) \quad (\text{利用 }\ln(1+u)\sim u) \\ +&= \lim_{x\to 0}\frac{1+x}{x^2} \cdot (-\frac{1}{2}x^2) \quad (\text{利用 }1-\cos x\sim\frac{1}{2}x^2) \\ +&= -\frac{1}{2}\lim_{x\to 0}(1+x) = -\frac{1}{2} +\end{aligned} +$$ +故原式 $= e^{-1/2}$ + +**例3**:计算 $\displaystyle \lim_{n\to\infty} n^2[\arctan(n+1) - \arctan n]$ + +**解**: +利用公式 $\arctan a - \arctan b = \arctan\frac{a-b}{1+ab}$: +$$ +\begin{aligned} +\text{原式} &= \lim_{n \to \infty} n^2 \arctan\frac{(n+1)-n}{1+(n+1)n} \\ +&= \lim_{n \to \infty} n^2 \arctan\frac{1}{n^2+n+1} \\ +&= \lim_{n \to \infty} n^2 \cdot \frac{1}{n^2+n+1} \quad (\text{利用 }\arctan u\sim u\ (u\to0)) \\ +&= \lim_{n \to \infty} \frac{n^2}{n^2+n+1} = 1 +\end{aligned} +$$ + +### 4.5 注意事项与常见错误 + +**⚠️ 加减法替换的陷阱**: +已知 $a^x - 1 \sim x\ln a$;$x \sim \sin x$,但 +$$ +\lim_{x\to 0}\frac{a^x - 1 - x\ln a}{\sin x - x} +$$ +不能直接替换为 $\frac{0}{0}$! + +**正确解法(泰勒展开)**: +分子:$a^x - 1 - x\ln a = \left(1 + x\ln a + \frac{(x\ln a)^2}{2} + o(x^2)\right) - 1 - x\ln a = \frac{(x\ln a)^2}{2} + o(x^2)$ + +分母:$\sin x - x = -\frac{x^3}{6} + o(x^3)$ + +因此: +$$ +\frac{a^x - 1 - x\ln a}{\sin x - x} \sim \frac{\frac{(x\ln a)^2}{2}}{-\frac{x^3}{6}} = -3\frac{(\ln a)^2}{x} +$$ +当 $x\to 0^+$ 时 $\to -\infty$,$x\to 0^-$ 时 $\to +\infty$,极限不存在。 + +### 4.6 引入练习详解 + +计算 $\displaystyle \lim_{x\to0}\frac{\sqrt{1+2\tan x}-\sqrt{1+2\sin x}}{x\ln(1+x)-x^2}$ + +**解**: +$$ +\begin{aligned} +\text{原式} &= \lim_{x\to0}\frac{(\sqrt{1+2\tan x}-\sqrt{1+2\sin x})(\sqrt{1+2\tan x}+\sqrt{1+2\sin x})}{(x\ln(1+x)-x^2)(\sqrt{1+2\tan x}+\sqrt{1+2\sin x})} \\ +&= \lim_{x\to0}\frac{2(\tan x - \sin x)}{x[\ln(1+x)-x] \cdot 2} \quad (\text{分母中的}\sqrt{\cdots}+\sqrt{\cdots}\to 2) \\ +&= \lim_{x\to0}\frac{\tan x - \sin x}{x[\ln(1+x)-x]} \\ +&= \lim_{x\to0}\frac{\sin x(\frac{1}{\cos x}-1)}{x[\ln(1+x)-x]} \\ +&= \lim_{x\to0}\frac{\sin x}{x} \cdot \frac{1}{\cos x} \cdot \frac{1-\cos x}{\ln(1+x)-x} \\ +&= 1 \cdot 1 \cdot \lim_{x\to0}\frac{\frac{1}{2}x^2}{\ln(1+x)-x} +\end{aligned} +$$ + +对于 $\displaystyle \lim_{x\to0}\frac{\frac{1}{2}x^2}{\ln(1+x)-x}$: +利用 $\ln(1+x) = x - \frac{x^2}{2} + \frac{x^3}{3} + o(x^3)$ +得 $\ln(1+x)-x = -\frac{x^2}{2} + \frac{x^3}{3} + o(x^3) \sim -\frac{x^2}{2}$ + +因此: +$$ +\lim_{x\to0}\frac{\frac{1}{2}x^2}{\ln(1+x)-x} = \lim_{x\to0}\frac{\frac{1}{2}x^2}{-\frac{1}{2}x^2} = -1 +$$ + +故原式 $= -1$,答案为 **C**。 + +> **📋 等价无穷小使用总结**: +> 1. 熟记常用等价无穷小公式 +> 2. 乘除运算放心用,加减运算要小心 +> 3. 复杂表达式可先有理化、拆分再使用 +> 4. 不确定时可用泰勒展开验证 + +--- + +## 五、"抓大头"法(主导项法) + +### 5.1 基本原理 +在极限计算中,忽略低阶项,只保留最高阶项(主导项)。 + +### 5.2 适用情形 +1. **有理分式极限**:分子分母同除以最高次项 +2. **指对嵌套式**:提出指数最高次项 +3. **多项式与根式混合**:比较各项阶数 + +### 5.3 常见类型及方法 + +#### 类型一:有理分式 +对于 $\displaystyle \lim_{x\to\infty}\frac{a_nx^n + a_{n-1}x^{n-1} + \cdots + a_0}{b_mx^m + b_{m-1}x^{m-1} + \cdots + b_0}$: +- $n > m$:极限为 $\infty$ 或 $-\infty$(由系数符号决定) +- $n = m$:极限为 $\frac{a_n}{b_m}$ +- $n < m$:极限为 $0$ + +#### 类型二:指数型 +对于 $\displaystyle \lim_{n\to\infty}\ln(ae^{\alpha n} + be^{\beta n} + \cdots)$,其中 $\alpha > \beta > \cdots$: +提取 $e^{\alpha n}$:$= \alpha n + \ln(a + be^{(\beta-\alpha)n} + \cdots) \to \alpha n + \ln a$ + +### 5.4 典型例题 + +**例1**:计算 $\displaystyle \lim_{x\to0}\frac{\sqrt{1-4x}-\cos x}{x}$ + +**解**: +使用等价无穷小: +$\sqrt{1-4x} = 1 - 2x - \frac{(4x)^2}{8} + o(x^2) = 1 - 2x - 2x^2 + o(x^2)$ +$\cos x = 1 - \frac{x^2}{2} + o(x^2)$ + +因此: +$$ +\sqrt{1-4x} - \cos x = (1 - 2x - 2x^2) - (1 - \frac{x^2}{2}) + o(x^2) = -2x - \frac{3}{2}x^2 + o(x^2) +$$ + +原式 $= \displaystyle \lim_{x\to0}\frac{-2x - \frac{3}{2}x^2 + o(x^2)}{x} = \lim_{x\to0}(-2 - \frac{3}{2}x + o(x)) = -2$ + +**例2**:计算 $\displaystyle \lim_{x\to\infty}\frac{3x^3 - 2x^2 + 5}{2x^3 + 7x - 1}$ + +**解**: +分子分母同除以 $x^3$: +$$ +\lim_{x\to\infty}\frac{3 - \frac{2}{x} + \frac{5}{x^3}}{2 + \frac{7}{x^2} - \frac{1}{x^3}} = \frac{3}{2} +$$ + +**练习**:$\displaystyle \lim_{x \to 0} \frac{\csc x - \cot x}{x}$ + +**解**: +$$ +\csc x - \cot x = \frac{1}{\sin x} - \frac{\cos x}{\sin x} = \frac{1-\cos x}{\sin x} \sim \frac{\frac{1}{2}x^2}{x} = \frac{x}{2} +$$ + +故原式 $= \displaystyle \lim_{x\to0}\frac{x/2}{x} = \frac{1}{2}$ + +### 5.5 综合练习 + +**练习1**:$\displaystyle \lim_{x\to\infty}\frac{\sqrt{4x^2+3x+1} - \sqrt{4x^2-2x+5}}{x}$ + +**解**: +有理化: +$$ +\begin{aligned} +\text{原式} &= \lim_{x\to\infty}\frac{(4x^2+3x+1) - (4x^2-2x+5)}{x(\sqrt{4x^2+3x+1} + \sqrt{4x^2-2x+5})} \\ +&= \lim_{x\to\infty}\frac{5x-4}{x(\sqrt{4x^2+3x+1} + \sqrt{4x^2-2x+5})} \\ +&= \lim_{x\to\infty}\frac{5 - \frac{4}{x}}{\sqrt{4+\frac{3}{x}+\frac{1}{x^2}} + \sqrt{4-\frac{2}{x}+\frac{5}{x^2}}} \\ +&= \frac{5}{\sqrt{4}+\sqrt{4}} = \frac{5}{2+2} = \frac{5}{4} +\end{aligned} +$$ + +> **💡 "抓大头"的本质**: +> 在 $x\to\infty$ 时,$x^3$ 比 $x^2$ "大得多";在 $x\to0$ 时,$x^2$ 比 $x$ "小得多"。抓住这些主导项,忽略次要项,是快速求解极限的关键。 + +--- + +## 六、方法综合运用与总结 + +### 6.1 极限计算流程图 +``` +开始 + ↓ +判断极限类型 + ├── 0/0型 → 考虑:有理化、等价无穷小、洛必达 + ├── ∞/∞型 → 考虑:抓大头、洛必达 + ├── ∞-∞型 → 考虑:有理化、通分 + ├── 0·∞型 → 化为0/0或∞/∞ + └── 1^∞, 0^0, ∞^0型 → 取对数化为0/0型 + ↓ +选择合适方法 + ↓ +计算并验证 +``` + +### 6.2 方法选择指南 +| 方法 | 最佳适用场景 | 注意事项 | +|------|------------|----------| +| 有理化根式法 | 含根式的$\infty-\infty$或$0/0$型 | 注意分子分母分别有理化 | +| 夹逼定理法 | 求和、幂和根式、有界函数乘积 | 构造合适的不等式是关键 | +| 凑重要极限法 | 含$\sin x/x$或$(1+1/x)^x$结构 | 灵活使用变量代换 | +| 等价无穷小法 | 乘除运算中的复杂无穷小 | 加减运算中慎用 | +| 抓大头法 | $x\to\infty$的有理分式或指对式 | 明确各项阶数关系 | + +### 6.3 常见错误提醒 +1. **滥用等价无穷小**:在加减运算中随意替换 +2. **忽略定义域**:如$\sqrt{x}$在$x<0$时无定义 +3. **错误使用洛必达**:不满足$\frac{0}{0}$或$\frac{\infty}{\infty}$型 +4. **夹逼定理使用不当**:上下界极限不相等 +5. **重要极限变形错误**:$\lim (1+\frac{1}{x})^x = e$ 仅当$x\to\infty$ + +### 6.4 终极建议 +1. **先化简后计算**:有理化、通分、因式分解等 +2. **多方法验证**:用不同方法计算同一极限,验证结果 +3. **掌握泰勒展开**:这是极限计算的终极武器 +4. **积累常见结论**:如$\lim_{n\to\infty}\sqrt[n]{n}=1$,$\lim_{x\to0}\frac{\tan x - x}{x^3}=\frac{1}{3}$等 + +> **🚀 提升路径**: +> 1. 熟练掌握本文五种基本方法 +> 2. 学习洛必达法则(适用于0/0和∞/∞型) +> 3. 掌握泰勒公式展开(最强大的工具) +> 4. 练习综合题,培养方法选择直觉 + +**记住**:极限计算的核心思想是 **"化未知为已知,化复杂为简单"**。通过恒等变形、变量代换、等价替换等手段,将陌生的极限转化为熟悉的形式,再利用已知结论求解。 \ No newline at end of file diff --git a/编写小组/讲义/极限计算的基本方法(解析版).md b/编写小组/讲义/极限计算的基本方法(解析版).md new file mode 100644 index 0000000..b49dde7 --- /dev/null +++ b/编写小组/讲义/极限计算的基本方法(解析版).md @@ -0,0 +1,522 @@ +--- +tags: + - tool_idea + - 编写小组 +--- +# 有理化根式法 + +## Quick Description + +### 原理 + +通过平方差公式上下同乘有理化,使得 $\infty - \infty$ 或者 $\frac {0}{0}$ 等不定型变得可以处理,从而使极限可以计算 + +### 适用情况 + +分式中出现根式减根式,或形式本身为根式减根式,且极限过程导致出现不定型,常见的有 $\infty - \infty$ 和 $\frac {0}{0}$ + +### 优势和劣势 + +迅速处理上述问题,但注意一般只能处理含根式问题,若无根式,可能考虑抓大头法 + +一般 $\infty - \infty$ 经过有理化可以得到 $\frac{1}{\infty+\infty}$ + +而 $\frac {0}{0}$ 需要上下都经过有理化,一般能约掉一个因式,从而使其可以处理 + +### 例子 + +> [!example] 例1 +> 计算极限 $\lim_{x \to \infty}(\sqrt{x^{2}+1}-\sqrt{x^{2}-1})$ + +观察到这里是根式减根式,并且是不定型 $\infty - \infty$,考虑使用有理化根式法 + +则有$$\begin{align*} +\lim_{x \to \infty}(\sqrt{x^{2}+1}-\sqrt{x^{2}-1}) +&= \lim_{x \to \infty} \frac{2} {\sqrt{x^{2}+1}+\sqrt{x^{2}-1}} \\[1em] +&= 0 +\end{align*}$$ +> [!example] 例2 +> 计算极限 $\lim_{x \to 4} \frac{\sqrt{2x+1}-3} {\sqrt{x-2}-\sqrt{2}}$ + +观察到这里是根式减根式,并且是不定型 $\frac {0}{0}$ ,考虑使用有理化根式法 + +则有$$\begin{align*} +\lim_{x \to 4} \frac{\sqrt{2x+1}-3} {\sqrt{x-2}-\sqrt{2}} +&= \lim_{x \to 4} \frac{(\sqrt{x-2}+\sqrt{2}) } {x-4} \frac{2(x-4)}{ (\sqrt{2x+1}+3) } \\[1em] +&= 2\lim_{x \to 4} \frac{(\sqrt{x-2}+\sqrt{2}) } {\sqrt{2x+1}+3}\\[1em] +&= \frac{2\sqrt{2}}{3} +\end{align*}$$ +# 夹逼定理法 + +## Quick Description + +### 原理 + +被“夹”在中间的函数,会被两边函数的共同极限“逼”出相同的极限 + +### 适用情况 + +1.针对形如 $\lim\limits_{n\to\infty}\sum_{k=1}^{n}a_{k}$ 的式子,尤其是每一项 $a_{k}$ 含 $n$ 和 $k$、无法直接求和的情况(或连乘) + +2.对于给定的  $m$  个正数  $a_1, a_2, \dots, a_m ,\lim_{n \to \infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max\{a_1, a_2, \dots, a_m\}$. + +3.有界函数放缩 + +### 优势和劣势 + +#### 优势 + +1. 处理复杂表达式的有效工具,对于形式复杂、不易直接化简的极限(如 $\sqrt[n]{a_1^n + \cdots + a_m^n}$  这类“混合幂和”) + +2. 不依赖具体函数形式 + +3. 特别适合涉及  $n \to \infty$  的离散极限 + +4. 直观易懂 + +#### 劣势 + +1. 需要合适的不等式构造,必须找到恰当的上下界,既要容易求极限,又要在所求极限点处上下界极限相等。有时不容易找到这样的函数。 + +2. 可能高估或低估范围 + +3. 对振荡型函数有时不适用 + +## 例子 + +### 类型一: + +> [!example] 例1 +> 求极限 +> $$\lim_{n \to \infty} \left( \frac{n+1}{n^2+1} + \frac{n+2}{n^2+2} + \cdots + \frac{n+n}{n^2+n} \right)$$ + +1. 放缩: + +   对  $k = 1, 2, \dots, n$  ,有$$n^2+1 \le n^2+k \le n^2+n$$因此 +   $$\frac{n+k}{n^2+n} \le \frac{n+k}{n^2+k} \le \frac{n+k}{n^2+1}$$ +2. 求和: + +      分子和:$$\sum_{k=1}^n (n+k) = n\cdot n + (1+2+\cdots+n) + +   = n^2 + \frac{n(n+1)}{2} + +   = \frac{2n^2 + n(n+1)}{2} + +   = \frac{3n^2+n}{2}$$于是: +$$\frac{\frac{3n^2+n}{2}}{n^2+n} + +   \le S_n \le + +   \frac{\frac{3n^2+n}{2}}{n^2+1} + +   其中  S_n = \sum_{k=1}^n \frac{n+k}{n^2+k}$$ +3. 求上下极限: +   $$\lim_{n\to\infty} \frac{\frac{3n^2+n}{2}}{n^2+n} + +   = \lim_{n\to\infty} \frac{3n^2+n}{2(n^2+n)} + +   = \frac{3}{2}$$ +$$\lim_{n\to\infty} \frac{\frac{3n^2+n}{2}}{n^2+1} + +   = \lim_{n\to\infty} \frac{3n^2+n}{2(n^2+1)} + +   = \frac{3}{2}$$ +4. 夹逼得: $$ \lim_{n\to\infty} S_n = \frac{3}{2}$$ + +> [!example] 例2 +> 证明:$$\lim_{n\to\infty} \frac{n!}{n^n} = 0$$ + +证明: +$$0 < \frac{n!}{n^n} + += \frac{1}{n} \cdot \frac{2}{n} \cdots \frac{n}{n} + +\le \frac{1}{n} \cdot 1 \cdot 1 \cdots 1 + += \frac{1}{n}$$ +因为 +$$0 \le \frac{n!}{n^n} \le \frac{1}{n} + +\quad\text{且}\quad + +\lim_{n\to\infty} \frac{1}{n} = 0$$ +由夹逼定理得: +$$\lim_{n\to\infty} \frac{n!}{n^n} = 0$$ + + +### 类型二: + +> [!example] 例3 +> 设  $f(x) = \lim_{n \to \infty} \sqrt[n]{1 + x^n + \left( \frac{x^2}{2} \right)^n} , x \geq 0$,问  $f(x)$  是否为连续函数。 + +解析: + +1. 提取主要项法 + +常用结论: + +若  $a_k > 0$ ,则 +$$\lim_{n\to\infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max\{a_1, a_2, \dots, a_m\}$$ +这里比较的三项为: +$$a_1 = 1, \quad a_2 = x, \quad a_3 = \frac{x^2}{2}$$ +2. 分区间求最大值 + +比较 $1$、$x$、$\frac{x^2}{2}$ 的大小随 $x$ 变化: + +1. 当 $0 \le x \le 1$ + +      $x \le 1$,且 $\frac{x^2}{2} \le \frac12 < 1$,最大的是 $1$。 + +2. 当 $1 < x \le 2$ + +      此时 $x > 1$,比较 $x$ 与 $\frac{x^2}{2}$: +   $$x \ge \frac{x^2}{2} \quad \Leftrightarrow \quad 2x \ge x^2 \quad \Leftrightarrow \quad x \le 2$$ + +   在 (1, 2] 内,$x \ge \frac{x^2}{2}$;同时 $x > 1$,所以最大值是 $x$。 + +3. 当 $x > 2$ + +      比较 $x$ 与 $\frac{x^2}{2}$: + +      $\frac{x^2}{2} > x \ (x > 2)$,且显然 $\frac{x^2}{2} > 1$,所以最大值是 $\frac{x^2}{2}$。 + +4. 极限结果 + +$$f(x) = \max\left\{1, x, \frac{x^2}{2} \right\} = + +\begin{cases} + +1, & 0 \le x \le 1, \\ + +x, & 1 < x \le 2, \\ + +\frac{x^2}{2}, & x > 2. + +\end{cases}$$ + +4. 连续性检查 + +· 在 $x=1$ 处: + +    $x \to 1^- 时 f(x) = 1$; + +    $x \to 1^+ 时 f(x) = x \to 1,且 f(1)=1,连续$ + +· 在 $x=2$ 处: + +    $x \to 2^- 时 f(x) = x \to 2$; + +    $x \to 2^+ 时 f(x) = \frac{x^2}{2} \to 2,且 f(2) = 2,连续$ + +因此 $f(x)$ 在 $[0,+\infty) 上连续$ + +最终答案: +$$\boxed{f(x) = + +\begin{cases} + +1, & 0 \le x \le 1, \\ + +x, & 1 < x \le 2, \\ + +\frac{x^2}{2}, & x > 2. + +\end{cases}}$$ + +> [!example] 例4 +> 证明$\lim_{n\to\infty} \sqrt[n]{3^n + 5^n + 7^n} = 7$ + +证明: +$$7^n < 3^n + 5^n + 7^n \le 7^n + 7^n + 7^n = 3\cdot 7^n$$ +两边开 n 次方: +$$7 < \sqrt[n]{3^n + 5^n + 7^n} \le 7 \cdot \sqrt[n]{3}$$ +而 $$\displaystyle \lim_{n\to\infty} \sqrt[n]{3} = 1$$由夹逼定理得: +$$\lim_{n\to\infty} \sqrt[n]{3^n + 5^n + 7^n} = 7$$ + +### 类型三: + +> [!example] 例5 +> 求函数极限 $\lim\limits_{x\to0}x^2\sin\frac{1}{x}$ + +解析: + +1.  **利用有界函数放缩** + +    已知正弦函数的值域:$-1\le\sin\frac{1}{x}\le1$($x\neq0$) + +    两边同乘 $x^2$($x^2\ge0$,不等号方向不变): + +    $$-x^2\le x^2\sin\frac{1}{x}\le x^2$$ + +2.  **求上下界的极限** + +    左边极限:$\lim\limits_{x\to0}(-x^2)=0$ + +    右边极限:$\lim\limits_{x\to0}x^2=0$ + +3.  **应用夹逼定理** + +上下界极限均为 $0$,因此 $\lim\limits_{x\to0}x^2\sin\frac{1}{x}=0$ + +> [!example] 例6 +> 证明:$\lim_{n\to\infty} \sqrt[n]{2 + \sin^2 n} = 1$ + +证明: + +$$1 \le 2 + \sin^2 n \le 3$$ +所以 +$$\sqrt[n]{1} \le \sqrt[n]{2 + \sin^2 n} \le \sqrt[n]{3}$$ +即 +$$1 \le \sqrt[n]{2 + \sin^2 n} \le 3^{1/n}$$ +而 $\displaystyle \lim_{n\to\infty} 3^{1/n} = 1$,由夹逼定理: +$$\lim_{n\to\infty} \sqrt[n]{2 + \sin^2 n} = 1$$ +# 凑重要极限法 + +## 原理: + +两个重要极限 +$$(1)\lim\limits_{x \to 0} \frac{sinx}{x}=1$$$$(2)\lim\limits_{x \to 0} \frac{e^x-1}{x}=1$$ + +## 适用情况 + +x是形式的,也就是说,只要是一个趋于0的函数放在上面两个极限中x的位置,极限的结果仍然不变。首先得是一个除法的形式,如果是乘法,就转化成除以另一个函数的倒数,比如 + +$$\lim\limits_{x \to \infty} x(e^\frac{1}{x}-1)=\lim\limits_{x \to \infty } \frac{e^\frac{1}{x}-1}{\frac{1}{x}}=1$$ + +这就是一个常见的化简思路。 + +## 例子 + +> [!example] 计算下列极限: +> (1)$$\lim\limits_{x \to 0} \frac {x-sin2x}{x+sin3x}$$ +> (2)$$\lim\limits_{x \to 0} (\frac{1-x}{1+3x})^{1/x}$$ + +解:(1) +$$\lim\limits_{x\to0}\frac{x-sin2x}{x+sin3x}=\lim\limits_{x\to0}\frac{1-2\frac{sin2x}{2x}}{1+3\frac{sin3x}{3x}}=\frac{1-2}{1+3}=-\frac{1}{4}$$ +(2) + +原式等于$$\lim\limits_{x\to0}[(1+\frac{1}{\frac{-4x}{1+3x}})]^{1/x}$$ +令$$\frac{-4x}{1+3x}=\frac{1}{t}$$则$$1/x=-4t-3$$则原式等于 +$$\lim\limits_{t\to\infty}(1+1/t)^{-4t-3}=\lim\limits_{t\to\infty}[(1+1/t)^t]^{-4}*(1+1/t)^{-3}=e^{-4}$$ + +> [!example] 例2 +> 已知$$\lim\limits_{x\to\infty}(\frac{x+1}{x+k})^x=\lim\limits_{x\to0}e^{\frac{sin4x}{x}}$$则常数k的值为__ + +解: + +左边=$$\lim\limits_{x\to\infty}\frac{(1+1/x)^x}{(1+k/x)^x}=\lim\limits_{x\to\infty}\frac{(1+1/x)^x}{(1+\frac{1}{(x/k)})^{(x/k)*k}}=\frac{e}{e^k}=e^{1-k}$$ + +右边=$$e^{\lim\limits_{x\to0}{\frac{sin4x}{x}}}=e^4$$ +故$$e^{1-k}=e^4,k=-3$$ + +**课后习题:** + +(1)$\lim\limits_{x\to0}(\frac{a^x+b^x}{2})^{3/x}  (a,b>0)$ + +(2)$\lim\limits_{x\to\infty}\frac{3x^2+5}{5x+3}sin\frac{2}{x}$ + +(3)$\lim\limits_{x\to\pi/4}\frac{tanx-1}{x-\pi/4}$ + +(4)$\lim\limits_{x\to\pi/2}(sinx)^{tanx}$ + +解: + +(1) + +$$\begin{aligned} +\lim\limits_{x\to0}(\frac{a^x+b^x}{2})^{3/x} +&=\lim\limits_{x\to0}(\frac{a^x-1}{2}+\frac{b^x-1}{2}+1)^{3/x}\\[1em] +&=\lim\limits_{x\to0}(\frac{e^{xlna}-1}{2}+\frac{e^{xlnb}-1}{2}+1)^{3/x} \\[1em] +&=\lim\limits_{x\to0}(\frac{xlna}{2}+\frac{xlnb}{2}+1)^{3/x} \\[1em] +&=\lim\limits_{x\to0}(1+\frac{lnab}{2}x)^{\frac{2}{xlnab}\frac{3lnab}{2}}\\[1em] +&=e^{\frac{3lnab}{2}}\\[1em] +&=(ab)^{3/2} +\end{aligned}$$ + +(2) + +$$\lim\limits_{x\to\infty}\frac{3x^2+5}{5x+3}sin\frac{2}{x}=\lim\limits_{x\to\infty}\frac{6x^2+10}{5x^2+3x}\frac{sin\frac{2}{x}}{\frac{2}{x}}=\frac{6}{5}$$ + +(3) + +令 + +$$t = x - \frac{\pi}{4} \quad \Rightarrow \quad x = t + \frac{\pi}{4},\ t \to 0.$$ + +则$\tan x = \tan\left(t + \frac{\pi}{4}\right) = \frac{\tan t + 1}{1 - \tan t}$. + +于是$\tan x - 1 = \frac{\tan t + 1}{1 - \tan t} - 1$ + +$$= \frac{2\tan t}{1 - \tan t}.$$ + +代入原极限:$$\lim\limits_{x\to\pi/4} \frac{\tan x - 1}{x - \pi/4} + += \lim\limits_{t\to 0} \frac{\frac{2\tan t}{1 - \tan t}}{t} + += \lim\limits_{t\to 0} \frac{2\tan t}{t(1 - \tan t)}.$$ + +利用重要极限 $\displaystyle \lim_{u\to 0} \frac{\tan u}{u} = 1:\frac{2\tan t}{t(1 - \tan t)} = 2 \cdot \frac{\tan t}{t} \cdot \frac{1}{1 - \tan t}$ + +当 $t \to 0$ 时,$\tan t \to 0,\lim\limits_{t\to 0} \frac{\tan t}{t} = 1,\quad \lim\limits_{t\to 0} (1 - \tan t) = 1.$ + +所以$$\lim\limits_{t\to 0} 2 \cdot \frac{\tan t}{t} \cdot \frac{1}{1 - \tan t} + += 2 \cdot 1 \cdot \frac{1}{1 - 0} = 2$$ + +(4) + +原式=$\lim\limits_{x\to\pi/2}(1+sinx-1)^{\frac{1}{sinx-1}\frac{sinx(sinx-1)}{cosx}}=e^{\lim\limits_{x\to\pi/2}\frac{sinx(sinx-1)}{cosx}}$ + +令$t=\pi/2-x$,则原式=$e^{\lim\limits_{t\to0}\frac{cost(cost-1)}{sint}}=e^{\lim\limits_{t\to0}\frac{cost(-t^2/2)}{t}}=e^0=1$ + +# 等价无穷小求极限法 + +本质是利用已知公式进行等价无穷小因子的代换将复杂函数化简 + +引入练习:计算 +$$\lim\limits_{x\to0}\frac{\sqrt{1+2tanx}-\sqrt{1+2sinx}}{xln(1+x)-x^2}$$     +A、原式= $\infty$ +B、原式=1 +C、原式=-1 +D、原式=0 + + +原式等于$$2\lim\limits_{x\to0}\frac{tanx-sinx}{x[ln(1+x)-x]}\frac{1}{\sqrt{1+2tanx}+\sqrt{1+2sinx}}$$ + +$$=2\lim\limits_{x\to 0} \frac{sinx(1/cosx-1)} {x[ln(1+x)-x]} \frac{1}{\sqrt{1+2tanx}+ \sqrt{1+2sinx}}$$ + +$$=\lim\limits_{x\to0}\frac{sinx}{x}\frac{1}{cosx}\frac{1-cosx}{ln(1+x)-x}$$ + +$$=-1$$ + +解题思路:含有根式函数的极限,可先考虑有限化,然后再用四则运算、等价无穷小等方式求极限 + +> [!example] 例1 +> 计算 $\displaystyle \lim_{x\to 0}\frac{\sin mx}{\sin nx}$ + +答: + +由 $x \sim \sin x$(等价无穷小): + +$$\lim_{x\to 0}\frac{\sin mx}{\sin nx} + += \lim_{x\to 0}\frac{mx}{nx} + += \frac{m}{n}.$$ + +> [!example] 例2 +> 计算 $$\displaystyle \lim_{x\to 0}(\cos x)^{\frac{1+x}{\sin^2 x}}$$ + +答: + +小技巧,针对复杂幂函数——取对数。 + +不妨取原式对数,得 + +$$\lim_{x\to 0}\ln\left[(\cos x)^{\frac{1+x}{\sin^2 x}}\right] + += \lim_{x\to 0}\frac{1+x}{\sin^2 x}\ln(\cos x)$$ + +由 $x \sim \sin x \sim \ln(1+x)$;$1-\cos x \sim \frac{1}{2}x^2$: + +$$ln(\cos x) \sim \cos x - 1 \sim -\frac{1}{2}x^2$$ + +$$\begin{aligned} +\lim_{x\to 0}\frac{1+x}{\sin^2 x}\ln(\cos x) + +&= \lim_{x\to 0}\frac{1+x}{x^2} \cdot \lim_{x\to 0}\left(-\frac{1}{2}x^2\right) \\[1em] + +&= \lim_{x\to 0}\frac{1+x}{x^2} \cdot \left(-\frac{1}{2}x^2\right) \\[1em] + +&= -\frac{1}{2}\lim_{x\to 0}\frac{(1+x)}{x^2} \cdot x^2 \\[1em] + +&= -\frac{1}{2} +\end{aligned}$$ + + + +所以 +$$\lim_{x\to 0}(\cos x)^{\frac{1+x}{\sin^2 x}} = e^{-\frac{1}{2}}$$ + + +## 加减运算的替换限制 + +对于加减运算,需要进行无穷小阶数的比较,若两同阶无穷小相加为零,要注意此时可能无法代换, + +因为此时可能会丢失高阶信息,所以有“加减不替换”的说法。 + +如:已知 $a^x - 1 \sim x\ln a$;$x \sim \sin x$, + +$$\lim_{x\to 0}\frac{a^x - 1 - x\ln a}{\sin x - x}$$ + +因为分子为0,整个式子为0?事实并非如此。 + +$$\textbf{拓展:}由泰勒展开可得,分子实际上等于$$ +$$\left( x\ln a + \frac{(x\ln a)^2}{2} + \frac{(x\ln a)^3}{6} + o(x^3) \right) - x\ln a + += \frac{(x\ln a)^2}{2} + o(x^2).$$ + +分母:$\sin x - x = -\frac{x^3}{6} + o(x^3)$,因此 +$$\frac{a^x - 1 - x\ln a}{\sin x - x} \sim \frac{\frac{(x\ln a)^2}{2}}{-\frac{x^3}{6}} + += -3\frac{(\ln a)^2}{x} \to + +\begin{cases} + +-\infty, & x\to 0^+,\\ + ++\infty, & x\to 0^-. + +\end{cases}$$ + + +练习:计算 $\displaystyle \lim_{n\to\infty} n^2[\arctan(n+1) - \arctan n]$ + +由 $\arctan x \sim x$ 得?注意此时 $n\to\infty$。 + +$$\begin{aligned}\text{原式} +&= \lim_{n \to \infty} n^2 \left[ \arctan \frac{(n+1)-n}{1+(n+1)n} \right] \\[1em] +&= \lim_{n \to \infty} n^2 \left[ \arctan \frac{1}{n^2 + n + 1} \right] \\[1em] +&= \lim_{n \to \infty} n^2 \cdot \frac{1}{n^2 + n + 1} \quad (\text{因为 } \arctan x \sim x \text{ 当 } x \to 0) \\[1em] +&= 1 +\end{aligned}$$ + +二、常见等价无穷小结 + +$$x \sim \sin x \sim \tan x \sim \sin^{-1} x \sim \tan^{-1} x \sim e^x - 1 \sim \ln(1 + x)$$ +$$1 - \cos x \sim \frac{1}{2}x^2 \quad $$ +$$(1 + x)^a - 1 \sim ax$$ +$$a^x - 1 \sim x \ln a \quad (a > 0)$$ + + +熟悉常见的极限,灵活运用好极限的四则运算法则和等价无穷小,已经能够解决绝大多数的极限计算题了,无论是简单题还是难题。很多看上去很复杂的所谓难题,无非是在四则运算和等价无穷小之间反复套娃而已,如果可以熟练的分离这些特征,其实不需要泰勒公式等“高级工具”就能快速准确地得出极限值。当然,不是贬低其他的工具,只是说不要学习了所谓的一些高级工具之后,就不重视这些初级的工具和结论。 + +# 抓大头”求极限法 + +1、形如 + +$$\frac{ax^n + bx^{n-1} + \ldots + p}{cx^m + \beta x^{m-1} + \ldots + \xi}$$ + +的多项式相除:上下同除x的最高次项,再上下各自求极限 + +2、形如 + +$$\ln(ae^{an} + \ldots + p)$$ + +的指对嵌套:先提出e的最高次项,转化为 + +$$\ln e^{\alpha n} \left( a + \frac{\cdots}{e^{\alpha n}} \right)$$ + +即 + +$$\alpha n + \ln \left( a + \frac{\cdots}{e^{\alpha n}} \right)$$ + +> [!example] 例1 +> 计算$$\lim\limits_{x\to0}\frac{\sqrt{1-4x}-cosx}{x}=$$ + +答案:-2 + + +小练习: + +$$\lim_{x \to 0} \frac{\csc(x) - \cot(x)}{x}=$$ \ No newline at end of file diff --git a/编写小组/讲义/级数敛散性的基本思路和方法.md b/编写小组/讲义/级数敛散性的基本思路和方法.md new file mode 100644 index 0000000..99aef78 --- /dev/null +++ b/编写小组/讲义/级数敛散性的基本思路和方法.md @@ -0,0 +1,615 @@ +--- +tags: + - 编写小组 +--- +**内部资料,禁止传播** +**编委会(不分先后,姓氏首字母顺序):韩魏 刘柯妤 卢吉辚 王轲楠 支宝宁 郑哲航** + +# 前情提要 + +## 几何级数 + +### 定义 + +几何级数是指形如 + +$$ +\sum_{n=0}^{\infty} ar^n = a + ar + ar^2 + ar^3 + \cdots +$$ + +的无穷级数,其中: +- $a \neq 0$ 是首项(常数) +- $r$ 是公比(常数) + +### 敛散性结论 +| 公比 $r$ 的范围 | 敛散性 | 和(当收敛时) | +| ---------- | --- | -------------------- | +| $r<1$ | 收敛 | $S = \dfrac{a}{1-r}$ | +| $r\ge 1$ | 发散 | 不存在 | + +--- + +### 证明 + +#### 一、部分和公式 +首先推导第 $n$ 项部分和 $S_n$ 的公式: + +$$ +S_n = a + ar + ar^2 + \cdots + ar^{n-1} +$$ + +当 $r \neq 1$ 时,两边乘以 $r$: + +$$ +rS_n = ar + ar^2 + ar^3 + \cdots + ar^n +$$ + +两式相减: + +$$ +S_n - rS_n = a - ar^n +$$ + +解得: + +$$ +S_n = a \cdot \frac{1 - r^n}{1 - r} \quad (r \neq 1) +$$ + +当 $r = 1$ 时: + +$$ +S_n = a + a + \cdots + a = na +$$ + +--- + +#### 二、敛散性分析 + +##### 情形1:$|r| < 1$ 时收敛 +当 $|r| < 1$ 时,$\lim_{n \to \infty} r^n = 0$ + +$$ +\lim_{n \to \infty} S_n = \lim_{n \to \infty} a \cdot \frac{1 - r^n}{1 - r} = \frac{a}{1 - r} +$$ + +所以级数收敛,和为 $S = \dfrac{a}{1-r}$。 + +##### 情形2:$|r| > 1$ 时发散 +当 $|r| > 1$ 时,$\lim_{n \to \infty} |r|^n = \infty$ + +$$ +\lim_{n \to \infty} S_n = \lim_{n \to \infty} a \cdot \frac{1 - r^n}{1 - r} \quad \text{不存在(趋于无穷)} +$$ + +所以级数发散。 + +##### 情形3:$r = 1$ 时发散 +$S_n = na$,当 $a \neq 0$ 时: + +$$ +\lim_{n \to \infty} S_n = \lim_{n \to \infty} na = \infty +$$ + +所以级数发散。 + +##### 情形4:$r = -1$ 时发散 +此时级数为: + +$$ +a - a + a - a + \cdots +$$ + +部分和为: +- $S_1 = a$ +- $S_2 = 0$ +- $S_3 = a$ +- $S_4 = 0$ +- ... + +当 $a \neq 0$ 时,部分和序列在 $a$ 和 $0$ 之间振荡,没有极限,所以发散。 + +##### 情形5:$r = -1$ 且 $a = 0$ +这是平凡情况,级数恒为 0,收敛于 0(但通常几何级数定义要求 $a \neq 0$)。 + +--- + +#### 三、直观理解 +1. **$|r| < 1$**:项以指数速度衰减,总和有限 +2. **$|r| \ge 1$**:项不衰减或增长,总和无限或振荡 + +**例子:** +- $\sum_{n=0}^{\infty} \left(\dfrac{1}{2}\right)^n = 1 + \dfrac{1}{2} + \dfrac{1}{4} + \cdots = 2$(收敛) +- $\sum_{n=0}^{\infty} 2^n = 1 + 2 + 4 + \cdots$(发散) +- $\sum_{n=0}^{\infty} (-1)^n = 1 - 1 + 1 - 1 + \cdots$(发散) + +--- + +### 几何级数与p级数的对比 +| 特征 | 几何级数 | p级数 | +| ------ | ---------------- | ---------------- | +| 通项 | $ar^n$ | $\dfrac{1}{n^p}$ | +| 敛散性 | 只与 $r$ 有关 | 只与 $p$ 有关 | +| 收敛条件 | $r< 1$ | $p > 1$ | +| 和(收敛时) | $\dfrac{a}{1-r}$ | 无简单通式(除特殊p值) | +| 衰减速度 | 指数衰减 | 幂次衰减 | + +--- + +**几何级数小结:** +- 最简单的无穷级数之一 +- 完全解决了敛散性问题 +- 在收敛时,有简洁的求和公式 +- 是许多复杂级数分析的基础 + +--- + +### 记忆技巧 +1. **收敛条件**:公比的绝对值小于1 +2. **求和公式**:首项除以 $(1 - 公比)$ +3. **几何意义**:几何级数得名于相邻项的比值恒定(几何性质) + + +## p 级数 + +### 定义 + +p 级数是指形如 + +$$ +\sum_{n=1}^{\infty} \frac{1}{n^p} +$$ + +的无穷级数,其中 $p$ 是实数。 + +### 敛散性结论 +- **$p > 1$**:级数收敛 +- **$p \le 1$**:级数发散 + +--- + +### 证明(初等方法) + +#### 一、准备工作 +1. **调和级数发散**:$\sum_{n=1}^{\infty} \frac{1}{n}$ 发散 +2. **几何级数收敛**:当 $|r| < 1$ 时,$\sum_{n=0}^{\infty} r^n$ 收敛 + +--- + +#### 二、当 $0 < p \le 1$ 时发散 + +**证明步骤:** + +1. 对于任意 $0 < p \le 1$,有 $n^p \le n$ +2. 因此: + $$ + \frac{1}{n^p} \ge \frac{1}{n} + $$ +3. 已知调和级数 $\sum_{n=1}^{\infty} \frac{1}{n}$ 发散 +4. 由比较判别法: + - 若 $\sum a_n$ 发散,且 $b_n \ge a_n > 0$,则 $\sum b_n$ 也发散 + - 这里 $b_n = \frac{1}{n^p}$,$a_n = \frac{1}{n}$ +5. 所以当 $0 < p \le 1$ 时,p 级数发散 + +**注:** $p = 1$ 就是调和级数本身。 + +--- + +#### 三、当 $p > 1$ 时收敛 + +**证明(分组求和法):** + +将级数分组: + +$$ +\begin{aligned} +S &= 1 + \frac{1}{2^p} + \frac{1}{3^p} + \frac{1}{4^p} + \frac{1}{5^p} + \frac{1}{6^p} + \frac{1}{7^p} + \frac{1}{8^p} + \cdots \\ +&= 1 + \left(\frac{1}{2^p} + \frac{1}{3^p}\right) + \left(\frac{1}{4^p} + \frac{1}{5^p} + \frac{1}{6^p} + \frac{1}{7^p}\right) + \left(\frac{1}{8^p} + \cdots + \frac{1}{15^p}\right) + \cdots +\end{aligned} +$$ + +**分组规则:** +- 第 1 组:1 项 +- 第 2 组:2 项 +- 第 3 组:4 项 +- 第 4 组:8 项 +- ... +- 第 $k$ 组:$2^{k-1}$ 项 + +**估计第 $k$ 组的和:** +第 $k$ 组从 $n = 2^{k-1}$ 到 $n = 2^k - 1$,共 $2^{k-1}$ 项。 + +由于 $f(x) = \frac{1}{x^p}$ 递减,组内每项不超过第一项: + +$$ +\frac{1}{n^p} \le \frac{1}{(2^{k-1})^p} \quad (n \ge 2^{k-1}) +$$ + +第 $k$ 组和的上界: + +$$ +S_k \le 2^{k-1} \cdot \frac{1}{(2^{k-1})^p} = 2^{(k-1)(1-p)} +$$ + +**总和估计:** + +$$ +S \le 1 + 2^{1(1-p)} + 2^{2(1-p)} + 2^{3(1-p)} + \cdots +$$ + +令 $r = 2^{1-p}$,则: + +$$ +S \le 1 + r + r^2 + r^3 + \cdots +$$ + +当 $p > 1$ 时,$1-p < 0$,所以: + +$$ +r = 2^{1-p} < 2^0 = 1 +$$ + +右边是公比 $0 < r < 1$ 的几何级数,收敛到 $\frac{1}{1-r}$。 + +因此原级数的部分和有上界,且单调递增(各项为正),故级数收敛。 + +--- + +#### 四、直观理解 + +1. **$p \le 1$**:项衰减太慢,类似调和级数,总和无限增大 +2. **$p > 1$**:项衰减足够快,总和有限 + +**特例:** +- $p = 2$:$\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}$ +- $p$ 越大,收敛越快 + +--- + +#### 补充:$p \le 0$ 的情况 + +若 $p \le 0$,则 $-p \ge 0$,通项 $n^{-p} \ge 1$ 不趋于 0,由级数收敛的必要条件知发散。 + +--- + +**总结:** +| $p$ 的范围 | 敛散性 | 关键原因 | +|------------|--------|----------| +| $p > 1$ | 收敛 | 分组求和,几何级数控制 | +| $0 < p \le 1$ | 发散 | 与调和级数比较 | +| $p \le 0$ | 发散 | 通项不趋于零 | + + + +# 部分和判别法 + +## **原理** + +对于级数 $\sum_{n=1}^{\infty}u_n$,构造其部分和数列 $S_n=u_1+u_2+\dots+u_n$。若极限 $\lim\limits_{n\to\infty}S_n=S$(S 为有限常数),则级数收敛,且和为 S;若该极限不存在(或为无穷大),则级数发散。 + +## **适用情况** + +适用于部分和可通过公式化简求和的级数,典型类型包括: + +1.等比级数:$\sum_{n=1}^{\infty}aq^{n-1}(a\neq0)$,部分和 $S_n=\frac{a(1-q^n)}{1-q}$; + +2.裂项相消型级数:如 $\sum_{n=1}^{\infty}\frac{1}{n(n+1)}$,通项可拆为 $\frac{1}{n}-\frac{1}{n+1}$,部分和可逐项抵消化简; + +3. 少数可通过错位相减、分组求和的特殊级数。 + +## **优势** + +1. 本质性强:直接基于级数收敛的定义,判定结果准确,还能同时求出级数的和,这是比值、比较判别法等无法做到的。 + +2. 无形式限制:不像比值判别法依赖通项的阶乘、指数结构,只要部分和能化简,任何类型级数都适用。 + +## **劣势** + +1. 适用范围极窄:绝大多数级数的部分和无法用初等函数化简(如调和级数 $\sum\frac{1}{n}$、$\sum\frac{n}{2^n}$虽能判定敛散性,但部分和无简单表达式)。 + +2. 计算难度高:裂项、错位相减等求和技巧性强,对复杂通项不易找到化简方法。 + +3. 效率低:对比判别法,求部分和的步骤通常更繁琐,不适用于快速判定敛散性。 + +## **例子** + +>[!example] **例1** +>判定级数 $\sum_{n=1}^{\infty}\frac{2}{(2n-1)(2n+1)}$的敛散性,若收敛求其和 + + + +>[!example] **例2** +判断级数$\sin \frac{\pi}{6} + \sin \frac{2\pi}{6} + \cdots + \sin \frac{n\pi}{6} + \cdots$的敛散性 + + + +# **级数运算性质判别法** + +## **原理** + +1. 线性运算性质的应用 + +设$\sum u_n、\sum v_n$ 为已知敛散性的级数,k 为非零常数: + +- 若 $\sum u_n$ 收敛,则 $\sum ku_n$ 收敛;若 $\sum u_n$ 发散,则 $\sum ku_n$ 发散。 + +- 若 $\sum u_n$ 和 $\sum v_n$ 都收敛,则 $\sum(u_n\pm v_n)$ 收敛。 + +- 若 $\sum u_n$ 收敛、$\sum v_n$ 发散,则 $\sum(u_n\pm v_n)$ 发散。 + +注:若两者都发散,$\sum(u_n\pm v_n)$ 敛散性不确定。 + +2. 添减/改变有限项性质的应用 + +对任意级数,增加、去掉或改变有限项,不改变其敛散性。 + +例:$\sum_{n=3}^{\infty}\frac{1}{2^n}$ 收敛,因为它是收敛等比级数 $\sum_{n=1}^{\infty}\frac{1}{2^n}$ 去掉前2项得到的。 + +3. 正项级数重组性质的应用 + +若正项级数 $\sum u_n$ 收敛,任意重排其项得到的新级数仍收敛,且和不变。 + +## **适用情况** + +1. 待判定级数可拆分为两个或多个已知敛散性的级数的线性组合(如 $\sum (u_n\pm v_n)、\sum ku_n)$。 + +2. 级数仅增减、改变有限项,或对正项级数进行项的重组。 + +3. 已知级数多为基础类型(等比级数、$p$-级数、调和级数等),便于直接套用性质。 + +## **优势** + +1. 快捷高效:无需计算极限或构造不等式,直接利用已知结论推导,步骤简洁。 + +2. 既适用于正项级数,也适用于任意项级数(如交错级数)。 + +## **劣势** + +1. 依赖性强:必须依赖已知敛散性的“参考级数”,若无法拆分或无合适参考级数,则无法使用。 + +2. 有局限性:对于 $\sum u_n$ 和 $\sum v_n$ 均发散的情况,$\sum (u_n\pm v_n)$ 的敛散性无法直接判定,性质失效。 + +## **例子** + +>[!example] **例1** +>判断级数$\sum_{n=1}^{\infty} (-1)^n \frac{n+2}{n+1} \cdot \frac{1}{\sqrt{n}}$的敛散性。 + + +>[!example] **例2** +讨论级数$\sum_{n=2}^{\infty} \frac{(-1)^n}{\sqrt{n} + (-1)^n}$的敛散性 + + +# 比较判别法 + +## Quick Description + +### 原理 + +不等式形式:放缩,大敛则小敛,小散则大散 + +极限形式:比值的极限为常数,则同敛散 + +### 适用情况 + +正项级数 + +### 优势和劣势 + +放缩在高中有知识基础,比较好上手 + +与比值/根值判别法不同,判定出变号级数的绝对值发散后,无法得到原级数发散 + +## 例子 + +> [!example] 例1 +> 判断级数$\sum_{n=2}^{\infty} \sin\left(\frac{1}{\ln n} \right)$的敛散性 + + + +> [!example] 例2 +基础练习 下列级数中收敛的有\_\_\_\_\_\_ + + A $\sin \frac{\pi}{2} + \sin \frac{\pi}{2^2} + \sin \frac{\pi}{2^3} + \cdots$ + B $\sum_{n=1}^{\infty} \frac{1}{5^n} \cdot \frac{3n^3 + 2n^2}{4n^3 + 1}$ + C $\sum_{n=1}^{\infty} \frac{1}{(a+n-1)(a+n)(a+n+1)} \quad (a>0)$ + D $\sum_{n=1}^{\infty} \frac{1}{n\sqrt[n]{n}}$ + E $\sum_{n=1}^{\infty} \frac{1}{n} \arctan \frac{n}{n+1}$ + F $\sum_{n=1}^{\infty} \frac{\sqrt{n+\sqrt{n}}}{n^2+1}$ + +# 比值判别法 + +## 原理 + +对于正项级数 $\sum_{n=1}^{\infty}u_n\ (u_n>0)$,计算极限$\rho=\lim\limits_{n \to \infty}\frac{u_{n+1}}{u_n}$,根据$\rho$与 1 的大小关系判断级数敛散性。 +1. 若 $\boldsymbol{\rho<1}$,则级数收敛; +2. 若 $\boldsymbol{\rho>1}$(或 $\rho=+\infty$),则级数发散; +3. 若 $\boldsymbol{\rho=1}$,则判别法失效,需用其他方法(如比较判别法、积分判别法等)判断。 + +## **适用情况** + +主要适用于通项含阶乘、指数幂(如 $a^n$)、$n^n$ 等形式的正项级数,这类通项的 $\frac{u_{n+1}}{u_n}$ ,作商后阶乘、指数部分可大幅化简,极限易求。 + +## **优势** + +1. 化简效率高:通项含 n!、$a^n$ 时,作商 $\frac{u_{n+1}}{u_n}$ 能直接约去大量重复因子 +2. 判定直接:只需计算一个极限值与 1 比较,无需像比较判别法那样构造合适的参考级数,对初学者更友好。 + +## **劣势** + +1. 对通项形式依赖强:仅适合含阶乘、指数幂的正项级数,对于通项为多项式、分式(如 $u_n=\frac{1}{n^p}$)的级数,$\lim\limits_{n\to\infty}\frac{u_{n+1}}{u_n}=1$,判别法直接失效。 +2. 失效情形无判定能力:当极限 $\rho=1$ 时,无法判断级数敛散性,必须换用比较判别法、积分判别法等其他方法,增加了解题步骤。 +3. 仅针对正项级数:不能直接应用于任意项级数(如交错级数),若要使用,需先对通项取绝对值判断绝对收敛,再进一步分析条件收敛。 +4. 极限可能不存在:部分正项级数的 $\lim\limits_{n\to\infty}\frac{u_{n+1}}{u_n}$ 不存在,此时比值判别法无法使用。 + +## **例子** + +> [!example] 例1 +判定级数敛散性: +$$\sum_{n=1}^{\infty} \frac{2^n}{n!}$$ + + + +>[!example] 例2 +设 $\alpha$ 为正常数,判定级数的敛散性: +$$\sum_{n=1}^\infty \frac{(2n-1)!!}{(n!)^\alpha}$$ + + + + + +# 根值判别法(柯西判别法) + +## Quick Description + +### 原理 + +通过计算级数通项 $u_n$ 的 $n$ 次方根的极限 $\rho = \lim\limits_{n\to\infty} \sqrt[n]{u_n}$,将原级数与等比级数 $\sum \rho^n$ 比较,从而判断敛散性。 + +### 适用情况 + +1. 适用于正项级数 $\sum u_n$(一般 $u_n > 0$)。 + +2. 当 $u_n$ 含有 $n$ 次幂、指数形式或连乘因子时,此方法往往有效。 + +3. 当比值判别法失效或难以计算时,可尝试根值判别法。 + + +### 优势和劣势 + +**优势** + +1. 对于含 $n$ 次幂、指数或幂指结构的级数,计算 $\sqrt[n]{u_n}$ 可能比计算比值 $u_{n+1}/u_n$ 更简单。 + +2. 理论清晰,与等比级数直接比较,直观性强。 + + +**劣势** + +1. 当 $\rho = 1$ 时无法判断(此时级数可能收敛也可能发散)。 + +2. 需要求 $\sqrt[n]{u_n}$ 的极限,有时计算较复杂。 + +3. 仅适用于正项级数。 + + +--- + +## 定理与证明 + +### 定理(根值判别法) + +设 $\sum_{n=1}^\infty u_n$ 是**正项级数**,且 +$$ +\rho = \lim_{n \to \infty} \sqrt[n]{u_n} +$$ +(这里允许 $\rho = +\infty$)。 + +1. 若 $\rho < 1$,则级数收敛。 +2. 若 $\rho > 1$(包括 $\rho = +\infty$),则级数发散。 +3. 若 $\rho = 1$,判别法失效(级数可能收敛也可能发散)。 + +### 证明思路 + +由极限定义:对任意 $\varepsilon > 0$,存在 $N$,当 $n > N$ 时, +$$ +\rho - \varepsilon < \sqrt[n]{u_n} < \rho + \varepsilon +$$ + +> [!note] +> **情形 $\rho < 1$** +> 取 $\varepsilon$ 使 $r = \rho + \varepsilon < 1$,则 +> $$ +> u_n < r^n \quad (n > N) +> $$ +> 而几何级数 $\sum r^n$ 收敛,由比较判别法知 $\sum u_n$ 收敛。 + +> [!note] +> **情形 $\rho > 1$** +> 取 $\varepsilon$ 使 $r = \rho - \varepsilon > 1$,则 +> $$ +> u_n > r^n \quad (n > N) +> $$ +> 而几何级数 $\sum r^n$ 发散,故 $\sum u_n$ 发散。 + +> [!note] +> **情形 $\rho = 1$** +> 反例: +> - $\sum \frac{1}{n}$ 发散,但 $\sqrt[n]{\frac{1}{n}} \to 1$。 +> - $\sum \frac{1}{n^2}$ 收敛,但 $\sqrt[n]{\frac{1}{n^2}} \to 1$。 + +--- + +## 典型例题 + +> [!example] 例1 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \left(1 - \frac{1}{n}\right)^n$ 的敛散性。 + + + +> [!example] 例2 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{n}{\left(a + \frac{1}{n}\right)^n} \quad (a > 0)$ 的敛散性。 + + + +> [!example] 例3(常用结论) +> 证明:$\displaystyle \lim_{n\to\infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max\{a_1, a_2, \dots, a_m\}$,其中 $a_k > 0$。 + +> **证明** +> 令 $M = \max\{a_1, \dots, a_m\}$,则 +> $$ +> M^n \le a_1^n + \cdots + a_m^n \le m M^n +> $$ +> 两边开 $n$ 次方: +> $$ +> M \le \sqrt[n]{a_1^n + \cdots + a_m^n} \le M \cdot \sqrt[n]{m} +> $$ +> 因为 $\sqrt[n]{m} \to 1$,由夹逼定理得结论。 +> +> 此结论在判断形如 $\sum (a_1^n + \cdots + a_m^n)$ 的级数时可直接使用。 + + +> [!example] 例4 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{2^n + 3^n}{5^n}$ 的敛散性。 + + +--- + +## 注意事项 + +1. 根值判别法仅适用于正项级数。 +2. 当 $\rho = 1$ 时,需改用其他方法(如比较判别法、积分判别法、比值判别法等)。 +3. 计算 $\sqrt[n]{u_n}$ 时,常用结论: + $$ + \sqrt[n]{n} \to 1, \quad \sqrt[n]{n^k} \to 1, \quad \sqrt[n]{a} = a^{1/n} \to 1 \ (a > 0) + $$ +4. 若 $u_n$ 含有 $n!$ 或连乘形式,通常使用比值判别法更简便;若含 $n$ 次幂,则根值判别法可能更直接。 +--- + + +# 交错级数 + +## 原理 + +所谓交错级数,就是正负项交错出现的级数。此类级数的收敛一般用莱布尼兹判别法: + 对于交错级数$\sum_{n=1}^{\infty}(-1)^{n-1}a_{n}$,若满足 + (1)$\{a_{n}\}$单调减少,即$a_{1}\geqslant a_{2}\geqslant\cdots a_{n}\geqslant\cdots$ + (2)$\lim\limits_{n\to\infty}a_{n}=0,$ + 则级数$\sum_{n=1}^{\infty}(-1)^{n-1}a_{n}$收敛,且$\sum_{n=1}^{\infty}(-1)^{n-1}a_{n}\leqslant a_{1}$. + +## 优势劣势 + +莱布尼兹判别法优势就是判别条件简单,非常容易证明。但劣势在于仅限于判定交错级数的敛散性,所以一定要辨认清楚是否为交错级数。另外,在判断交错级数是条件收敛还是发散时,肯定会用到这个定理。 + +## 例题 + +> [!example] 例1 +> 判断下列极限是否收敛: +> $$(1)\sum_{n=1}^{\infty}\frac{cosn\pi}{n^{\frac{3}{4}}}$$ +> $$(2)\sum_{n=1}^{\infty}sin(n\pi+\frac{\pi}{n})$$ + + + +> [!example] 例2 +> 判断下面这个级数是否收敛: +> $\sum_{n=1}^{\infty}\frac{\ln n}{n}sin\frac{n\pi}{2}.$ + diff --git a/编写小组/讲义/级数敛散性的基本思路和方法(解析版).md b/编写小组/讲义/级数敛散性的基本思路和方法(解析版).md new file mode 100644 index 0000000..64d6bdd --- /dev/null +++ b/编写小组/讲义/级数敛散性的基本思路和方法(解析版).md @@ -0,0 +1,1094 @@ +--- +tags: + - 编写小组 +--- +# 前情提要 + +## 几何级数 + +### 定义 + +几何级数是指形如 + +$$ +\sum_{n=0}^{\infty} ar^n = a + ar + ar^2 + ar^3 + \cdots +$$ + +的无穷级数,其中: +- $a \neq 0$ 是首项(常数) +- $r$ 是公比(常数) + +### 敛散性结论 +| 公比 $r$ 的范围 | 敛散性 | 和(当收敛时) | +| ---------- | --- | -------------------- | +| $r<1$ | 收敛 | $S = \dfrac{a}{1-r}$ | +| $r\ge 1$ | 发散 | 不存在 | + +--- + +### 证明 + +#### 一、部分和公式 +首先推导第 $n$ 项部分和 $S_n$ 的公式: + +$$ +S_n = a + ar + ar^2 + \cdots + ar^{n-1} +$$ + +当 $r \neq 1$ 时,两边乘以 $r$: + +$$ +rS_n = ar + ar^2 + ar^3 + \cdots + ar^n +$$ + +两式相减: + +$$ +S_n - rS_n = a - ar^n +$$ + +解得: + +$$ +S_n = a \cdot \frac{1 - r^n}{1 - r} \quad (r \neq 1) +$$ + +当 $r = 1$ 时: + +$$ +S_n = a + a + \cdots + a = na +$$ + +--- + +#### 二、敛散性分析 + +##### 情形1:$|r| < 1$ 时收敛 +当 $|r| < 1$ 时,$\lim_{n \to \infty} r^n = 0$ + +$$ +\lim_{n \to \infty} S_n = \lim_{n \to \infty} a \cdot \frac{1 - r^n}{1 - r} = \frac{a}{1 - r} +$$ + +所以级数收敛,和为 $S = \dfrac{a}{1-r}$。 + +##### 情形2:$|r| > 1$ 时发散 +当 $|r| > 1$ 时,$\lim_{n \to \infty} |r|^n = \infty$ + +$$ +\lim_{n \to \infty} S_n = \lim_{n \to \infty} a \cdot \frac{1 - r^n}{1 - r} \quad \text{不存在(趋于无穷)} +$$ + +所以级数发散。 + +##### 情形3:$r = 1$ 时发散 +$S_n = na$,当 $a \neq 0$ 时: + +$$ +\lim_{n \to \infty} S_n = \lim_{n \to \infty} na = \infty +$$ + +所以级数发散。 + +##### 情形4:$r = -1$ 时发散 +此时级数为: + +$$ +a - a + a - a + \cdots +$$ + +部分和为: +- $S_1 = a$ +- $S_2 = 0$ +- $S_3 = a$ +- $S_4 = 0$ +- ... + +当 $a \neq 0$ 时,部分和序列在 $a$ 和 $0$ 之间振荡,没有极限,所以发散。 + +##### 情形5:$r = -1$ 且 $a = 0$ +这是平凡情况,级数恒为 0,收敛于 0(但通常几何级数定义要求 $a \neq 0$)。 + +--- + +#### 三、直观理解 +1. **$|r| < 1$**:项以指数速度衰减,总和有限 +2. **$|r| \ge 1$**:项不衰减或增长,总和无限或振荡 + +**例子:** +- $\sum_{n=0}^{\infty} \left(\dfrac{1}{2}\right)^n = 1 + \dfrac{1}{2} + \dfrac{1}{4} + \cdots = 2$(收敛) +- $\sum_{n=0}^{\infty} 2^n = 1 + 2 + 4 + \cdots$(发散) +- $\sum_{n=0}^{\infty} (-1)^n = 1 - 1 + 1 - 1 + \cdots$(发散) + +--- + +### 几何级数与p级数的对比 +| 特征 | 几何级数 | p级数 | +| ------ | ---------------- | ---------------- | +| 通项 | $ar^n$ | $\dfrac{1}{n^p}$ | +| 敛散性 | 只与 $r$ 有关 | 只与 $p$ 有关 | +| 收敛条件 | $r< 1$ | $p > 1$ | +| 和(收敛时) | $\dfrac{a}{1-r}$ | 无简单通式(除特殊p值) | +| 衰减速度 | 指数衰减 | 幂次衰减 | + +--- + +**几何级数小结:** +- 最简单的无穷级数之一 +- 完全解决了敛散性问题 +- 在收敛时,有简洁的求和公式 +- 是许多复杂级数分析的基础 + +--- + +### 记忆技巧 +1. **收敛条件**:公比的绝对值小于1 +2. **求和公式**:首项除以 $(1 - 公比)$ +3. **几何意义**:几何级数得名于相邻项的比值恒定(几何性质) + + +## p 级数 + +### 定义 + +p 级数是指形如 + +$$ +\sum_{n=1}^{\infty} \frac{1}{n^p} +$$ + +的无穷级数,其中 $p$ 是实数。 + +### 敛散性结论 +- **$p > 1$**:级数收敛 +- **$p \le 1$**:级数发散 + +--- + +### 证明(初等方法) + +#### 一、准备工作 +1. **调和级数发散**:$\sum_{n=1}^{\infty} \frac{1}{n}$ 发散 +2. **几何级数收敛**:当 $|r| < 1$ 时,$\sum_{n=0}^{\infty} r^n$ 收敛 + +--- + +#### 二、当 $0 < p \le 1$ 时发散 + +**证明步骤:** + +1. 对于任意 $0 < p \le 1$,有 $n^p \le n$ +2. 因此: + $$ + \frac{1}{n^p} \ge \frac{1}{n} + $$ +3. 已知调和级数 $\sum_{n=1}^{\infty} \frac{1}{n}$ 发散 +4. 由比较判别法: + - 若 $\sum a_n$ 发散,且 $b_n \ge a_n > 0$,则 $\sum b_n$ 也发散 + - 这里 $b_n = \frac{1}{n^p}$,$a_n = \frac{1}{n}$ +5. 所以当 $0 < p \le 1$ 时,p 级数发散 + +**注:** $p = 1$ 就是调和级数本身。 + +--- + +#### 三、当 $p > 1$ 时收敛 + +**证明(分组求和法):** + +将级数分组: + +$$ +\begin{aligned} +S &= 1 + \frac{1}{2^p} + \frac{1}{3^p} + \frac{1}{4^p} + \frac{1}{5^p} + \frac{1}{6^p} + \frac{1}{7^p} + \frac{1}{8^p} + \cdots \\ +&= 1 + \left(\frac{1}{2^p} + \frac{1}{3^p}\right) + \left(\frac{1}{4^p} + \frac{1}{5^p} + \frac{1}{6^p} + \frac{1}{7^p}\right) + \left(\frac{1}{8^p} + \cdots + \frac{1}{15^p}\right) + \cdots +\end{aligned} +$$ + +**分组规则:** +- 第 1 组:1 项 +- 第 2 组:2 项 +- 第 3 组:4 项 +- 第 4 组:8 项 +- ... +- 第 $k$ 组:$2^{k-1}$ 项 + +**估计第 $k$ 组的和:** +第 $k$ 组从 $n = 2^{k-1}$ 到 $n = 2^k - 1$,共 $2^{k-1}$ 项。 + +由于 $f(x) = \frac{1}{x^p}$ 递减,组内每项不超过第一项: + +$$ +\frac{1}{n^p} \le \frac{1}{(2^{k-1})^p} \quad (n \ge 2^{k-1}) +$$ + +第 $k$ 组和的上界: + +$$ +S_k \le 2^{k-1} \cdot \frac{1}{(2^{k-1})^p} = 2^{(k-1)(1-p)} +$$ + +**总和估计:** + +$$ +S \le 1 + 2^{1(1-p)} + 2^{2(1-p)} + 2^{3(1-p)} + \cdots +$$ + +令 $r = 2^{1-p}$,则: + +$$ +S \le 1 + r + r^2 + r^3 + \cdots +$$ + +当 $p > 1$ 时,$1-p < 0$,所以: + +$$ +r = 2^{1-p} < 2^0 = 1 +$$ + +右边是公比 $0 < r < 1$ 的几何级数,收敛到 $\frac{1}{1-r}$。 + +因此原级数的部分和有上界,且单调递增(各项为正),故级数收敛。 + +--- + +#### 四、直观理解 + +1. **$p \le 1$**:项衰减太慢,类似调和级数,总和无限增大 +2. **$p > 1$**:项衰减足够快,总和有限 + +**特例:** +- $p = 2$:$\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}$ +- $p$ 越大,收敛越快 + +--- + +#### 补充:$p \le 0$ 的情况 + +若 $p \le 0$,则 $-p \ge 0$,通项 $n^{-p} \ge 1$ 不趋于 0,由级数收敛的必要条件知发散。 + +--- + +**总结:** +| $p$ 的范围 | 敛散性 | 关键原因 | +|------------|--------|----------| +| $p > 1$ | 收敛 | 分组求和,几何级数控制 | +| $0 < p \le 1$ | 发散 | 与调和级数比较 | +| $p \le 0$ | 发散 | 通项不趋于零 | + + + +# 部分和判别法 + +## **原理** + +对于级数 $\sum_{n=1}^{\infty}u_n$,构造其部分和数列 $S_n=u_1+u_2+\dots+u_n$。若极限 $\lim\limits_{n\to\infty}S_n=S$(S 为有限常数),则级数收敛,且和为 S;若该极限不存在(或为无穷大),则级数发散。 + +## **适用情况** + +适用于部分和可通过公式化简求和的级数,典型类型包括: + +1.等比级数:$\sum_{n=1}^{\infty}aq^{n-1}(a\neq0)$,部分和 $S_n=\frac{a(1-q^n)}{1-q}$; + +2.裂项相消型级数:如 $\sum_{n=1}^{\infty}\frac{1}{n(n+1)}$,通项可拆为 $\frac{1}{n}-\frac{1}{n+1}$,部分和可逐项抵消化简; + +3. 少数可通过错位相减、分组求和的特殊级数。 + +## **优势** + +1. 本质性强:直接基于级数收敛的定义,判定结果准确,还能同时求出级数的和,这是比值、比较判别法等无法做到的。 + +2. 无形式限制:不像比值判别法依赖通项的阶乘、指数结构,只要部分和能化简,任何类型级数都适用。 + +## **劣势** + +1. 适用范围极窄:绝大多数级数的部分和无法用初等函数化简(如调和级数 $\sum\frac{1}{n}$、$\sum\frac{n}{2^n}$虽能判定敛散性,但部分和无简单表达式)。 + +2. 计算难度高:裂项、错位相减等求和技巧性强,对复杂通项不易找到化简方法。 + +3. 效率低:对比判别法,求部分和的步骤通常更繁琐,不适用于快速判定敛散性。 + +## **例子** + +>[!example] **例1** +>判定级数 $\sum_{n=1}^{\infty}\frac{2}{(2n-1)(2n+1)}$的敛散性,若收敛求其和 + +解析 + +1.  裂项变形 + +   $\frac{2}{(2n-1)(2n+1)}=\frac{1}{2n-1}-\frac{1}{2n+1}$ + +2.  求部分和 + +   $S_n=\sum_{k=1}^{n}\left(\frac{1}{2k-1}-\frac{1}{2k+1}\right) = \left(1-\frac{1}{3}\right)+\left(\frac{1}{3}-\frac{1}{5}\right)+\dots+\left(\frac{1}{2n-1}-\frac{1}{2n+1}\right) = 1-\frac{1}{2n+1}$ + +3.  取极限 + +   $\lim_{n \to \infty}S_n=\lim_{n \to \infty}\left(1-\frac{1}{2n+1}\right)=1$ + +4.  结论:该级数 **收敛**,和为 \( 1 \) + +>[!example] **例2** +判断级数$\sin \frac{\pi}{6} + \sin \frac{2\pi}{6} + \cdots + \sin \frac{n\pi}{6} + \cdots$的敛散性 + +解析: + +1. 已知公式 + +由积化和差公式: + +$2\sin A \sin B = \cos(A-B) - \cos(A+B)$ + +令  $A = k\theta$, $B = \frac{\theta}{2}$ ,则: + +$2\sin(k\theta) \sin\left( \frac{\theta}{2} \right) = \cos\left( k\theta - \frac{\theta}{2} \right) - \cos\left( k\theta + \frac{\theta}{2} \right)$ + +$= \cos\left( (k - \tfrac12)\theta \right) - \cos\left( (k + \tfrac12)\theta \right)$ + +因此: + +$\boxed{\sin(k\theta) = \frac{\cos\left( (k - \tfrac12)\theta \right) - \cos\left( (k + \tfrac12)\theta \right)}{ 2\sin\frac{\theta}{2} }}$ + +这是一个裂项公式,因为对 k 求和时,中间项会消去。 + +2. 应用到本题 + +题中级数为: + +$\sum_{k=1}^{\infty} \sin\left( \frac{k\pi}{6} \right)$ + +这里  $\theta = \frac{\pi}{6}$ , $\sin\frac{\theta}{2}$ = $\sin\frac{\pi}{12} \neq 0$。 + +利用上面裂项公式,记 + +$a_k = \sin\left( \frac{k\pi}{6} \right)$ + +$= \frac{\cos\left( \frac{(k - \frac12)\pi}{6} \right) - \cos\left( \frac{(k + \frac12)\pi}{6} \right)}{2\sin\frac{\pi}{12}}$ + +即 + +$a_k = \frac{1}{2\sin\frac{\pi}{12}} \left[ \cos\left( \frac{(2k-1)\pi}{12} \right) - \cos\left( \frac{(2k+1)\pi}{12} \right) \right]$ + +3. 求部分和 $S_n$ + +$S_n = \sum_{k=1}^n a_k$ + +$= \frac{1}{2\sin\frac{\pi}{12}} \sum_{k=1}^n \left[ \cos\frac{(2k-1)\pi}{12} - \cos\frac{(2k+1)\pi}{12} \right]$ + +记 $C_m = \cos\frac{(2m-1)\pi}{12}$,则: + +$\sum_{k=1}^n \left[ C_k - C_{k+1} \right]$ + +这是一个裂项和: + +$\sum_{k=1}^n (C_k - C_{k+1}) = C_1 - C_{n+1}$ + +其中 + +$C_1 = \cos\frac{(2\cdot 1 - 1)\pi}{12} = \cos\frac{\pi}{12}$ + +$C_{n+1} = \cos\frac{(2(n+1)-1)\pi}{12} = \cos\frac{(2n+1)\pi}{12}$ + +因此: + +$S_n = \frac{1}{2\sin\frac{\pi}{12}} \left[ \cos\frac{\pi}{12} - \cos\frac{(2n+1)\pi}{12} \right]$ + +4. 分析极限 + +当 $n \to \infty$ 时, $\frac{(2n+1)\pi}{12} \mod 2\pi$  在 $[0, 2\pi)$ 内不趋于一个固定值,而是周期性地取多个不同值。 + +事实上,$\cos\frac{(2n+1)\pi}{12}$ 的值在 $n$ 增加时振荡,不会趋于一个常数。 + +因此: + +$\lim_{n\to\infty} S_n \quad \text{不存在。}$ + +**习题1** + +级数 + +$\sum_{n=1}^{\infty} \frac{2n+1}{n^2(n+1)^2}$ + +的和为 + +A. 0 + +B. 1 + +C. 2 + +D. 不存在(发散) + +解: + +观察 + +$\frac{2n+1}{n^2(n+1)^2} = \frac{(n+1)^2 - n^2}{n^2(n+1)^2} = \frac{1}{n^2} - \frac{1}{(n+1)^2}$ + +部分和: + +$S_N = \sum_{n=1}^N \left[ \frac{1}{n^2} - \frac{1}{(n+1)^2} \right] = 1 - \frac{1}{(N+1)^2} \to 1$ + +收敛到 1。 + +答案:B + +**习题2** + +级数 + +$\sum_{n=1}^{\infty} \left( \sqrt{n+2} - 2\sqrt{n+1} + \sqrt{n} \right)$ + +\]   + +的敛散性是 + +A. 收敛到 0 + +B. 收敛到 $1 - \sqrt{2}$ + +C. 收敛到 $\sqrt{2} - 2$ + +D. 发散 + +解: + +观察通项: + +设 $a_n = \sqrt{n}$,则 + +$a_{n+2} - 2a_{n+1} + a_n = (a_{n+2} - a_{n+1}) - (a_{n+1} - a_n)$ + +\]   + +记 $b_n = a_{n+1} - a_n = \sqrt{n+1} - \sqrt{n}$,则 + +原通项 = $b_{n+1} - b_n$。 + +部分和: + +$S_N = \sum_{n=1}^N (b_{n+1} - b_n) = b_{N+1} - b_1$ + +\]   + +$b_{N+1} = \sqrt{N+2} - \sqrt{N+1}, \quad b_1 = \sqrt{2} - 1$ + +\]   + +因此 + +$S_N = (\sqrt{N+2} - \sqrt{N+1}) - (\sqrt{2} - 1)$ + +\]   + +当 $N \to \infty,\sqrt{N+2} - \sqrt{N+1} \to 0$,所以 + +$lim_{N\to\infty} S_N = 1 - \sqrt{2}$ + +收敛到 $1 - \sqrt{2}$。 + +答案:B + +# **级数运算性质判别法** + +## **原理** + +1. 线性运算性质的应用 + +设$\sum u_n、\sum v_n$ 为已知敛散性的级数,k 为非零常数: + +- 若 $\sum u_n$ 收敛,则 $\sum ku_n$ 收敛;若 $\sum u_n$ 发散,则 $\sum ku_n$ 发散。 + +- 若 $\sum u_n$ 和 $\sum v_n$ 都收敛,则 $\sum(u_n\pm v_n)$ 收敛。 + +- 若 $\sum u_n$ 收敛、$\sum v_n$ 发散,则 $\sum(u_n\pm v_n)$ 发散。 + +注:若两者都发散,$\sum(u_n\pm v_n)$ 敛散性不确定。 + +2. 添减/改变有限项性质的应用 + +对任意级数,增加、去掉或改变有限项,不改变其敛散性。 + +例:$\sum_{n=3}^{\infty}\frac{1}{2^n}$ 收敛,因为它是收敛等比级数 $\sum_{n=1}^{\infty}\frac{1}{2^n}$ 去掉前2项得到的。 + +3. 正项级数重组性质的应用 + +若正项级数 $\sum u_n$ 收敛,任意重排其项得到的新级数仍收敛,且和不变。 + +## **适用情况** + +1. 待判定级数可拆分为两个或多个已知敛散性的级数的线性组合(如 $\sum (u_n\pm v_n)、\sum ku_n)$。 + +2. 级数仅增减、改变有限项,或对正项级数进行项的重组。 + +3. 已知级数多为基础类型(等比级数、$p$-级数、调和级数等),便于直接套用性质。 + +## **优势** + +1. 快捷高效:无需计算极限或构造不等式,直接利用已知结论推导,步骤简洁。 + +2. 既适用于正项级数,也适用于任意项级数(如交错级数)。 + +## **劣势** + +1. 依赖性强:必须依赖已知敛散性的“参考级数”,若无法拆分或无合适参考级数,则无法使用。 + +2. 有局限性:对于 $\sum u_n$ 和 $\sum v_n$ 均发散的情况,$\sum (u_n\pm v_n)$ 的敛散性无法直接判定,性质失效。 + +## **例子** + +>[!example] **例1** +>判断级数$\sum_{n=1}^{\infty} (-1)^n \frac{n+2}{n+1} \cdot \frac{1}{\sqrt{n}}$的敛散性。 + +解析: + +原级数: + +$S = \sum_{n=1}^\infty (-1)^n \frac{n+2}{n+1} \cdot \frac{1}{\sqrt{n}}.$ + +将 $\frac{n+2}{n+1}$ 写成: + +$\frac{n+2}{n+1} = 1 + \frac{1}{n+1}.$ + +于是通项: + +$(-1)^n \frac{1}{\sqrt{n}} \cdot \left( 1 + \frac{1}{n+1} \right)$ + +$= (-1)^n \frac{1}{\sqrt{n}} \;+\; (-1)^n \frac{1}{\sqrt{n} \,(n+1)}.$ + +记 + +$u_n = (-1)^n \frac{1}{\sqrt{n}}, \quad v_n = (-1)^n \frac{1}{\sqrt{n} \, (n+1)}.$ + +则原级数: + +$S = \sum_{n=1}^\infty u_n \;+\; \sum_{n=1}^\infty v_n.$ + +第一项:$\sum_{n=1}^\infty u_n = \sum_{n=1}^\infty (-1)^n \frac{1}{\sqrt{n}}$。 + +· 这是交错 $p$-级数, $p = \frac12 < 1$,不绝对收敛; + +· 由莱布尼茨判别法($1/\sqrt{n} 单调递减趋于 0$)⇒ 条件收敛。 + +第二项:$\sum_{n=1}^\infty v_n$,比较 $v_n$ 的绝对值: + +$|v_n| = \frac{1}{\sqrt{n} \,(n+1)} \sim \frac{1}{n^{3/2}} \quad (n\to\infty).$ + +因为 $p = 3/2 > 1$,所以 $\sum |v_n|$ 收敛 ⇒ $\sum v_n$ 绝对收敛。 + +利用级数运算性质: + +已知 + +· 若两个级数 $\sum A_n 和 \sum B_n$ 都收敛,则 $\sum (A_n + B_n)$ 收敛(收敛级数的和收敛)。 + +· 若 $\sum A_n$ 条件收敛,$\sum B_n$ 绝对收敛,则 $\sum (A_n + B_n)$条件收敛(因为加一个绝对收敛级数不改变条件收敛的性质)。 + +这里: + +$S = \underbrace{\sum_{n=1}^\infty (-1)^n \frac{1}{\sqrt{n}}}_{\text{条件收敛}} \;+\; \underbrace{\sum_{n=1}^\infty (-1)^n \frac{1}{\sqrt{n}(n+1)}}_{\text{绝对收敛}}.$ + +因此 $S$ 是 条件收敛的级数 + +>[!example] **例2** +讨论级数$\sum_{n=2}^{\infty} \frac{(-1)^n}{\sqrt{n} + (-1)^n}$的敛散性 + +解析:先对通项有理化变形,再拆分为两个级数的和,结合级数运算性质判断 + +步骤1 通项有理化与变形 + +对通项分母有理化: +$$ + +\begin{align*} + +u_n &= \frac{(-1)^n}{\sqrt{n} + (-1)^n} \\ + +&= \frac{(-1)^n \left[\sqrt{n} - (-1)^n\right]}{\left[\sqrt{n} + (-1)^n\right]\left[\sqrt{n} - (-1)^n\right]} \\ + +&= \frac{(-1)^n \sqrt{n} - 1}{n - 1} \\ + +&= \frac{(-1)^n \sqrt{n}}{n - 1} - \frac{1}{n - 1} + +\end{align*} +$$ + +$\frac{(-1)^n \sqrt{n}}{n - 1}$用莱布尼兹判别法判断收敛 + +$\sum_{n=2}^{\infty} \frac{1}{n - 1}:令 k=n-1,级数变为 \sum_{k=1}^{\infty} \frac{1}{k}$(调和级数),**发散**。 + +根据级数运算性质:**收敛级数 + 收敛级数 - 发散级数 = 发散级数**。 + +因此,级数$\sum_{n=2}^{\infty} \frac{(-1)^n}{\sqrt{n} + (-1)^n}$**发散**。 + +**习题1** + +已知级数 $\sum_{n=1}^{\infty} a_n$ 收敛,$\sum_{n=1}^{\infty} b_n$ 发散,则以下说法正确的是( ) + +A. $\sum_{n=1}^{\infty} (a_n + b_n)$ 必收敛 + +B. $\sum_{n=1}^{\infty} (a_n + b_n)$ 必发散 + +C. $\sum_{n=1}^{\infty} (a_n b_n)$ 必发散 + +D. $\sum_{n=1}^{\infty} (a_n^2)$ 必收敛 + +解析: + +设 $s_n = a_1+\dots+a_n$ 收敛,$t_n = b_1+\dots+b_n$ 发散。 + +则 $a_n+b_n$ 的前 $n$ 项和 = $s_n + t_n$,收敛+发散 = 发散,故 B 正确。 + +反例:A 错。C:取 $a_n=\frac{(-1)^n}{\sqrt{n}}$(条件收敛),$b_n=(-1)^n$(发散),则 $a_n b_n = \frac{1}{\sqrt{n}}$ 发散,但这是特例,不是“必”发散,若 $a_n=\frac{1}{n^2}, b_n=n$,则 $a_n b_n = \frac{1}{n}$ 发散;若 $a_n=\frac{1}{n^2}, b_n=(-1)^n n$,则 $a_n b_n = \frac{(-1)^n}{n}$ 收敛(条件收敛)。所以 C 不对。D:反例 $a_n = \frac{(-1)^n}{\sqrt{n}}$ 收敛(条件收敛),但 $a_n^2 = \frac{1}{n}$ 发散。 + +答案:B + +**习题2** + +级数 $\sum_{n=1}^{\infty} \left( \frac{\sin n}{n^2} + \frac{(-1)^n}{n} \right)$ 的收敛性是: + +A. 绝对收敛 + +B. 条件收敛 + +C. 发散 + +D. 可能收敛可能发散 + +解析 + +拆成两个: + +1. $\sum \frac{\sin n}{n^2}:因 |\frac{\sin n}{n^2}| \le \frac{1}{n^2}$,绝对收敛。 + +2. $\sum \frac{(-1)^n}{n}$ 是交错调和级数,条件收敛。 + +   条件收敛 + 绝对收敛 = 条件收敛。 + +答案:B + + +# 比较判别法 + +## Quick Description + +### 原理 + +不等式形式:放缩,大敛则小敛,小散则大散 + +极限形式:比值的极限为常数,则同敛散 + +### 适用情况 + +正项级数 + +### 优势和劣势 + +放缩在高中有知识基础,比较好上手 + +与比值/根值判别法不同,判定出变号级数的绝对值发散后,无法得到原级数发散 + +## 例子 + +> [!example] 例1 +> 判断级数$\sum_{n=2}^{\infty} \sin\left(\frac{1}{\ln n} \right)$的敛散性 + +设 $a_n = \sin\left( \frac{1}{\ln n} \right)$,其中 $n \geq 2$ 。记其前n项和为$S_n$。 + +由于当 $n \geq 2$ 时,有 $\frac{1}{\ln n} > 0$ ,且 $\sin n > \frac{n}{2}$ ,因此存在 $N$ ,使得当$n > N$时, + +$q_n = \sin\left( \frac{1}{\ln n} \right) > \frac{1}{2} \cdot \frac{1}{\ln n} > \frac{1}{2n}.$ + +记$\sum \frac{1}{2n}$的前$n$项和为$T_n$。 + +由于 $\lim_{n \to \infty} S_n > \lim_{n \to \infty} T_n, \quad \text{而} \quad \lim_{n \to \infty} T_n = +\infty,$ + +因此 $\lim_{n \to \infty} S_n = +\infty.$ + +故级数 $\sum_{n=2}^{\infty} \sin\left( \frac{1}{\ln n} \right)$ 发散。 + +> [!example] 例2 +基础练习 下列级数中收敛的有\_\_\_\_\_\_ + + A $\sin \frac{\pi}{2} + \sin \frac{\pi}{2^2} + \sin \frac{\pi}{2^3} + \cdots$ + B $\sum_{n=1}^{\infty} \frac{1}{5^n} \cdot \frac{3n^3 + 2n^2}{4n^3 + 1}$ + C $\sum_{n=1}^{\infty} \frac{1}{(a+n-1)(a+n)(a+n+1)} \quad (a>0)$ + D $\sum_{n=1}^{\infty} \frac{1}{n\sqrt[n]{n}}$ + E $\sum_{n=1}^{\infty} \frac{1}{n} \arctan \frac{n}{n+1}$ + F $\sum_{n=1}^{\infty} \frac{\sqrt{n+\sqrt{n}}}{n^2+1}$ + + **参考答案:ABCF. + - **A** 由于 $0 < \sin \frac{\pi}{2^n} \leq \frac{\pi}{2^n}$,且几何级数 $\sum_{n=1}^{\infty} \frac{\pi}{2^n}$ 收敛,故原级数收敛。 + - **B** 由于 $\lim_{n \to \infty} \left( \frac{1}{5^n} \cdot \frac{3n^3 + 2n^2}{4n^3 + 1} \right) / \left( \frac{1}{5^n} \right) = \frac{3}{4}$,又几何级数 $\sum_{n=1}^{\infty} \frac{1}{5^n}$ 收敛,故原级数收敛。 + - **C** 由于 $\lim_{n \to \infty} \left( \frac{1}{(a+n-1)(a+n)(a+n+1)} \right) / \left( \frac{1}{n^3} \right) = 1$,而级数 $\sum_{n=1}^{\infty} \frac{1}{n^3}$ 收敛,故原级数收敛。(或由 $\frac{1}{(a+n-1)(a+n)(a+n+1)} \leq \frac{1}{(a+n-1)^3} < \frac{1}{(n-1)^3} \;(n>1)$) + - **D** 由于 $\lim_{n \to \infty} \frac{1}{n\sqrt[n]{n}} / \frac{1}{n} = \lim_{n \to \infty} \frac{1}{\sqrt[n]{n}} = 1$,级数 $\sum_{n=1}^{\infty} \frac{1}{n}$ 发散,故原级数发散。 + - **E** 由于 $\lim_{n \to \infty} \left( \frac{1}{n} \cdot \arctan \frac{n}{n+1} \right) / \frac{1}{n} = \frac{\pi}{4}$,又级数 $\sum_{n=1}^{\infty} \frac{1}{n}$ 发散,故原级数发散。 + - **F** 由于 $\lim_{n \to \infty} \frac{\sqrt{n+\sqrt{n}}}{n^2+1} / \frac{1}{n^{3/2}} = \lim_{n \to \infty} \sqrt{1+\frac{1}{\sqrt{n}}} / \left( 1+\frac{1}{n^2} \right) = 1$,又 $\sum_{n=1}^{\infty} \frac{1}{n^{3/2}}$ 收敛,故原级数收敛。 + +# 比值判别法 + +## 原理 + +对于正项级数 $\sum_{n=1}^{\infty}u_n\ (u_n>0)$,计算极限$\rho=\lim\limits_{n \to \infty}\frac{u_{n+1}}{u_n}$,根据$\rho$与 1 的大小关系判断级数敛散性。 +1. 若 $\boldsymbol{\rho<1}$,则级数收敛; +2. 若 $\boldsymbol{\rho>1}$(或 $\rho=+\infty$),则级数发散; +3. 若 $\boldsymbol{\rho=1}$,则判别法失效,需用其他方法(如比较判别法、积分判别法等)判断。 + +## **适用情况** + +主要适用于通项含阶乘、指数幂(如 $a^n$)、$n^n$ 等形式的正项级数,这类通项的 $\frac{u_{n+1}}{u_n}$ ,作商后阶乘、指数部分可大幅化简,极限易求。 + +## **优势** + +1. 化简效率高:通项含 n!、$a^n$ 时,作商 $\frac{u_{n+1}}{u_n}$ 能直接约去大量重复因子 +2. 判定直接:只需计算一个极限值与 1 比较,无需像比较判别法那样构造合适的参考级数,对初学者更友好。 + +## **劣势** + +1. 对通项形式依赖强:仅适合含阶乘、指数幂的正项级数,对于通项为多项式、分式(如 $u_n=\frac{1}{n^p}$)的级数,$\lim\limits_{n\to\infty}\frac{u_{n+1}}{u_n}=1$,判别法直接失效。 +2. 失效情形无判定能力:当极限 $\rho=1$ 时,无法判断级数敛散性,必须换用比较判别法、积分判别法等其他方法,增加了解题步骤。 +3. 仅针对正项级数:不能直接应用于任意项级数(如交错级数),若要使用,需先对通项取绝对值判断绝对收敛,再进一步分析条件收敛。 +4. 极限可能不存在:部分正项级数的 $\lim\limits_{n\to\infty}\frac{u_{n+1}}{u_n}$ 不存在,此时比值判别法无法使用。 + +## **例子** + +> [!example] 例1 +判定级数敛散性: +$$\sum_{n=1}^{\infty} \frac{2^n}{n!}$$ + + + +**解析** +用比值判别法: +$$\frac{a_{n+1}}{a_n} = \frac{2^{n+1}}{(n+1)!} \cdot \frac{n!}{2^n} = \frac{2}{n+1} \to 0$$ +因此收敛。 + + +>[!example] 例2 +设 $\alpha$ 为正常数,判定级数的敛散性: +$$\sum_{n=1}^\infty \frac{(2n-1)!!}{(n!)^\alpha}$$ + + +**解析** + +1. 记通项 + +$$a_n = \frac{(2n-1)!!}{(n!)^\alpha}$$ + +这里 $(2n-1)!! = 1\cdot 3\cdot 5 \cdots (2n-1) = \frac{(2n)!}{2^n \, n!}$。 + +所以: +$$a_n = \frac{\frac{(2n)!}{2^n \, n!}}{(n!)^\alpha}= \frac{(2n)!}{2^n \, (n!)^{\alpha+1}}$$ + +2. 用比值判别法 +$$\frac{a_{n+1}}{a_n} = \frac{(2n+2)!}{2^{n+1}((n+1)!)^{\alpha+1}} \cdot \frac{2^n (n!)^{\alpha+1}}{(2n)!}$$ +化简:$$\frac{(2n+2)!}{(2n)!} = (2n+1)(2n+2) = 2(2n+1)(n+1)$$$$\frac{2^n}{2^{n+1}} = \frac12$$$$\frac{(n!)^{\alpha+1}}{((n+1)!)^{\alpha+1}} = \frac{1}{(n+1)^{\alpha+1}}$$所以: +$$\frac{a_{n+1}}{a_n} += \frac{2(2n+1)(n+1) \cdot \frac12}{(n+1)^{\alpha+1}} += \frac{2n+1}{(n+1)^{\alpha}}$$ +3. 计算极限 +$$\lim_{n\to\infty} \frac{2n+1}{(n+1)^{\alpha}}$$ + +· 若 $\alpha$> 1,极限为 0,比值判别法得出 $\lim \frac{a_{n+1}}{a_n} = 0 < 1$,级数收敛。 + +· 若 $\alpha$ = 1,极限为 $\lim_{n\to\infty} \frac{2n+1}{n+1}$ = 2 > 1,级数发散。 + +· 若 0 < $\alpha$ < 1,极限为 $\infty$ > 1,级数发散。 + +4. 答案 + + 当$\alpha$>1时收敛,当 0 < $\alpha$ < 1 时发散 + +>[!example] **习题1** +级数 $$\displaystyle \sum_{n=1}^{\infty} \frac{(2n)!}{(n!)^2} \cdot \frac{1}{5^n}$$ 的敛散性是 + +A. 收敛 + +B. 发散 + +C. 无法判断 + + +**解析** +$$a_n = \frac{(2n)!}{(n!)^2 \cdot 5^n}$$ + +$$\frac{a_{n+1}}{a_n} + += \frac{(2n+2)!}{((n+1)!)^2 \cdot 5^{n+1}} \cdot \frac{(n!)^2 \cdot 5^n}{(2n)!}$$ +化简: +$$\frac{(2n+2)!}{(2n)!} = (2n+2)(2n+1)$$ +$$\frac{(n!)^2}{((n+1)!)^2} = \frac{1}{(n+1)^2}$$ + +$$\frac{5^n}{5^{n+1}} = \frac15$$ +所以 + +$$\frac{a_{n+1}}{a_n} = \frac{(2n+2)(2n+1)}{(n+1)^2} \cdot \frac15 += \frac{2(2n+1)}{n+1} \cdot \frac15$$ +$$\lim_{n\to\infty} \frac{4n+2}{5(n+1)} = \frac{4}{5} < 1$$ +所以收敛。 + +答案:A + +>[!example] **习题2** +级数 $\displaystyle \sum_{n=1}^{\infty} \frac{3^n}{n^2}$ 的敛散性是 + +A. 收敛 + +B. 发散 + +C. 无法判断 + +解 +$$a_n = \frac{3^n}{n^2}$$ +$$\frac{a_{n+1}}{a_n} = \frac{3^{n+1}}{(n+1)^2} \cdot \frac{n^2}{3^n} + += 3 \cdot \frac{n^2}{(n+1)^2}$$ +$$\lim_{n\to\infty} 3 \cdot \frac{n^2}{(n+1)^2} = 3 > 1$$ + +所以发散。 + +答案:B + +# 根值判别法(柯西判别法) + +## Quick Description + +### 原理 + +通过计算级数通项 $u_n$ 的 $n$ 次方根的极限 $\rho = \lim\limits_{n\to\infty} \sqrt[n]{u_n}$,将原级数与等比级数 $\sum \rho^n$ 比较,从而判断敛散性。 + +### 适用情况 + +1. 适用于正项级数 $\sum u_n$(一般 $u_n > 0$)。 + +2. 当 $u_n$ 含有 $n$ 次幂、指数形式或连乘因子时,此方法往往有效。 + +3. 当比值判别法失效或难以计算时,可尝试根值判别法。 + + +### 优势和劣势 + +**优势** + +1. 对于含 $n$ 次幂、指数或幂指结构的级数,计算 $\sqrt[n]{u_n}$ 可能比计算比值 $u_{n+1}/u_n$ 更简单。 + +2. 理论清晰,与等比级数直接比较,直观性强。 + + +**劣势** + +1. 当 $\rho = 1$ 时无法判断(此时级数可能收敛也可能发散)。 + +2. 需要求 $\sqrt[n]{u_n}$ 的极限,有时计算较复杂。 + +3. 仅适用于正项级数。 + + +--- + +## 定理与证明 + +### 定理(根值判别法) + +设 $\sum_{n=1}^\infty u_n$ 是**正项级数**,且 +$$ +\rho = \lim_{n \to \infty} \sqrt[n]{u_n} +$$ +(这里允许 $\rho = +\infty$)。 + +1. 若 $\rho < 1$,则级数收敛。 +2. 若 $\rho > 1$(包括 $\rho = +\infty$),则级数发散。 +3. 若 $\rho = 1$,判别法失效(级数可能收敛也可能发散)。 + +### 证明思路 + +由极限定义:对任意 $\varepsilon > 0$,存在 $N$,当 $n > N$ 时, +$$ +\rho - \varepsilon < \sqrt[n]{u_n} < \rho + \varepsilon +$$ + +> [!note] +> **情形 $\rho < 1$** +> 取 $\varepsilon$ 使 $r = \rho + \varepsilon < 1$,则 +> $$ +> u_n < r^n \quad (n > N) +> $$ +> 而几何级数 $\sum r^n$ 收敛,由比较判别法知 $\sum u_n$ 收敛。 + +> [!note] +> **情形 $\rho > 1$** +> 取 $\varepsilon$ 使 $r = \rho - \varepsilon > 1$,则 +> $$ +> u_n > r^n \quad (n > N) +> $$ +> 而几何级数 $\sum r^n$ 发散,故 $\sum u_n$ 发散。 + +> [!note] +> **情形 $\rho = 1$** +> 反例: +> - $\sum \frac{1}{n}$ 发散,但 $\sqrt[n]{\frac{1}{n}} \to 1$。 +> - $\sum \frac{1}{n^2}$ 收敛,但 $\sqrt[n]{\frac{1}{n^2}} \to 1$。 + +--- + +## 典型例题 + +> [!example] 例1 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \left(1 - \frac{1}{n}\right)^n$ 的敛散性。 + +> **解** +> 计算根值: +> $$ +> \sqrt[n]{u_n} = \sqrt[n]{\left(1 - \frac{1}{n}\right)^n} = 1 - \frac{1}{n} \to 1 \quad (n \to \infty) +> $$ +> 此时 $\rho = 1$,根值判别法失效。 +> +> 改用其他方法:注意到 +> $$ +> \left(1 - \frac{1}{n}\right)^n = e^{n \ln (1 - \frac{1}{n})} \sim e^{-1} \quad (n \to \infty) +> $$ +> 所以 $u_n \to e^{-1} \neq 0$,由级数收敛的必要条件(通项必须趋于0)知该级数发散。 + +> [!example] 例2 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{n}{\left(a + \frac{1}{n}\right)^n} \quad (a > 0)$ 的敛散性。 + +> **解** +> 计算根值: +> $$ +> \sqrt[n]{u_n} = \frac{\sqrt[n]{n}}{a + \frac{1}{n}} +> $$ +> 因为 $\sqrt[n]{n} \to 1$,所以 +> $$ +> \lim_{n \to \infty} \sqrt[n]{u_n} = \frac{1}{a} +> $$ +> - 若 $\frac{1}{a} < 1$ 即 $a > 1$,则级数收敛。 +> - 若 $\frac{1}{a} > 1$ 即 $0 < a < 1$,则级数发散。 +> - 若 $a = 1$,此时 $\rho = 1$,判别法失效。 +> 当 $a = 1$ 时, +> $$ +> u_n = \frac{n}{(1 + \frac{1}{n})^n} \sim \frac{n}{e} \quad (n \to \infty) +> $$ +> 通项不趋于0,故级数发散。 +> +> **综上**: +> - 当 $a > 1$ 时,级数收敛; +> - 当 $0 < a \le 1$ 时,级数发散。 + +> [!example] 例3(常用结论) +> 证明:$\displaystyle \lim_{n\to\infty} \sqrt[n]{a_1^n + a_2^n + \cdots + a_m^n} = \max\{a_1, a_2, \dots, a_m\}$,其中 $a_k > 0$。 + +> **证明** +> 令 $M = \max\{a_1, \dots, a_m\}$,则 +> $$ +> M^n \le a_1^n + \cdots + a_m^n \le m M^n +> $$ +> 两边开 $n$ 次方: +> $$ +> M \le \sqrt[n]{a_1^n + \cdots + a_m^n} \le M \cdot \sqrt[n]{m} +> $$ +> 因为 $\sqrt[n]{m} \to 1$,由夹逼定理得结论。 +> +> 此结论在判断形如 $\sum (a_1^n + \cdots + a_m^n)$ 的级数时可直接使用。 + + +> [!example] 例4 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{2^n + 3^n}{5^n}$ 的敛散性。 + +> **解** +> $$ +> u_n = \frac{2^n + 3^n}{5^n} = \left(\frac{2}{5}\right)^n + \left(\frac{3}{5}\right)^n +> $$ +> 计算根值: +> $$ +> \sqrt[n]{u_n} = \sqrt[n]{\left(\frac{2}{5}\right)^n + \left(\frac{3}{5}\right)^n} +> $$ +> 由例3结论,$\sqrt[n]{u_n} \to \max\left\{\frac{2}{5}, \frac{3}{5}\right\} = \frac{3}{5} < 1$,故级数收敛。 + +--- + +## 注意事项 + +1. 根值判别法仅适用于正项级数。 +2. 当 $\rho = 1$ 时,需改用其他方法(如比较判别法、积分判别法、比值判别法等)。 +3. 计算 $\sqrt[n]{u_n}$ 时,常用结论: + $$ + \sqrt[n]{n} \to 1, \quad \sqrt[n]{n^k} \to 1, \quad \sqrt[n]{a} = a^{1/n} \to 1 \ (a > 0) + $$ +4. 若 $u_n$ 含有 $n!$ 或连乘形式,通常使用比值判别法更简便;若含 $n$ 次幂,则根值判别法可能更直接。 +--- + +## 练习题 + +> [!question] 练习1 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \left(\frac{n}{2n+1}\right)^n$ 的敛散性。 + +> [!question] 练习2 +> 判断级数 $\displaystyle \sum_{n=1}^{\infty} \frac{5^n}{n^n}$ 的敛散性。 + +> [!question] 练习3 +> 设 $a > 0$,讨论级数 $\displaystyle \sum_{n=1}^{\infty} \left(\frac{a}{n}\right)^n$ 的敛散性。 + +> [!note] 参考答案 +> +> 1. $\rho = \frac{1}{2} < 1$,收敛。 +> +> 2. $\rho = 0 < 1$,收敛。 +> +> 3. 对任意 $a > 0$,有 $\rho = 0 < 1$,收敛。 +> + +# 交错级数 + +## 原理 + +所谓交错级数,就是正负项交错出现的级数。此类级数的收敛一般用莱布尼兹判别法: + 对于交错级数$\sum_{n=1}^{\infty}(-1)^{n-1}a_{n}$,若满足 + (1)$\{a_{n}\}$单调减少,即$a_{1}\geqslant a_{2}\geqslant\cdots a_{n}\geqslant\cdots$ + (2)$\lim\limits_{n\to\infty}a_{n}=0,$ + 则级数$\sum_{n=1}^{\infty}(-1)^{n-1}a_{n}$收敛,且$\sum_{n=1}^{\infty}(-1)^{n-1}a_{n}\leqslant a_{1}$. + +## 优势劣势 + +莱布尼兹判别法优势就是判别条件简单,非常容易证明。但劣势在于仅限于判定交错级数的敛散性,所以一定要辨认清楚是否为交错级数。另外,在判断交错级数是条件收敛还是发散时,肯定会用到这个定理。 + +## 例题 + +> [!example] 例1 +> 判断下列极限是否收敛: +> $$(1)\sum_{n=1}^{\infty}\frac{cosn\pi}{n^{\frac{3}{4}}}$$ +> $$(2)\sum_{n=1}^{\infty}sin(n\pi+\frac{\pi}{n})$$ + +解: +$(1)cosn\pi=(-1)^n,故级数为交错级数.$ + +$显然a_{n}=\frac{1}{n^{\frac{3}{4}}}单调递减且\lim\limits_{n\to\infty}a_{n}=0,由莱布尼兹判别法,级数收敛.$ + +$(2)sin(n\pi+\frac{\pi}{n})=(-1)^{n}sin(\frac{\pi}{n}),故级数为交错级数.$ + +$又a_{n}=sin(\frac{\pi}{n})\to0(n\to\infty)且\{a_{n}\}从第二项开始单调递减,由莱布尼兹判别法知,级数收敛.$ + +上面这个例题告诉我们,交错级数并不总是很傻地就写一个$(-1)^n$来给我们看,它也是会有多种形式地。而且,无论是单调性还是符号的交错出现,都不一定要从第一项开始,因为级数的敛散性和它的前有限项无关,要是这个交错级数通项的绝对值从第二项才开始单调递减,那就从第二项开始考虑,这不影响它的敛散性;一样,要是一个级数从第二项开始才是交错级数,那就从第二项开始算,第一项就不管它了。 + +> [!example] 例2 +> 判断下面这个级数是否收敛: +> $\sum_{n=1}^{\infty}\frac{\ln n}{n}sin\frac{n\pi}{2}.$ + +解: + $对k\in\mathbb{N}_{+},显然有n=2k-1时,sin\frac{n\pi}{2}=(-1)^{k},n=2k时,sin\frac{n\pi}{2}=0.故$ + $\sum_{n=1}^{\infty}\frac{\ln n}{n}sin\frac{n\pi}{2}=\sum_{k=1}^{\infty}\frac{\ln (2k-1)}{2k-1}\cdot(-1)^{k}$ + $故级数从第二项开始为交错级数,且a_{k}=\frac{\ln (2k-1)}{2k-1}\to0(n\to\infty),$ + $\{a_{k}\}从第二项开始单调递减,由莱布尼兹判别法,级数收敛.$ + +## 习题 +$(1)\sum_{n=1}^{\infty}sin(\sqrt{n^2+1}\pi).$ +$(2)\sum_{n=1}^{\infty}\frac{1}{3^n}sin\frac{n\pi}{2}.$ +$(3)\sum_{n=1}^{\infty}\frac{(-1)^{n(n-1)/2}}{3^n}.$ +$(4)\sum_{n=1}^{\infty}(-1)^{n+1}a^{\frac{1}{n}} (a>0).$ + +## **习题答案** +$(1)sin(\sqrt{n^2+1}\pi)=(-1)^{n}sin((\sqrt{n^2+1}-n)\pi)=(-1)^{n}sin(\frac{1}{\sqrt{n^2+1}+n}\pi),$ +$a_{n}=sin(\frac{\pi}{\sqrt{n^2+1}+n})\to0(n\to\infty),且\{a_{n}\}单调递减,由莱布尼兹判别法,级数收敛$ +$(2)同例2解法,答案是收敛(建议作为课前题目)$ +$(3)n(n-1)/2的奇偶性与n正好相反,所以级数也是交错级数,容易证明是收敛$ +$(4)a^{\frac{1}{n}}\to1(n\to\infty),由级数收敛的必要条件知,级数发散$ \ No newline at end of file diff --git a/编写小组/讲义/证明题方法:单调有界定理,介值定理.md b/编写小组/讲义/证明题方法:单调有界定理,介值定理.md new file mode 100644 index 0000000..1fb86d3 --- /dev/null +++ b/编写小组/讲义/证明题方法:单调有界定理,介值定理.md @@ -0,0 +1,4 @@ +--- +tags: + - 编写小组 +--- diff --git a/编写小组/讲义/隐函数,参数方程和应用题.md b/编写小组/讲义/隐函数,参数方程和应用题.md new file mode 100644 index 0000000..e7ee343 --- /dev/null +++ b/编写小组/讲义/隐函数,参数方程和应用题.md @@ -0,0 +1,259 @@ +**内部资料,禁止传播** +**编委会(不分先后,姓氏首字母顺序):韩魏 刘柯妤 卢吉辚 王轲楠 支宝宁 郑哲航** + +## 隐函数求导 + +### 原理 + +设方程 $F(x, y) = 0$ 确定 $y$ 是 $x$ 的函数 $y = y(x)$,则对方程两边关于 $x$ 求导(注意 $y$ 是 $x$ 的函数),再解出 $y'$ 即可。 + +### **适用情况** + +适用于方程中 $x$ 与 $y$ 混合在一起,无法或不易解出 $y = f(x)$ 的情况,如: +- 圆的方程:$x^2 + y^2 = 1$ +- 椭圆方程:$\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$ +- 一般隐式方程:$e^{x+y} + \ln(xy) = 0$ + +### **优势** +1. 不必显式解出 $y = f(x)$,可直接求导; +2. 适用于复杂关系式,尤其是含有 $x$、$y$ 混合的函数形式。 + +### **劣势** +1. 求导过程中需注意 $y$ 是 $x$ 的函数,常需使用链式法则; +2. 最终表达式中可能仍含有 $y$,需结合原方程化简。 + +### **例子** + +> [!example] 例1(简单) +求由方程 $x^2 + y^2 = 1$ 确定的隐函数 $y = y(x)$ 的导数。 + +**解析** +两边对 $x$ 求导: +$$ +2x + 2y \cdot y' = 0 +$$ +解得: +$$ +y' = -\frac{x}{y} +$$ + +>[!example] 例2 +>设方程$y=y(x)$由方程$xe^{f(y)}=e^y$确定,其中$f$具有二阶导数,且$f'\neq1$,求$\frac{d^2y}{dx^2}.$ + + + + +>[!example] 例3 +>曲线$\ln{\sqrt{x^2+y^2}}=arctan(\frac{x}{y})$在点(0,1)处的切线方程为$\_\_\_$ +>(A)$y=-x+1$ +>(B)$y=1$ +>(C)$y=x+1$ +>(D)$y=\frac{1}{2}x+1$ + + + + +>[!example] 例4 +>函数$y=y(x)$由方程$sin(x^2+y^2)+e^x-xy^2=0$所确定,则$\frac{dy}{dx}=\_\_$. + + +>[!example] 例5(卢吉辚原创难题) +>已知由方程 $e^{(x y - 1)(x + y)} \ln (x^3 + y^3) = \frac{xy(x^2 + y^2)}{(x y)^{x^2 + x y + y^2}} \ln (\sqrt{x + y})$ 所确定的函数单调减,求其在点 $(1,1)$ 处的切线方程。 + + + + +>[!example] 例6(卢吉辚原创难题) +>已知由方程 $\arctan\left( \frac{x^2 y + x y^2}{2} \right) = \arcsin\left( \frac{\sqrt{x^2 + y^2}}{x + y} \right)$ 所确定的函数在其连续区间内单调减,求其在点 $(1,1)$ 处的切线方程。 + + +--- + +## 参数方程求导 + +### 原理 + +已知 $$\left\{ \begin{array}{c} x=x\left( t \right)\\ y=y\left( t \right)\\ \end{array} \right.$$若有均可导且 $x'(t) \neq 0$,则 +$$y'\left( t \right) =\frac{dy}{dt}$$ +$$x'\left( t \right)=\frac{dx}{dt}$$ + $$y'=\frac{dy}{dx}=\frac{dy}{dt}\cdot \frac{1}{\frac{dx}{dt}}=\frac{y'\left( t \right)}{x'\left( t \right)}$$ +则有 $$y''=\frac{d^2y}{dx^2}=\frac{dy'}{dx}=\frac{dy'}{dt}\cdot \frac{1}{\frac{dx}{dt}}=\frac{dy'}{dt}\cdot \frac{1}{x'\left( t \right)}=(\frac{y'(t)}{x'(t)})'\cdot \frac{1}{x'\left( t \right)}$$ + +而 $$\frac{y'(t)}{x'(t)}=\frac{y''\left( t \right) x'\left( t \right) -x''\left( t \right) y'\left( t \right)}{x'^2\left( t \right)}$$ + +故 $$y''=\frac{y''\left( t \right) x'\left( t \right) -x''\left( t \right) y'\left( t \right)}{x'^3\left( t \right)}$$ +### **适用情况** +适用于曲线由参数形式给出,尤其是: +- 物理中的运动轨迹; +- 极坐标、摆线、旋轮线等曲线; +- 复杂曲线的简化表示。 + +### **优势** +1. 形式简洁,直接利用两个导数作商; +2. 适用于参数化表示,便于计算高阶导数。 + +### **劣势** +1. 要求 $x'(t) \neq 0$,否则导数不存在; +2. 高阶导数计算需重复使用公式,略显繁琐。 + +### **例子** + +> [!example] 例1(简单) +> 求参数方程 +> $$ +\begin{cases} +x = a\cos t \\ +y = b\sin t +\end{cases}$$ +所确定的函数 $y = y(x)$ 的导数。 + +**解析** + +计算: + +$$ +\frac{dx}{dt} = -a\sin t, \quad \frac{dy}{dt} = b\cos t +$$ + +因此: +$$ +\frac{dy}{dx} = \frac{b\cos t}{-a\sin t} = -\frac{b}{a}\cot t +$$ + + +> [!example] 例2 +设 $y$ 由方程 $e^{x+y} = xy$ 确定,则 $y'$ 在点 $(1,0)$ 处的值为 +A. $0$ +B. $1$ +C. $-1$ +D. 不存在 + + + +> [!example] 例3 +> 参数方程 +> $$ +\begin{cases} +x = t^2 + 1 \\ +y = t^3 - t +\end{cases}$$ +在 $t = 1$ 处的导数 $\left. \frac{dy}{dx} \right|_{t=1}$ 为 +A. $1$ +B. $2$ +C. $3$ +D. $4$ + + + +>[!example] 例4(卢吉辚原创难题) +>设参数方程 $x = e^{t^2} \arcsin(t^2)$,$y = \ln(1+t^4) \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值(需要用到泰勒展开,仅作习题) + + +>[!example] 例5(卢吉辚原创难题) +>设参数方程 $x = e^{t} \sin t + \ln(1+t^2)$,$y = e^{t} \cos t + \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值。 + + + +## **应用题** + +应用题就比较综合了,它可以考很多知识点,比如参数方程,比如隐函数求导,也有可能就是一个普通的求导。但关键不在于求导,关键在于建立一个准确的模型,也就是 + +(1)把需要求的对象找出来,即自变量和因变量,注意可能有多个。 +(2)根据条件把关系式列出来,画一画示意图有时候会很有帮助。 + +### 微分估计值 + +>[!example] 例1 +>利用微分估计值也是导数应用的一种。利用微分估计下面几个式子的值: +>(1)$\sqrt{34}$(保留两位小数) +>(2)摆的振动周期公式为:$T=2\pi \sqrt{\frac{l}{g}}$。其中$l$为摆长(厘米),重力加速度$g=981cm^2/s$.为了使周期$T$增大$0.05$秒,摆长$l=20cm$的长度需要作何修正?(参考数据:$\sqrt{981\times20}\approx140.07,\frac{1}{\pi}\approx0.318$,保留两位小数) + + +### 相关变化率 + +#### 飞机航空摄影问题 + +##### 问题描述 + +>[!example] 例题 +>一飞机在离地面$2 km$的高度,以$200 km/h$的速度水平飞行到某目标上空,以便进行航空摄影。试求飞机飞至该目标正上方时,摄影机转动的角速率。 + + + +--- + +#### 人拉船问题 + +##### 问题描述 + +>[!example] 例题 +>人在河岸用绳经过定滑轮以速度 $v$、加速度 $a$ 拉船。绳与水平面夹角为 $\theta$。求此时船的加速度 $a'$。 +![[应用题人拉船.png]] + + +--- + +#### 动点曲线运动问题 + +##### 问题描述 + +>[!example] 例题 +>已知动点 $P$ 在曲线 $y = \sqrt{x}$ 上运动,记坐标原点 $O$ 与 $P$ 间的距离为 $l$。若点 $P$ 横坐标随时间的变化率为常数 $v$,则当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率是多少? + + + +--- + +#### 球浸入水问题 + +##### 问题描述 + +>[!example] 例题 +>半径为$a$的球渐渐沉入盛有部分水的半径为$b(b>a)$的圆柱形容器中.若球以匀速$c$下沉,求:球浸没一半时,容器内水面上升的速率. +> +>(A)$\frac{a^2c}{b^2}$ +> +>(B)$\frac{a^c}{b^2-a^2}$ +> +>(C)$\frac{a^2c}{2b^2}$ +> +>(D)$\frac{a^2c}{b^2+a^2}$ + + +### 应用题期中真题 + +>[!example] **例1**(2020) +>有一个正圆锥形漏斗,深度 $18 \text{ cm}$ ,上端口直径为 $12 \text{ cm}$ (即半径 $6 \text{ cm}$ )。漏斗下方连接一个圆柱形筒,圆柱筒直径为 $10 \text{ cm}$ (即半径 $5 \text{ cm}$ )。初始时刻漏斗内盛满水,然后水从漏斗流入圆柱筒。已知当漏斗中水深为 $12 \text{ cm}$ 时,漏斗水面下降的速度是 $1 \text{ cm/min}$ +问:此时圆柱筒内液面上升的速度是多少? + + + + +>[!example] **例2** (2021) +>一长为 L 米的木梯靠在倾角为$\frac{\pi}{3}$的光滑斜坡上,木梯的顶部距离 A 点 h 米,底部距离 A 点 d 米,受重力作用木梯的顶部以 $a \, \mathrm{m/s}$ 的速度沿直线 BA 下滑,底部水平向右运动。问:当木梯的顶部和底部与 A 点的距离相等时,底部的水平速度为多少? +>![[应用题梯子.jpg]] + + + + +>[!example] **例3**(2023) +>有一个长度为5m的梯子贴靠在铅直的墙上,假设其下端沿地板以3m/s的速率离开墙脚而滑动,则 +(1) 何时梯子的上、下端能以相同的速率移动? +(2) 何时其上端下滑之速率为4m/s? + + + + + +>[!example] **例4**(2022) +>某部举行八一阅兵,队列正步通过阅兵台时步幅间距离为75厘米,步速为每分钟112步。某观礼人员离行进队列垂直距离为60米,视线追随队列领队,求其视线与队列夹角为$\frac{\pi}{6}$时,视线转动角度的变化率。 + + + + + + +>[!example] **例5**(2024) +>一架巡逻直升机在距离地面3km的高度以120km/h的速度沿着一条水平笔直的高速公路向前飞行。飞行员观察到迎面驶来一辆汽车,通过雷达测出直升机与汽车的距离为5km,同时此距离以160km/h的速率在减少。试求此时汽车行进的速度。 + + diff --git a/编写小组/讲义/隐函数,参数方程和应用题(解析版).md b/编写小组/讲义/隐函数,参数方程和应用题(解析版).md new file mode 100644 index 0000000..bc4e4a1 --- /dev/null +++ b/编写小组/讲义/隐函数,参数方程和应用题(解析版).md @@ -0,0 +1,579 @@ +--- +tags: + - 编写小组 +--- +**内部资料,禁止传播** +**编委会(不分先后,姓氏首字母顺序):韩魏 刘柯妤 卢吉辚 王轲楠 支宝宁 郑哲航** + +## 隐函数求导 + +### 原理 + +设方程 $F(x, y) = 0$ 确定 $y$ 是 $x$ 的函数 $y = y(x)$,则对方程两边关于 $x$ 求导(注意 $y$ 是 $x$ 的函数),再解出 $y'$ 即可。 + +### **适用情况** + +适用于方程中 $x$ 与 $y$ 混合在一起,无法或不易解出 $y = f(x)$ 的情况,如: +- 圆的方程:$x^2 + y^2 = 1$ +- 椭圆方程:$\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$ +- 一般隐式方程:$e^{x+y} + \ln(xy) = 0$ + +### **优势** +1. 不必显式解出 $y = f(x)$,可直接求导; +2. 适用于复杂关系式,尤其是含有 $x$、$y$ 混合的函数形式。 + +### **劣势** +1. 求导过程中需注意 $y$ 是 $x$ 的函数,常需使用链式法则; +2. 最终表达式中可能仍含有 $y$,需结合原方程化简。 + +### **例子** + +> [!example] 例1(简单) +求由方程 $x^2 + y^2 = 1$ 确定的隐函数 $y = y(x)$ 的导数。 + +**解析** +两边对 $x$ 求导: +$$ +2x + 2y \cdot y' = 0 +$$ +解得: +$$ +y' = -\frac{x}{y} +$$ + +>[!example] 例2 +>设方程$y=y(x)$由方程$xe^{f(y)}=e^y$确定,其中$f$具有二阶导数,且$f'\neq1$,求$\frac{d^2y}{dx^2}.$ + +解1: + +两边对$x$求导得 +$$e^{f(y)}+xy'f'(y)e^{f(y)}=y'e^y$$ +从而 +$$y'=\frac{e^{f(y)}}{e^y-xf'(y)e^{f(y)}}=\frac{e^{f(y)}}{xe^{f(y)}(1-f'(y))}=\frac{1}{x(1-f'(y))}$$ +两边再对$x$求导得 +$$\frac{d^2y}{dx^2}=y''=-\frac{1-f'(y)-xy'f''(y)}{x^2(1-f'(y))^2}=-\frac{(1-f'(y))^2-f''(y)}{x^2(1-f'(y))^3}$$ + + +解2:两边取对数得$$lnx+f(y)=y$$ +两边对$x$求导得$$\frac{1}{x}+y'f'(y)=y'$$ +从而$$y'=\frac{1}{x(1-f'(y))}$$ +后同解1. + + +>[!example] 例3 +>曲线$\ln{\sqrt{x^2+y^2}}=arctan(\frac{x}{y})$在点(0,1)处的切线方程为$\_\_\_$ +>(A)$y=-x+1$ +>(B)$y=1$ +>(C)$y=x+1$ +>(D)$y=\frac{1}{2}x+1$ + + +解:由原式得$$\frac{1}{2}ln(x^2+y^2)=arctan(\frac{x}{y})$$ +两边对$x$求导得 $$\frac{1}{2}\cdot \frac{2x+2yy'}{x^2+y^2}=\frac{y-xy'}{x^2+y^2}$$$$x+yy'=y-xy'$$$$y'=\frac{y-x}{y+x}$$ +故$y'|_{x=0,y=1}=1$,即曲线在(0,1)处切线的斜率为1,故切线方程为: +$$y=x+1$$选C. + + +>[!example] 例4 +>函数$y=y(x)$由方程$sin(x^2+y^2)+e^x-xy^2=0$所确定,则$\frac{dy}{dx}=\_\_$. + +解: +两边求微分得: +$$(2xdx+2ydy)cos(x^2+y^2)+e^xdx-y^2dx-2xydy=0$$ +$$(2xcos(x^2+y^2)+e^x-y^2)dx+(2ycos(x^2+y^2)-2xy)dy=0$$ +$$\frac{dy}{dx}=\frac{2xcos(x^2+y^2)+e^x-y^2}{2xy-2ycos(x^2+y^2)}$$ + +>[!example] 例5(卢吉辚原创难题) +>已知由方程 $e^{(x y - 1)(x + y)} \ln (x^3 + y^3) = \frac{xy(x^2 + y^2)}{(x y)^{x^2 + x y + y^2}} \ln (\sqrt{x + y})$ 所确定的函数单调减,求其在点 $(1,1)$ 处的切线方程。 + +解法一(直接求导) + +设 $y = y(x) 、$ 是由方程确定的隐函数,且 $y(1)=1$。两边对 $x$ 求导,并记 $y' = \frac{dy}{dx}$。分别计算左边导数 $\frac{dL}{dx}$ 和右边导数 $\frac{dR}{dx}$ 在点 $(1,1)$ 处的值。 + +左边:$L = e^{(xy-1)(x+y)} \ln(x^3+y^3)$。 +令 $$u = (xy-1)(x+y),$$则 $u(1,1)=0$。 +有$$u' = (y + x y')(x+y) + (xy-1)(1+y'),$$在 $(1,1)$ 处,$u' = 2(1+y')$。 +于是 $$\frac{dL}{dx} = e^{u} u' \ln(x^3+y^3) + e^{u} \cdot \frac{1}{x^3+y^3} \cdot (3x^2 + 3y^2 y')$$ +在 $(1,1)$ 处,$e^{u}=1$,$\ln(x^3+y^3)=\ln 2$,$x^3+y^3=2$,所以 $\frac{dL}{dx}\bigg|_{(1,1)} = 2(1+y') \ln 2 + \frac{3}{2}(1+y') = \left(2\ln 2 + \frac{3}{2}\right)(1+y')$。 + +右边:$R = \frac{1}{2} (xy)^{1-(x^2+xy+y^2)} (x^2+y^2) \ln(x+y)$。 +令 $$A = (xy)^{1-(x^2+xy+y^2)},B = x^2+y^2,C = \ln(x+y)$$则 $R = \frac{1}{2} A B C$。 +在 $(1,1)$ 处,$A=1$,$B=2$,$C=\ln 2$。 + +先求 $A'$。取对数:$\ln A = [1-(x^2+xy+y^2)] \ln(xy)$。求导得: +$$\frac{A'}{A} = [-(2x + y + x y' + 2y y')] \ln(xy) + [1-(x^2+xy+y^2)] \cdot \frac{y + x y'}{xy}$$ +在 $(1,1)$ 处,$$\ln(xy)=0,1-(x^2+xy+y^2) = -2, xy=1$$,所以 $\frac{A'}{A} = -2(1+y')$,即 $A' = -2(1+y')$。 +易得$$B' = 2x + 2y y' = 2 + 2y' = 2(1+y'), +C' = \frac{1+y'}{x+y} = \frac{1}{2}(1+y').$$ + +于是 $$\frac{dR}{dx} = \frac{1}{2} (A' B C + A B' C + A B C')$$ +代入:$$\frac{dR}{dx} = \frac{1}{2} \left[ -2(1+y') \cdot 2 \cdot \ln 2 + 1 \cdot 2(1+y') \cdot \ln 2 + 1 \cdot 2 \cdot \frac{1}{2}(1+y') \right]$$ +化简:$$\frac{dR}{dx} = \frac{1}{2} \left[ -4(1+y') \ln 2 + 2(1+y') \ln 2 + (1+y') \right] = \frac{1}{2} (1+y') (1 - 2\ln 2)$$ + +由 $\frac{dL}{dx} = \frac{dR}{dx}$ 得: +$$\left(2\ln 2 + \frac{3}{2}\right)(1+y') = \frac{1}{2} (1+y') (1 - 2\ln 2)$$ +若 $1+y' \neq 0$,则 $2\ln 2 + \frac{3}{2} = \frac{1}{2} - \ln 2$,即 $3\ln 2 = -1$,矛盾。故 $1+y' = 0$,即 $y' = -1$。 + +所以切线斜率为 $-1$,切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 + +答案:切线方程为 $y = -x + 2$。 + + 解法二 + +由方程形式可知,交换 $x$ 与 $y$ 后方程不变,故曲线关于直线 $y = x$ 对称。点 $(1,1)$ 位于曲线且落在对称轴 $y = x$ 上。 +在对称轴上的点处,切线斜率只可能为 $1$(与对称轴平行)或 $-1$(与对称轴垂直)。 +因为函数单调减,所以在 $(1,1)$ 处导数 $y' < 0$,故斜率不可能为 $1$,只可能为 $-1$。 +由点斜式得切线方程: +$y - 1 = -1 \cdot (x - 1)$, +即 $y = -x + 2$。 + + +>[!example] 例6(卢吉辚原创难题) +>已知由方程 $\arctan\left( \frac{x^2 y + x y^2}{2} \right) = \arcsin\left( \frac{\sqrt{x^2 + y^2}}{x + y} \right)$ 所确定的函数在其连续区间内单调减,求其在点 $(1,1)$ 处的切线方程。 + +解法一(直接求导) + +对方程两边关于 $x$ 求导,$y$ 视为 $x$ 的函数,记 $y' = \frac{dy}{dx}$。 +左边:设 $u = \frac{x^2 y + x y^2}{2}$,则导数为 $\frac{1}{1+u^2} \cdot \frac{du}{dx}$。 +$\frac{du}{dx} = \frac{1}{2}(2xy + x^2 y' + y^2 + 2xy y')$。 +在 $(1,1)$ 处,$$u=1,\frac{1}{1+u^2} = \frac{1}{2},\frac{du}{dx} = \frac{1}{2}(2+1 + (1+2)y') = \frac{3}{2}(1+y')$$ +所以左边导数为 $$\frac{1}{2} \cdot \frac{3}{2}(1+y') = \frac{3}{4}(1+y')$$ + +右边:设 $v = \frac{\sqrt{x^2 + y^2}}{x + y}$,则导数为 $\frac{1}{\sqrt{1-v^2}} \cdot \frac{dv}{dx}$。 + +在 $(1,1)$ 处,$v = \frac{\sqrt{2}}{2}$,$\sqrt{1-v^2} = \frac{1}{\sqrt{2}}$,所以 $\frac{1}{\sqrt{1-v^2}} = \sqrt{2}$。 +计算 $\frac{dv}{dx}$:$$v = \frac{\sqrt{x^2+y^2}}{x+y}, +\frac{dv}{dx} = \frac{(x+y) \cdot \frac{x + y y'}{\sqrt{x^2+y^2}} - \sqrt{x^2+y^2}(1+y')}{(x+y)^2}$$ +代入 $(1,1)$,$$\sqrt{x^2+y^2} = \sqrt{2},x+y=2,\frac{dv}{dx} = \frac{2 \cdot \frac{1+y'}{\sqrt{2}} - \sqrt{2}(1+y')}{4} = 0$$ +因此右边导数为 $\sqrt{2} \cdot 0 = 0$。 + +由左右导数相等得:$\frac{3}{4}(1+y') = 0$,解得 $y' = -1$。 + +故切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 + + + 解法二 + +方程中交换 $x$ 与 $y$ 后形式不变,故曲线关于直线 $y = x$ 对称。点 $(1,1)$ 在曲线上且位于对称轴 $y = x$ 上。 +由对称性,在对称轴上的点处,切线斜率只可能为 $1$(与对称轴平行)或 $-1$(与对称轴垂直)。 +已知函数单调减,即在定义区间内 $y' < 0$,因此斜率不可能为 $1$,只能为 $-1$。 + +切线方程为 $y - 1 = -1 \cdot (x - 1)$,即 $y = -x + 2$。 + +--- + +## 参数方程求导 + +### 原理 + +已知 $$\left\{ \begin{array}{c} x=x\left( t \right)\\ y=y\left( t \right)\\ \end{array} \right.$$若有均可导且 $x'(t) \neq 0$,则 +$$y'\left( t \right) =\frac{dy}{dt}$$ +$$x'\left( t \right)=\frac{dx}{dt}$$ + $$y'=\frac{dy}{dx}=\frac{dy}{dt}\cdot \frac{1}{\frac{dx}{dt}}=\frac{y'\left( t \right)}{x'\left( t \right)}$$ +则有 $$y''=\frac{d^2y}{dx^2}=\frac{dy'}{dx}=\frac{dy'}{dt}\cdot \frac{1}{\frac{dx}{dt}}=\frac{dy'}{dt}\cdot \frac{1}{x'\left( t \right)}=(\frac{y'(t)}{x'(t)})'\cdot \frac{1}{x'\left( t \right)}$$ + +而 $$\frac{y'(t)}{x'(t)}=\frac{y''\left( t \right) x'\left( t \right) -x''\left( t \right) y'\left( t \right)}{x'^2\left( t \right)}$$ + +故 $$y''=\frac{y''\left( t \right) x'\left( t \right) -x''\left( t \right) y'\left( t \right)}{x'^3\left( t \right)}$$ +### **适用情况** +适用于曲线由参数形式给出,尤其是: +- 物理中的运动轨迹; +- 极坐标、摆线、旋轮线等曲线; +- 复杂曲线的简化表示。 + +### **优势** +1. 形式简洁,直接利用两个导数作商; +2. 适用于参数化表示,便于计算高阶导数。 + +### **劣势** +1. 要求 $x'(t) \neq 0$,否则导数不存在; +2. 高阶导数计算需重复使用公式,略显繁琐。 + +### **例子** + +> [!example] 例1(简单) +> 求参数方程 +> $$ +\begin{cases} +x = a\cos t \\ +y = b\sin t +\end{cases}$$ +所确定的函数 $y = y(x)$ 的导数。 + +**解析** + +计算: + +$$ +\frac{dx}{dt} = -a\sin t, \quad \frac{dy}{dt} = b\cos t +$$ + +因此: +$$ +\frac{dy}{dx} = \frac{b\cos t}{-a\sin t} = -\frac{b}{a}\cot t +$$ + + +> [!example] 例2 +设 $y$ 由方程 $e^{x+y} = xy$ 确定,则 $y'$ 在点 $(1,0)$ 处的值为 +A. $0$ +B. $1$ +C. $-1$ +D. 不存在 + +**解析** +两边对 $x$ 求导: +$$ +e^{x+y}(1 + y') = y + x y' +$$ +代入 $(1,0)$: +$$ +e^{1+0}(1 + y') = 0 + 1 \cdot y' +$$ +即: +$$ +e(1 + y') = y' +$$ +解得: +$$ +y' = \frac{e}{1 - e} +$$ +该值不为选项中所列,故判断为“不存在直接匹配”,但若只允许选 ABCD,则可能选 D。 +实际应说明:$y' = \frac{e}{1-e}$ 是一个确定数值。 + + +> [!example] 例3 +> 参数方程 +> $$ +\begin{cases} +x = t^2 + 1 \\ +y = t^3 - t +\end{cases}$$ +在 $t = 1$ 处的导数 $\left. \frac{dy}{dx} \right|_{t=1}$ 为 +A. $1$ +B. $2$ +C. $3$ +D. $4$ + +**解析** +计算: +$$ +\frac{dx}{dt} = 2t, \quad \frac{dy}{dt} = 3t^2 - 1 +$$ +则: +$$ +\frac{dy}{dx} = \frac{3t^2 - 1}{2t} +$$ +代入 $t = 1$: +$$ +\left. \frac{dy}{dx} \right|_{t=1} = \frac{3 \cdot 1^2 - 1}{2 \cdot 1} = \frac{2}{2} = 1 +$$ +答案:A + +>[!example] 例4(卢吉辚原创难题) +>设参数方程 $x = e^{t^2} \arcsin(t^2)$,$y = \ln(1+t^4) \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值(需要用到泰勒展开,仅作习题) + +**解析:** +先求一阶导: +$$\frac{dx}{dt} = 2t e^{t^2} \left( \frac{1}{\sqrt{1-t^4}} + \arcsin(t^2) \right)$$$$\frac{dy}{dt} = \frac{4t^3}{1+t^4} \arctan(t^3) + \ln(1+t^4) \cdot \frac{3t^2}{1+t^6}$$ +在 $t=0$ 处,$\frac{dx}{dt}=0$,$\frac{dy}{dt}=0$。 + +需用公式 $$\frac{d^2 y}{dx^2} = \frac{ \frac{dx}{dt} \frac{d^2 y}{dt^2} - \frac{dy}{dt} \frac{d^2 x}{dt^2} }{ \left( \frac{dx}{dt} \right)^3 }$$。 +利用泰勒展开: +$x(t) = t^2 + t^4 + O(t^6)$,得 $$\frac{dx}{dt} = 2t + 4t^3 + O(t^5),\frac{d^2 x}{dt^2} = 2 + 12t^2 + O(t^4);$$ +$y(t) = t^7 + O(t^{11})$,得 $$\frac{dy}{dt} = 7t^6 + O(t^{10}),\frac{d^2 y}{dt^2} = 42t^5 + O(t^9).$$ +分子:$$\frac{dx}{dt} \frac{d^2 y}{dt^2} - \frac{dy}{dt} \frac{d^2 x}{dt^2} = 70 t^6 + O(t^7)$$分母:$$(\frac{dx}{dt})^3 = 8 t^3 + O(t^5)$$ +当 $t \to 0$,$\frac{d^2 y}{dx^2} = \frac{70 t^6}{8 t^3} \to 0$,故值为 $0$。 + +**答案:** $\frac{d^2 y}{dx^2} \big|_{t=0} = 0$。 + +>[!example] 例5(卢吉辚原创难题) +>设参数方程 $x = e^{t} \sin t + \ln(1+t^2)$,$y = e^{t} \cos t + \arctan(t^3)$,求 $\frac{d^2 y}{dx^2}$ 在 $t=0$ 处的值。 + +**解析:** +计算一阶导: +$$\frac{dx}{dt} = e^{t} \sin t + e^{t} \cos t + \frac{2t}{1+t^2},\frac{dy}{dt} = e^{t} \cos t - e^{t} \sin t + \frac{3t^2}{1+t^6}.$$ +在 $t=0$ 处:$\frac{dx}{dt} = 1$,$\frac{dy}{dt} = 1$。 + +二阶导: +$$\frac{d^2 x}{dt^2} = 2 e^{t} \cos t + \frac{2 - 2t^2}{(1+t^2)^2},\frac{d^2 y}{dt^2} = -2 e^{t} \sin t + \frac{6t(1+t^6) - 18t^7}{(1+t^6)^2}.$$ +在 $t=0$ 处:$$\frac{d^2 x}{dt^2} = 4,\frac{d^2 y}{dt^2} = 0.$$ + +代入公式: +$$\frac{d^2 y}{dx^2} = \frac{1 \cdot 0 - 1 \cdot 4}{1^3} = -4.$$ + +**答案:** $\frac{d^2 y}{dx^2} \big|_{t=0} = -4$。 + +## **应用题** + +应用题就比较综合了,它可以考很多知识点,比如参数方程,比如隐函数求导,也有可能就是一个普通的求导。但关键不在于求导,关键在于建立一个准确的模型,也就是 + +(1)把需要求的对象找出来,即自变量和因变量,注意可能有多个。 +(2)根据条件把关系式列出来,画一画示意图有时候会很有帮助。 + +### 微分估计值 + +>[!example] 例1 +>利用微分估计值也是导数应用的一种。利用微分估计下面几个式子的值: +>(1)$\sqrt{34}$(保留两位小数) +>(2)摆的振动周期公式为:$T=2\pi \sqrt{\frac{l}{g}}$。其中$l$为摆长(厘米),重力加速度$g=981cm^2/s$.为了使周期$T$增大$0.05$秒,摆长$l=20cm$的长度需要作何修正?(参考数据:$\sqrt{981\times20}\approx140.07,\frac{1}{\pi}\approx0.318$,保留两位小数) + +解:(1)$\sqrt{34}=\sqrt{36-2}=6\sqrt{1-\frac{1}{18}}$,考虑函数$f(x)=\sqrt{x}$,$f'(x)=\frac{1}{2\sqrt{x}},f'(1)=\frac{1}{2}$,故$df=\frac{dx}{2\sqrt{x}},df|_{x=1}=\frac{1}{2}dx$,取$dx=-\frac{1}{18}$,得$df=-\frac{1}{36}$,故$$\sqrt{34}\approx 6(1-\frac{1}{36})=\frac{35}{6}\approx5.83$$ +(2)$dT=T'dl=\pi\sqrt{\frac{1}{gl}}dl=0.05$,则$$dl=\frac{1}{\pi}\sqrt{gl}\approx\frac{1}{3.14}\times\sqrt{981\times20}\times0.05\approx2.23$$ +故需要增加摆长约$2.23$厘米 + +### 相关变化率 + +#### 飞机航空摄影问题 + +##### 问题描述 + +>[!example] 例题 +>一飞机在离地面$2 km$的高度,以$200 km/h$的速度水平飞行到某目标上空,以便进行航空摄影。试求飞机飞至该目标正上方时,摄影机转动的角速率。 + +解析: + +1、建立坐标系 + +目标位置:原点 $O(0,0)$ +飞机位置:$P(x,2)$ +飞机高度:$h = 2 km$ +水平速度:$\frac{dx}{dt} = -200 km/h$ + +2、角度关系 + +$$ +\theta = \arctan\left(\frac{x}{2}\right), +\tan\theta =\frac{x}{2} +$$ + +3、角速率计算 + +$$\frac{d\theta}{dt} = \frac{d\theta}{dx} \cdot \frac{dx}{dt}$$ +$$\frac{d\theta}{dx} = \frac{d}{dx} \arctan\left(\frac{x}{2}\right) = \frac{1}{1 + \left(\frac{x}{2}\right)^2} \cdot \frac{1}{2} = \frac{2}{x^2 + 4}$$ +$$\frac{d\theta}{dt} = \frac{2}{x^2 + 4} \cdot (-200) = -\frac{400}{x^2 + 4} rad/h$$ + +4、目标正上方时的角速率 + +当 $x = 0$ 时: + +$$\left. \frac{d\theta}{dt} \right|_{x=0} = -\frac{400}{0 + 4} = -100 rad/h$$ + +5、转换单位: + +$$100 rad/h = 100 \times \frac{180}{\pi} °/h = \frac{18000}{\pi} °/h, + +\frac{18000}{\pi} °/h \times \frac{1}{3600} h/s = \frac{5}{\pi} °/s \approx 1.59 °/s$$ + +答案: + +飞机飞至目标正上方时,摄影机转动的角速率为 $\frac{5}{\pi} °/s$(约$1.59 °/s$)。 + +--- + +#### 人拉船问题 + +##### 问题描述 + +>[!example] 例题 +>人在河岸用绳经过定滑轮以速度 $v$、加速度 $a$ 拉船。绳与水平面夹角为 $\theta$。求此时船的加速度 $a'$。 +![[应用题人拉船.png]] + +解析 + +1、 变量定义 + +$h$:滑轮高度(定值) +$x$:船到河岸的水平距离 +$l$:绳长 +$v = -\frac{dl}{dt}$:人拉绳的速度 +$a = -\frac{d^2l}{dt^2}$:人拉绳的加速度 +$u = -\frac{dx}{dt}$:船的水平速度 +$a' = -\frac{d^2x}{dt^2}$:船的加速度 +$\theta$:绳与水平面夹角 + +2、几何关系 + +$l^2 = h^2 + x^2$ + +3、 一阶导数关系 + +对几何关系求导:$$2l\frac{dl}{dt} = 2x\frac{dx}{dt}\ 即\ l\frac{dl}{dt} = x\frac{dx}{dt}$$ + +代入速度定义:$l(-v) = x(-u)$ + +$$u = \frac{l}{x}v = \frac{v}{\cos\theta},其中 \cos\theta = \frac{x}{l}$$ + +4、 二阶导数关系 + +对一阶关系求导:$$\frac{d}{dt}\left(l\frac{dl}{dt}\right) = \frac{d}{dt}\left(x\frac{dx}{dt}\right)$$ + +$$\left(\frac{dl}{dt}\right)^2 + l\frac{d^2l}{dt^2} = \left(\frac{dx}{dt}\right)^2 + x\frac{d^2x}{dt^2}$$ + +$$(-v)^2 + l(-a) = (-u)^2 + x(-a')$$ + +$$v^2 - la = u^2 - xa'$$ + +5、 求解 $a'$ + +$$xa' = u^2 - v^2 + la, + +a' = \frac{u^2 - v^2 + la}{x}$$ + +代入 $u = \frac{v}{\cos\theta}$, $x = h\tan\theta$, $l = \frac{h}{\cos\theta}$: + +$$\begin{aligned} +a' &= \frac{\left(\frac{v}{\cos\theta}\right)^2 - v^2 + \left(\frac{h}{\cos\theta}\right)a}{h\tan\theta}\\[1em] + &= \frac{v^2\left(\frac{1}{\cos^2\theta} - 1\right)}{h\tan\theta} + \frac{\frac{h}{\cos\theta}a}{h\tan\theta}\\[1em] + &= \frac{v^2\tan^2\theta}{h\tan\theta} + \frac{a}{\cos\theta\tan\theta}\\[1em] + &= \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta} +\end{aligned}$$ + + 答案: + +此时船的加速度为: +$$a' = \frac{v^2\tan\theta}{h} + \frac{a}{\sin\theta}$$ + +--- + +#### 动点曲线运动问题 + +##### 问题描述 + +>[!example] 例题 +>已知动点 $P$ 在曲线 $y = \sqrt{x}$ 上运动,记坐标原点 $O$ 与 $P$ 间的距离为 $l$。若点 $P$ 横坐标随时间的变化率为常数 $v$,则当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率是多少? + +解析: + +1、 变量关系 + +点 $P$ 坐标:$(x, y)$, $y = \sqrt{x}$ + +原点 $O$ 与 $P$ 间的距离: +$$l = \sqrt{x^2 + y^2} = \sqrt{x^2 + (\sqrt{x})^2} = \sqrt{x^2 + x}$$ + +已知:$\frac{dx}{dt} = v$(常数) + +2、距离变化率计算 + +$$\begin{aligned} +\frac{dl}{dt} &= \frac{d}{dt} \sqrt{x^2 + x} = \frac{d}{dt} (x^2 + x)^{1/2}\\[1em] + &= \frac{1}{2}(x^2 + x)^{-1/2} \cdot \frac{d}{dt}(x^2 + x)\\[1em] + &= \frac{1}{2\sqrt{x^2 + x}} \cdot (2x + 1) \frac{dx}{dt}\\[1em] + &= \frac{2x + 1}{2\sqrt{x^2 + x}} \cdot v +\end{aligned}$$ + +3、在点 $(1, 1)$ 处的变化率 + +当 $x = 1$ 时: + +$$\left. \frac{dl}{dt} \right|_{x=1} = \frac{2\cdot 1 + 1}{2\sqrt{1^2 + 1}} \cdot v = \frac{3}{2\sqrt{2}} \cdot v = \frac{3v}{2\sqrt{2}}$$ + +有理化得:$$\frac{3v}{2\sqrt{2}} = \frac{3v\sqrt{2}}{4}$$ + + 答案: + +当点 $P$ 运动到点 $(1, 1)$ 时,$l$ 对时间的变化率为 $\frac{3v\sqrt{2}}{4}$。 + +--- + +#### 球浸入水问题 + +##### 问题描述 + +>[!example] 例题 +>半径为$a$的球渐渐沉入盛有部分水的半径为$b(b>a)$的圆柱形容器中.若球以匀速$c$下沉,求:球浸没一半时,容器内水面上升的速率. +> + +解:主要的等量关系是:球浸入水中的体积与水“溢出”的体积相同(如果把水面上升视为溢出的话)。设时间为$t$,球下沉的体积为$V$,水上升的高度为$H$,球浸入水的高度为$h$,则有$$V=\pi h^2(a-\frac{h}{3}),dV=(2\pi ah-\pi h^2)dh=\pi h(2a-h)dh$$(这个公式大家可以记住) +且(如图)$$dV=\pi(b^2-a^2+(a-h)^2)dH$$ +![[球浸入水示意图.jpg]] +于是$$\pi(b^2-a^2+(a-h)^2)dH=\pi h(2a-h)dh$$$$dH=\frac{h(2a-h)}{b^2-2ah+h^2}dh$$$$\frac{dH}{dt}=\frac{h(2a-h))}{b^2-2ah+h^2}\frac{dh}{dt}$$而$\frac{dh}{dt}=c,h=a$,故$$\frac{dH}{dt}=\frac{a^2c}{b^2-a^2}$$ + +### 应用题期中真题 + +>[!example] **例1**(2020) +>有一个正圆锥形漏斗,深度 $18 \text{ cm}$ ,上端口直径为 $12 \text{ cm}$ (即半径 $6 \text{ cm}$ )。漏斗下方连接一个圆柱形筒,圆柱筒直径为 $10 \text{ cm}$ (即半径 $5 \text{ cm}$ )。初始时刻漏斗内盛满水,然后水从漏斗流入圆柱筒。已知当漏斗中水深为 $12 \text{ cm}$ 时,漏斗水面下降的速度是 $1 \text{ cm/min}$ +问:此时圆柱筒内液面上升的速度是多少? + + +**解析**: +设 t (s)时漏斗水深为 h (cm),圆柱形容器的水深为 H (cm),则有 +$$\pi 5^2 H = V_0 - \frac{1}{3} \pi \left( \frac{6}{18} h \right)^2 h$$ +关于 t 求导数得 +$$25 \frac{dH}{dt} = -\frac{1}{9} h^2 \frac{dh}{dt}$$ +当 h = 12, $\frac{dh}{dt} = -1$ 时, +$$\frac{dH}{dt} = \frac{16}{25} \text{(cm/s)}$$ + + +>[!example] **例2** (2021) +>一长为 L 米的木梯靠在倾角为$\frac{\pi}{3}$的光滑斜坡上,木梯的顶部距离 A 点 h 米,底部距离 A 点 d 米,受重力作用木梯的顶部以 $a \, \mathrm{m/s}$ 的速度沿直线 BA 下滑,底部水平向右运动。问:当木梯的顶部和底部与 A 点的距离相等时,底部的水平速度为多少? +>![[应用题梯子.jpg]] + + + +**解析:** +设运动 t 秒后,木梯的顶部距离 A 点 $y(t) \, \mathrm{m}$ ,底部距离 A 点 $x(t) \, \mathrm{m}$ 。由图易知 +$$\left(y(t)\sin\frac{\pi}{3}\right)^2 + \left(x(t)+y(t)\cos\frac{\pi}{3}\right)^2 = L^2$$ +即 +$$x^2(t)+y^2(t)+x(t)y(t)=L^2$$ +方程两端分别对 t 求导,可得 +$$2x(t)x'(t)+2y(t)y'(t)+x(t)y'(t)+x'(t)y(t)=0$$ +由于 $y'(t)=-a \, (\mathrm{m/s})$ ,因此当 x(t)=y(t) 时,有 +$$2x'(t)-2a-a+x'(t)=0$$ +故 $$x'(t)=a \, (\mathrm{m/s})$$ + + +>[!example] **例3**(2023) +>有一个长度为5m的梯子贴靠在铅直的墙上,假设其下端沿地板以3m/s的速率离开墙脚而滑动,则 +(1) 何时梯子的上、下端能以相同的速率移动? +(2) 何时其上端下滑之速率为4m/s? + + +**解析:** +设在时刻 t ,梯子上端与墙角的距离为 $x(t) \, \mathrm{m}$ ,下端与墙角的距离为 $y(t) \, \mathrm{m}$ ,则 +$$x^2 + y^2 = 25$$ +两端同时对 t 求导数可得 +$$x \frac{dx}{dt} + y \frac{dy}{dt} = 0$$ + +(1) 当$\frac{dx}{dt} = -\frac{dy}{dt}$ 时,可得 x = y ,进而 $y = \frac{5}{\sqrt{2}} \, (\mathrm{m})$ , +即下端距墙脚 $\frac{5}{\sqrt{2}} \, \mathrm{m}$ 时上下端能以相同的速率移动。 + +(2) 当 $\frac{dy}{dt} = -4 \, (\mathrm{m/s})$ , $\frac{dx}{dt} = 3 \, (\mathrm{m/s})$ 时,有 $4x = 3y$ ,将其代入 $x^2 + y^2 = 25$ , +解得$y = 4 \, (\mathrm{m})$,即下端距墙脚4 m时,上端下滑速度为$4 m/s$ + + + +>[!example] **例4**(2022) +>某部举行八一阅兵,队列正步通过阅兵台时步幅间距离为75厘米,步速为每分钟112步。某观礼人员离行进队列垂直距离为60米,视线追随队列领队,求其视线与队列夹角为$\frac{\pi}{6}$时,视线转动角度的变化率。 + + + +**解析:** +- 建立几何模型:设时间为\(t\)分钟,步幅间距离0.75米,步速为每分钟112步,则队列行进距离$x = 0.75×112t = 84t$米。设视线与队列夹角为$theta$,由正切函数关系可得$tan\theta=\frac{x}{60}$,即$\tan\theta=\frac{84t}{60}=\frac{7t}{5}$。 +- 两边对$t$求导:根据复合函数求导法则 +$$(tan\theta)^\prime=\sec^{2}\theta\cdot\frac{d\theta}{dt})$$对$tan\theta=\frac{7t}{5}$两边求导得$$sec^{2}\theta\cdot\frac{d\theta}{dt}=\frac{7}{5}$$ +求解:$\frac{d\theta}{dt}$:当$\theta = \frac{\pi}{6}$时,$sec\theta=\frac{2}{\sqrt{3}}$,$sec^{2}\theta=\frac{4}{3}$,代入$sec^{2}\theta\cdot\frac{d\theta}{dt}=\frac{7}{5}$, + +可得$$\frac{4}{3}\cdot\frac{d\theta}{dt}=\frac{7}{5}$$解得$$\frac{d\theta}{dt}=\frac{21}{20}(弧度/分钟)$$ +答案:视线转动角度的变化率为 $\frac{21}{20}$ 弧度/分钟。本题主要考察了利用导数解决实际问题中的变化率问题,关键在于建立正确的函数关系并准确求导,易错点是复合函数求导法则的运用。 + + +>[!example] **例5**(2024) +>一架巡逻直升机在距离地面3km的高度以120km/h的速度沿着一条水平笔直的高速公路向前飞行。飞行员观察到迎面驶来一辆汽车,通过雷达测出直升机与汽车的距离为5km,同时此距离以160km/h的速率在减少。试求此时汽车行进的速度。 + + +**解析**: + +如图建立直角坐标系,设时刻 t直升机位于 A点 $(x_1​(t),3)$,汽车位于 B点 $(x_2​(t),0)$,直升机与汽车的距离为 $z(t)$,则 + +$$(x_2​(t)−x_1​(t))^2+32=z^2(t)$$ + +方程两端分别对 $t$ 求导,可得 +$$(x_2​(t)−x_1​(t))(x_2^′​(t)−x_1^′​(t))=z(t)z^′(t)$$ + +由于 $z(t)=5$时,$x_2​(t)−x_1​(t)=4$,$z^′(t)=−160$,$x_1^′​(t)=120$,有 + +$$4(x_2^′​(t)−120)=5×(−160)$$ + +故 $x_2^′​(t)=−80$,即汽车行进的速度为 $80km/h$。 \ No newline at end of file diff --git a/编写小组/课前测/课前测1.md b/编写小组/课前测/课前测1.md new file mode 100644 index 0000000..28de5c4 --- /dev/null +++ b/编写小组/课前测/课前测1.md @@ -0,0 +1,58 @@ +--- +tags: + - 编写小组 +--- +**内部资料,禁止传播** +**编委会(不分先后,姓氏首字母顺序):韩魏 刘柯妤 卢吉辚 王轲楠 支宝宁** + +1.计算极限 $$\lim_{x \to 0} \frac{\sqrt{1 + x} + \sqrt{1 - x} - 2}{x^2}$$A. $\frac{1}{2}$ + +B. $\frac{1}{4}$ + +C. $-\frac{1}{2}$ + +D. $-\frac{1}{4}$ + + + +2.设 $$a_n = \frac{1}{\sqrt{n^2+1}} + \frac{1}{\sqrt{n^2+2}} + \cdots + \frac{1}{\sqrt{n^2+n}}$$则 $\lim_{n \to \infty} a_n$ = ? + +A. 0 + +B. 1 + +C. $\frac{1}{2}$ + +D. 不存在 + + +3.计算 +$$\lim\limits_{x\to\infty}\tfrac{3x^2+5}{5x+3}sin\tfrac{2}{x}$$A. $\frac{6}{5}$ + +B. $\frac{4}{3}$ + +C. $-\frac{4}{3}$ + +D. $\frac{7}{8}$ + + +4.计算 +$$\lim\limits_{x\to0}\frac{\sqrt{1+2tanx}-\sqrt{1+2sinx}}{xln(1+x)-x^2}$$     +A、原式= $\infty$ + +B、原式=1 + +C、原式=-1 + +D、原式=0 + + +5.设$$f(x)=\frac{2x+1}{\sqrt{x^2+3}}$$则$\lim\limits_{x\to\infty}f(x)=()$ + +(A)不存在 + +(B)-2    + +(C)0   + +(D)2 \ No newline at end of file diff --git a/小测/12.22/课前测.md b/编写小组/课前测/课前测2.md similarity index 100% rename from 小测/12.22/课前测.md rename to 编写小组/课前测/课前测2.md diff --git a/编写小组/课前测/课前测3.md b/编写小组/课前测/课前测3.md new file mode 100644 index 0000000..1fb86d3 --- /dev/null +++ b/编写小组/课前测/课前测3.md @@ -0,0 +1,4 @@ +--- +tags: + - 编写小组 +--- diff --git a/编写小组/课前测/课前测解析版1.md b/编写小组/课前测/课前测解析版1.md new file mode 100644 index 0000000..8456f4a --- /dev/null +++ b/编写小组/课前测/课前测解析版1.md @@ -0,0 +1,109 @@ +--- +tags: + - 编写小组 +--- +1.计算极限 $$\lim_{x \to 0} \frac{\sqrt{1 + x} + \sqrt{1 - x} - 2}{x^2}$$A. $\frac{1}{2}$ + +B. $\frac{1}{4}$ + +C. $-\frac{1}{2}$ + +D. $-\frac{1}{4}$ + +答案:D + +有理化 + +令分子为 $A = \sqrt{1 + x} + \sqrt{1 - x} - 2$,分子分母同乘共轭:$$A = \frac{(\sqrt{1 + x} + \sqrt{1 - x})^2 - 4}{\sqrt{1 + x} + \sqrt{1 - x} + 2} = \frac{2\sqrt{1 - x^2} - 2}{\sqrt{1 + x} + \sqrt{1 - x} + 2}$$原式变为 +$$\frac{A}{x^2} = \frac{2\sqrt{1 - x^2} - 2}{x^2 (\sqrt{1 + x} + \sqrt{1 - x} + 2)}$$ +再对分子 $2\sqrt{1 - x^2} - 2$ 有理化: +$$2\sqrt{1 - x^2} - 2 = \frac{-2x^2}{\sqrt{1 - x^2} + 1}$$ +代入得 +$$\frac{A}{x^2} = \frac{-2}{(\sqrt{1 - x^2} + 1)(\sqrt{1 + x} + \sqrt{1 - x} + 2)}$$ +当 $x \to 0$ 时, +$$\sqrt{1 - x^2} \to 1, \quad \sqrt{1 + x} \to 1, \quad \sqrt{1 - x} \to 1$$ +所以分母趋于 $$(1 + 1) \times (1 + 1 + 2) = 2 \times 4 = 8$$因此极限为 +$$\frac{-2}{8} = -\frac{1}{4}$$ + +2.设 $$a_n = \frac{1}{\sqrt{n^2+1}} + \frac{1}{\sqrt{n^2+2}} + \cdots + \frac{1}{\sqrt{n^2+n}}$$则 $\lim_{n \to \infty} a_n$ = ? + +A. 0 + +B. 1 + +C. $\frac{1}{2}$ + +D. 不存在 + +答案:B + +解析: 这是经典的夹逼定理题。 + +· 共有 n 项。 + +· 分母最大项是 $\sqrt{n^2+1}$(最小分数),分母最小项是 $\sqrt{n^2+n}$(最大分数)。 + +· 因此: + +$$\frac{n}{\sqrt{n^2+n}} \leq a_n \leq \frac{n}{\sqrt{n^2+1}}$$  +· 计算两边的极限: +$$\lim_{n \to \infty} \frac{n}{\sqrt{n^2+n}} = \lim_{n \to \infty} \frac{1}{\sqrt{1+\frac{1}{n}}} = 1$$ +$$\lim_{n \to \infty} \frac{n}{\sqrt{n^2+1}} = \lim_{n \to \infty} \frac{1}{\sqrt{1+\frac{1}{n^2}}} = 1$$ +· 由夹逼定理,$\lim_{n \to \infty} a_n = 1$ + +3.计算 +$$\lim\limits_{x\to\infty}\frac{3x^2+5}{5x+3}sin\frac{2}{x}$$A. $\frac{6}{5}$ + +B. $\frac{4}{3}$ + +C. $-\frac{4}{3}$ + +D. $\frac{7}{8}$ + +答案:A +$$\lim\limits_{x\to\infty}\frac{3x^2+5}{5x+3}sin\frac{2}{x}=\lim\limits_{x\to\infty}\frac{6x^2+10}{5x^2+3x}\frac{sin\frac{2}{x}}{\frac{2}{x}}=\frac{6}{5}$$ + + +4.计算 +$$\lim\limits_{x\to0}\frac{\sqrt{1+2tanx}-\sqrt{1+2sinx}}{xln(1+x)-x^2}$$     +A、原式= $\infty$ + +B、原式=1 + +C、原式=-1 + +D、原式=0 + +答案:C + +原式等于$$2\lim\limits_{x\to0}\frac{tanx-sinx}{x[ln(1+x)-x]}\frac{1}{\sqrt{1+2tanx}+\sqrt{1+2sinx}}$$ + +$$=2\lim\limits_{x\to 0} \frac{sinx(1/cosx-1)} {x[ln(1+x)-x]} \frac{1}{\sqrt{1+2tanx}+ \sqrt{1+2sinx}}$$ + +$$=\lim\limits_{x\to0}\frac{sinx}{x}\frac{1}{cosx}\frac{1-cosx}{ln(1+x)-x}$$ + + +5.设$$f(x)=\frac{2x+1}{\sqrt{x^2+3}}$$则$\lim\limits_{x\to\infty}f(x)=()$ + +(A)不存在 + +(B)-2    + +(C)0   + +(D)2 + +答案:A + + +解析:对于函数 $f(x) = \frac{2x + 1}{\sqrt{x^2 + 3}}$,考虑 $x \to \infty$ 时的极限。由于 $x \to \infty$ 通常包括 $x \to +\infty$ 和 $x \to -\infty$,需分别讨论: + +1. **当 $x \to +\infty$**: + 此时 $x > 0$,有 $\sqrt{x^2 + 3} = \sqrt{x^2(1 + \frac{3}{x^2})} = x\sqrt{1 + \frac{3}{x^2}}$, + 分子可写为 $2x + 1 = x(2 + \frac{1}{x})$,故 $f(x) = \frac{x(2 + \frac{1}{x})}{x\sqrt{1 + \frac{3}{x^2}}} = \frac{2 + \frac{1}{x}}{\sqrt{1 + \frac{3}{x^2}}}$。 + 当 $x \to +\infty$ 时,$\frac{1}{x} \to 0$,$\frac{3}{x^2} \to 0$,所以 $\lim_{x \to +\infty} f(x) = \frac{2}{1} = 2$。 + +2. **当 $x \to -\infty$**: + 此时 $x < 0$,有 $\sqrt{x^2 + 3} = \sqrt{x^2(1 + \frac{3}{x^2})} = |x|\sqrt{1 + \frac{3}{x^2}} = -x\sqrt{1 + \frac{3}{x^2}}$, + 分子为 $2x + 1 = x(2 + \frac{1}{x})$,故 $f(x) = \frac{x(2 + \frac{1}{x})}{-x\sqrt{1 + \frac{3}{x^2}}} = -\frac{2 + \frac{1}{x}}{\sqrt{1 + \frac{3}{x^2}}}$。 + 当 $x \to -\infty$ 时,$\frac{1}{x} \to 0$,$\frac{3}{x^2} \to 0$,所以 $\lim_{x \to -\infty} f(x) = -\frac{2}{1} = -2$。 \ No newline at end of file diff --git a/小测/12.22/课前测解析版.md b/编写小组/课前测/课前测解析版2.md similarity index 94% rename from 小测/12.22/课前测解析版.md rename to 编写小组/课前测/课前测解析版2.md index 87dddc9..44c8f73 100644 --- a/小测/12.22/课前测解析版.md +++ b/编写小组/课前测/课前测解析版2.md @@ -57,7 +57,7 @@ $$\lim_{n\to\infty} \frac{4n+2}{5(n+1)} = \frac{4}{5} < 1$$ 4.级数$\sum_{n=1}^{\infty}\frac{(-1)^{n(n-1)/2}}{3^n}.$收敛 A.正确 B.错误 -$n(n-1)/2的奇偶性与n正好相反,所以级数也是交错级数,容易证明是收敛$ +$n(n-1)/2的奇偶性与n隔两项相反,所以级数也是交错级数,容易证明是收敛$ 5.级数 $\sum_{n=2}^{\infty} \frac{1}{(\ln n)^n}$ 收敛 A.正确 diff --git a/编写小组/课后测/课后测1.md b/编写小组/课后测/课后测1.md new file mode 100644 index 0000000..11aab26 --- /dev/null +++ b/编写小组/课后测/课后测1.md @@ -0,0 +1,51 @@ +--- +tags: + - 编写小组 +--- +**内部资料,禁止传播** +**编委会(不分先后,姓氏首字母顺序):韩魏 刘柯妤 卢吉辚 王轲楠 支宝宁** + +1.已知 $b_n = \sqrt[n]{2^n + 3^n + 4^n}$,则 $\lim_{n \to \infty} b_n = ?$ + +A. 2 + +B. 3 + +C. 4 + +D. 9 + + +2.计算 $$\displaystyle \lim_{n\to\infty} n^2[\ \arctan\ (n+1) - \arctan n]$$A. $\infty$ + +B. 1 + +C. $\tan1$ + +D. 0 + + +3.计算 +$$\lim\limits_{x\to\pi/2}(sinx)^{tanx}$$A. $\frac{\pi}{2}$ + +B. $\frac{\pi}{4}$ + +C. $-\frac{\pi}{2}$ + +D. $1$ + + +4.设 $$f(x) = (1+x^2)\cos\left(\frac{1}{x^3}\right)$$则 $\lim_{x \to \infty} f(x)$ + +A. 为 0 + +B. 为 1 + +C. 为-1 + +D. 无穷大 + + +5.设$$f(x)=\frac{2+e^{1/x}}{1+e^{4/x}}+\frac{sinx}{|x|}$$则$x=0$是 $f(x)$ 的() + +(A)可去间断点  (B)跳跃间断点   (C)无穷间断点  (D)震荡间断点 diff --git a/小测/12.22/课后测.md b/编写小组/课后测/课后测2.md similarity index 98% rename from 小测/12.22/课后测.md rename to 编写小组/课后测/课后测2.md index 1fb0f8f..c554473 100644 --- a/小测/12.22/课后测.md +++ b/编写小组/课后测/课后测2.md @@ -20,12 +20,6 @@ B.错误 - - - - - - 4,级数$\sum_{n=1}^{\infty} \frac{1}{5^n} \cdot \frac{3n^3 + 2n^2}{4n^3 + 1}$ 收敛 A.正确 B.错误 diff --git a/编写小组/课后测/课后测3.md b/编写小组/课后测/课后测3.md new file mode 100644 index 0000000..1fb86d3 --- /dev/null +++ b/编写小组/课后测/课后测3.md @@ -0,0 +1,4 @@ +--- +tags: + - 编写小组 +--- diff --git a/小测/12.23/课后测解析版.md b/编写小组/课后测/课后测解析版1.md similarity index 55% rename from 小测/12.23/课后测解析版.md rename to 编写小组/课后测/课后测解析版1.md index 961c03a..b7443a0 100644 --- a/小测/12.23/课后测解析版.md +++ b/编写小组/课后测/课后测解析版1.md @@ -77,13 +77,9 @@ C. 为-1 D. 无穷大 -答案:C - -解析: 注意这里 $x \to \infty$。虽然可以用夹逼: - -$$-(1+x^2) \leq f(x) \leq (1+x^2)$$ +答案:D -但两边的极限 $\lim_{x \to \infty} (1+x^2) = \infty$,不相等(且不是有限数),因此夹逼定理不适用。实际上,由于 $\cos(1/x^3) 在 x \to \infty$ 时振荡趋于 $\cos 0 = 1$,而 $1+x^2 \to \infty$,所以函数值在振荡中趋于无穷大,极限不存在。 +解析: 由于 $\cos(1/x^3) 在 x \to \infty$ 时振荡趋于 $\cos 0 = 1$,而 $1+x^2 \to \infty$,所以函数值在振荡中趋于无穷大。 @@ -91,4 +87,30 @@ $$-(1+x^2) \leq f(x) \leq (1+x^2)$$ (A)可去间断点  (B)跳跃间断点   (C)无穷间断点  (D)震荡间断点 -答案:A \ No newline at end of file +答案:A + +对于函数 $f(x) = \frac{2 + e^{1/x}}{1 + e^{4/x}} + \frac{\sin x}{|x|}$,分析 $x=0$ 处的间断点类型。 + +首先考虑第二部分 $\frac{\sin x}{|x|}$ 在 $x=0$ 处的左右极限: +当 $x \to 0^+$ 时,$|x|=x$,所以 $\lim_{x \to 0^+} \frac{\sin x}{|x|} = \lim_{x \to 0^+} \frac{\sin x}{x} = 1$。 +当 $x \to 0^-$ 时,$|x|=-x$,所以 $\lim_{x \to 0^-} \frac{\sin x}{|x|} = \lim_{x \to 0^-} \frac{\sin x}{-x} = -1$。 +第二部分左右极限存在但不相等。 + +再考虑第一部分 $g(x) = \frac{2 + e^{1/x}}{1 + e^{4/x}}$ 的左右极限: + +- 当 $x \to 0^+$ 时,$1/x \to +\infty$,$4/x \to +\infty$,故 $e^{1/x} \to +\infty$,$e^{4/x} \to +\infty$,且 $e^{4/x}$ 增长更快。 + 可写为 $g(x) = \frac{e^{1/x}(2/e^{1/x} + 1)}{e^{4/x}(1/e^{4/x} + 1)} = e^{-3/x} \cdot \frac{2/e^{1/x} + 1}{1/e^{4/x} + 1}$。 + 由于 $e^{-3/x} \to 0$,分母趋于 $1$,所以 $\lim_{x \to 0^+} g(x) = 0$。 + +- 当 $x \to 0^-$ 时,$1/x \to -\infty$,$4/x \to -\infty$,故 $e^{1/x} \to 0$,$e^{4/x} \to 0$。 + 此时 $g(x) = \frac{2 + 0}{1 + 0} = 2$,所以 $\lim_{x \to 0^-} g(x) = 2$。 + + +因此,$f(x)$ 的左右极限为: + +- $\lim_{x \to 0^+} f(x) = 0 + 1 = 1$。 + +- $\lim_{x \to 0^-} f(x) = 2 + (-1) = 1$。 + + +左右极限存在且相等(等于 $1$),故 $x=0$ 为可去间断点。 \ No newline at end of file diff --git a/小测/12.22/课后测(解析).md b/编写小组/课后测/课后测解析版2.md similarity index 100% rename from 小测/12.22/课后测(解析).md rename to 编写小组/课后测/课后测解析版2.md