-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathgitfred.min.js
1 lines (1 loc) · 27.2 KB
/
gitfred.min.js
1
function diff_match_patch(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;function _readOnlyError(t){throw new Error('"'+t+'" is read-only')}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}diff_match_patch.Diff,diff_match_patch.prototype.diff_main=function(t,e,n,r){void 0===r&&(r=this.Diff_Timeout<=0?Number.MAX_VALUE:(new Date).getTime()+1e3*this.Diff_Timeout);var i=r;if(null==t||null==e)throw new Error("Null input. (diff_main)");if(t==e)return t?[[DIFF_EQUAL,t]]:[];void 0===n&&(n=!0);var f=n,h=this.diff_commonPrefix(t,e),a=t.substring(0,h);t=t.substring(h),e=e.substring(h),h=this.diff_commonSuffix(t,e);var s=t.substring(t.length-h);t=t.substring(0,t.length-h),e=e.substring(0,e.length-h);var o=this.diff_compute_(t,e,f,i);return a&&o.unshift([DIFF_EQUAL,a]),s&&o.push([DIFF_EQUAL,s]),this.diff_cleanupMerge(o),o},diff_match_patch.prototype.diff_compute_=function(t,e,n,r){var i;if(!t)return[[DIFF_INSERT,e]];if(!e)return[[DIFF_DELETE,t]];var f=t.length>e.length?t:e,h=t.length>e.length?e:t,a=f.indexOf(h);if(-1!=a)return i=[[DIFF_INSERT,f.substring(0,a)],[DIFF_EQUAL,h],[DIFF_INSERT,f.substring(a+h.length)]],t.length>e.length&&(i[0][0]=i[2][0]=DIFF_DELETE),i;if(1==h.length)return[[DIFF_DELETE,t],[DIFF_INSERT,e]];var s=this.diff_halfMatch_(t,e);if(s){var o=s[0],c=s[1],l=s[2],g=s[3],u=s[4],_=this.diff_main(o,l,n,r),p=this.diff_main(c,g,n,r);return _.concat([[DIFF_EQUAL,u]],p)}return n&&100<t.length&&100<e.length?this.diff_lineMode_(t,e,r):this.diff_bisect_(t,e,r)},diff_match_patch.prototype.diff_lineMode_=function(t,e,n){t=(c=this.diff_linesToChars_(t,e)).chars1,e=c.chars2;var r=c.lineArray,i=this.diff_main(t,e,!1,n);this.diff_charsToLines_(i,r),this.diff_cleanupSemantic(i),i.push([DIFF_EQUAL,""]);for(var f=0,h=0,a=0,s="",o="";f<i.length;){switch(i[f][0]){case DIFF_INSERT:a++,o+=i[f][1];break;case DIFF_DELETE:h++,s+=i[f][1];break;case DIFF_EQUAL:if(1<=h&&1<=a){i.splice(f-h-a,h+a),f=f-h-a;for(var c,l=(c=this.diff_main(s,o,!1,n)).length-1;0<=l;l--)i.splice(f,0,c[l]);f+=c.length}h=a=0,o=s=""}f++}return i.pop(),i},diff_match_patch.prototype.diff_bisect_=function(t,e,n){for(var r=t.length,i=e.length,f=Math.ceil((r+i)/2),h=f,a=2*f,s=new Array(a),o=new Array(a),c=0;c<a;c++)s[c]=-1,o[c]=-1;s[h+1]=0;for(var l=r-i,g=l%2!=(o[h+1]=0),u=0,_=0,p=0,d=0,m=0;m<f&&!((new Date).getTime()>n);m++){for(var E=-m+u;E<=m-_;E+=2){for(var F=h+E,v=(T=E==-m||E!=m&&s[F-1]<s[F+1]?s[F+1]:s[F-1]+1)-E;T<r&&v<i&&t.charAt(T)==e.charAt(v);)T++,v++;if(r<(s[F]=T))_+=2;else if(i<v)u+=2;else if(g){if(0<=(D=h+l-E)&&D<a&&-1!=o[D])if((I=r-o[D])<=T)return this.diff_bisectSplit_(t,e,T,v,n)}}for(var b=-m+p;b<=m-d;b+=2){for(var I,D=h+b,y=(I=b==-m||b!=m&&o[D-1]<o[D+1]?o[D+1]:o[D-1]+1)-b;I<r&&y<i&&t.charAt(r-I-1)==e.charAt(i-y-1);)I++,y++;if(r<(o[D]=I))d+=2;else if(i<y)p+=2;else if(!g){if(0<=(F=h+l-b)&&F<a&&-1!=s[F]){var T;v=h+(T=s[F])-F;if((I=r-I)<=T)return this.diff_bisectSplit_(t,e,T,v,n)}}}}return[[DIFF_DELETE,t],[DIFF_INSERT,e]]},diff_match_patch.prototype.diff_bisectSplit_=function(t,e,n,r,i){var f=t.substring(0,n),h=e.substring(0,r),a=t.substring(n),s=e.substring(r),o=this.diff_main(f,h,!1,i),c=this.diff_main(a,s,!1,i);return o.concat(c)},diff_match_patch.prototype.diff_linesToChars_=function(t,e){var h=[],a={};function n(t){for(var e="",n=0,r=-1,i=h.length;r<t.length-1;){-1==(r=t.indexOf("\n",n))&&(r=t.length-1);var f=t.substring(n,r+1);n=r+1,(a.hasOwnProperty?a.hasOwnProperty(f):void 0!==a[f])?e+=String.fromCharCode(a[f]):(e+=String.fromCharCode(i),a[f]=i,h[i++]=f)}return e}return h[0]="",{chars1:n(t),chars2:n(e),lineArray:h}},diff_match_patch.prototype.diff_charsToLines_=function(t,e){for(var n=0;n<t.length;n++){for(var r=t[n][1],i=[],f=0;f<r.length;f++)i[f]=e[r.charCodeAt(f)];t[n][1]=i.join("")}},diff_match_patch.prototype.diff_commonPrefix=function(t,e){if(!t||!e||t.charAt(0)!=e.charAt(0))return 0;for(var n=0,r=Math.min(t.length,e.length),i=r,f=0;n<i;)t.substring(f,i)==e.substring(f,i)?f=n=i:r=i,i=Math.floor((r-n)/2+n);return i},diff_match_patch.prototype.diff_commonSuffix=function(t,e){if(!t||!e||t.charAt(t.length-1)!=e.charAt(e.length-1))return 0;for(var n=0,r=Math.min(t.length,e.length),i=r,f=0;n<i;)t.substring(t.length-i,t.length-f)==e.substring(e.length-i,e.length-f)?f=n=i:r=i,i=Math.floor((r-n)/2+n);return i},diff_match_patch.prototype.diff_commonOverlap_=function(t,e){var n=t.length,r=e.length;if(0==n||0==r)return 0;r<n?t=t.substring(n-r):n<r&&(e=e.substring(0,n));var i=Math.min(n,r);if(t==e)return i;for(var f=0,h=1;;){var a=t.substring(i-h),s=e.indexOf(a);if(-1==s)return f;h+=s,0!=s&&t.substring(i-h)!=e.substring(0,h)||(f=h,h++)}},diff_match_patch.prototype.diff_halfMatch_=function(t,e){if(this.Diff_Timeout<=0)return null;var n=t.length>e.length?t:e,r=t.length>e.length?e:t;if(n.length<4||2*r.length<n.length)return null;var g=this;function i(t,e,n){for(var r,i,f,h,a=t.substring(n,n+Math.floor(t.length/4)),s=-1,o="";-1!=(s=e.indexOf(a,s+1));){var c=g.diff_commonPrefix(t.substring(n),e.substring(s)),l=g.diff_commonSuffix(t.substring(0,n),e.substring(0,s));o.length<l+c&&(o=e.substring(s-l,s)+e.substring(s,s+c),r=t.substring(0,n-l),i=t.substring(n+c),f=e.substring(0,s-l),h=e.substring(s+c))}return 2*o.length>=t.length?[r,i,f,h,o]:null}var f,h,a,s,o,c=i(n,r,Math.ceil(n.length/4)),l=i(n,r,Math.ceil(n.length/2));return c||l?(f=l?c&&c[4].length>l[4].length?c:l:c,t.length>e.length?(h=f[0],a=f[1],s=f[2],o=f[3]):(s=f[0],o=f[1],h=f[2],a=f[3]),[h,a,s,o,f[4]]):null},diff_match_patch.prototype.diff_cleanupSemantic=function(t){for(var e=!1,n=[],r=0,i=null,f=0,h=0,a=0,s=0,o=0;f<t.length;)t[f][0]==DIFF_EQUAL?(h=s,a=o,o=s=0,i=t[n[r++]=f][1]):(t[f][0]==DIFF_INSERT?s+=t[f][1].length:o+=t[f][1].length,i&&i.length<=Math.max(h,a)&&i.length<=Math.max(s,o)&&(t.splice(n[r-1],0,[DIFF_DELETE,i]),t[n[r-1]+1][0]=DIFF_INSERT,r--,f=0<--r?n[r-1]:-1,o=s=a=h=0,e=!(i=null))),f++;for(e&&this.diff_cleanupMerge(t),this.diff_cleanupSemanticLossless(t),f=1;f<t.length;){if(t[f-1][0]==DIFF_DELETE&&t[f][0]==DIFF_INSERT){var c=t[f-1][1],l=t[f][1],g=this.diff_commonOverlap_(c,l),u=this.diff_commonOverlap_(l,c);u<=g?(g>=c.length/2||g>=l.length/2)&&(t.splice(f,0,[DIFF_EQUAL,l.substring(0,g)]),t[f-1][1]=c.substring(0,c.length-g),t[f+1][1]=l.substring(g),f++):(u>=c.length/2||u>=l.length/2)&&(t.splice(f,0,[DIFF_EQUAL,c.substring(0,u)]),t[f-1][0]=DIFF_INSERT,t[f-1][1]=l.substring(0,l.length-u),t[f+1][0]=DIFF_DELETE,t[f+1][1]=c.substring(u),f++),f++}f++}},diff_match_patch.prototype.diff_cleanupSemanticLossless=function(t){function e(t,e){if(!t||!e)return 6;var n=t.charAt(t.length-1),r=e.charAt(0),i=n.match(diff_match_patch.nonAlphaNumericRegex_),f=r.match(diff_match_patch.nonAlphaNumericRegex_),h=i&&n.match(diff_match_patch.whitespaceRegex_),a=f&&r.match(diff_match_patch.whitespaceRegex_),s=h&&n.match(diff_match_patch.linebreakRegex_),o=a&&r.match(diff_match_patch.linebreakRegex_),c=s&&t.match(diff_match_patch.blanklineEndRegex_),l=o&&e.match(diff_match_patch.blanklineStartRegex_);return c||l?5:s||o?4:i&&!h&&a?3:h||a?2:i||f?1:0}for(var n=1;n<t.length-1;){if(t[n-1][0]==DIFF_EQUAL&&t[n+1][0]==DIFF_EQUAL){var r=t[n-1][1],i=t[n][1],f=t[n+1][1],h=this.diff_commonSuffix(r,i);if(h){var a=i.substring(i.length-h);r=r.substring(0,r.length-h),i=a+i.substring(0,i.length-h),f=a+f}for(var s=r,o=i,c=f,l=e(r,i)+e(i,f);i.charAt(0)===f.charAt(0);){r+=i.charAt(0),i=i.substring(1)+f.charAt(0),f=f.substring(1);var g=e(r,i)+e(i,f);l<=g&&(l=g,s=r,o=i,c=f)}t[n-1][1]!=s&&(s?t[n-1][1]=s:(t.splice(n-1,1),n--),t[n][1]=o,c?t[n+1][1]=c:(t.splice(n+1,1),n--))}n++}},diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,diff_match_patch.whitespaceRegex_=/\s/,diff_match_patch.linebreakRegex_=/[\r\n]/,diff_match_patch.blanklineEndRegex_=/\n\r?\n$/,diff_match_patch.blanklineStartRegex_=/^\r?\n\r?\n/,diff_match_patch.prototype.diff_cleanupEfficiency=function(t){for(var e=!1,n=[],r=0,i=null,f=0,h=!1,a=!1,s=!1,o=!1;f<t.length;)t[f][0]==DIFF_EQUAL?(i=t[f][1].length<this.Diff_EditCost&&(s||o)?(h=s,a=o,t[n[r++]=f][1]):(r=0,null),s=o=!1):(t[f][0]==DIFF_DELETE?o=!0:s=!0,i&&(h&&a&&s&&o||i.length<this.Diff_EditCost/2&&h+a+s+o==3)&&(t.splice(n[r-1],0,[DIFF_DELETE,i]),t[n[r-1]+1][0]=DIFF_INSERT,r--,i=null,h&&a?(s=o=!0,r=0):(f=0<--r?n[r-1]:-1,s=o=!1),e=!0)),f++;e&&this.diff_cleanupMerge(t)},diff_match_patch.prototype.diff_cleanupMerge=function(t){t.push([DIFF_EQUAL,""]);for(var e,n=0,r=0,i=0,f="",h="";n<t.length;)switch(t[n][0]){case DIFF_INSERT:i++,h+=t[n][1],n++;break;case DIFF_DELETE:r++,f+=t[n][1],n++;break;case DIFF_EQUAL:1<r+i?(0!==r&&0!==i&&(0!==(e=this.diff_commonPrefix(h,f))&&(0<n-r-i&&t[n-r-i-1][0]==DIFF_EQUAL?t[n-r-i-1][1]+=h.substring(0,e):(t.splice(0,0,[DIFF_EQUAL,h.substring(0,e)]),n++),h=h.substring(e),f=f.substring(e)),0!==(e=this.diff_commonSuffix(h,f))&&(t[n][1]=h.substring(h.length-e)+t[n][1],h=h.substring(0,h.length-e),f=f.substring(0,f.length-e))),0===r?t.splice(n-i,r+i,[DIFF_INSERT,h]):0===i?t.splice(n-r,r+i,[DIFF_DELETE,f]):t.splice(n-r-i,r+i,[DIFF_DELETE,f],[DIFF_INSERT,h]),n=n-r-i+(r?1:0)+(i?1:0)+1):0!==n&&t[n-1][0]==DIFF_EQUAL?(t[n-1][1]+=t[n][1],t.splice(n,1)):n++,r=i=0,h=f=""}""===t[t.length-1][1]&&t.pop();var a=!1;for(n=1;n<t.length-1;)t[n-1][0]==DIFF_EQUAL&&t[n+1][0]==DIFF_EQUAL&&(t[n][1].substring(t[n][1].length-t[n-1][1].length)==t[n-1][1]?(t[n][1]=t[n-1][1]+t[n][1].substring(0,t[n][1].length-t[n-1][1].length),t[n+1][1]=t[n-1][1]+t[n+1][1],t.splice(n-1,1),a=!0):t[n][1].substring(0,t[n+1][1].length)==t[n+1][1]&&(t[n-1][1]+=t[n+1][1],t[n][1]=t[n][1].substring(t[n+1][1].length)+t[n+1][1],t.splice(n+1,1),a=!0)),n++;a&&this.diff_cleanupMerge(t)},diff_match_patch.prototype.diff_xIndex=function(t,e){var n,r=0,i=0,f=0,h=0;for(n=0;n<t.length&&(t[n][0]!==DIFF_INSERT&&(r+=t[n][1].length),t[n][0]!==DIFF_DELETE&&(i+=t[n][1].length),!(e<r));n++)f=r,h=i;return t.length!=n&&t[n][0]===DIFF_DELETE?h:h+(e-f)},diff_match_patch.prototype.diff_prettyHtml=function(t){for(var e=[],n=/&/g,r=/</g,i=/>/g,f=/\n/g,h=0;h<t.length;h++){var a=t[h][0],s=t[h][1].replace(n,"&").replace(r,"<").replace(i,">").replace(f,"¶<br>");switch(a){case DIFF_INSERT:e[h]='<ins style="background:#e6ffe6;">'+s+"</ins>";break;case DIFF_DELETE:e[h]='<del style="background:#ffe6e6;">'+s+"</del>";break;case DIFF_EQUAL:e[h]="<span>"+s+"</span>"}}return e.join("")},diff_match_patch.prototype.diff_text1=function(t){for(var e=[],n=0;n<t.length;n++)t[n][0]!==DIFF_INSERT&&(e[n]=t[n][1]);return e.join("")},diff_match_patch.prototype.diff_text2=function(t){for(var e=[],n=0;n<t.length;n++)t[n][0]!==DIFF_DELETE&&(e[n]=t[n][1]);return e.join("")},diff_match_patch.prototype.diff_levenshtein=function(t){for(var e=0,n=0,r=0,i=0;i<t.length;i++){var f=t[i][0],h=t[i][1];switch(f){case DIFF_INSERT:n+=h.length;break;case DIFF_DELETE:r+=h.length;break;case DIFF_EQUAL:e+=Math.max(n,r),r=n=0}}return e+=Math.max(n,r)},diff_match_patch.prototype.diff_toDelta=function(t){for(var e=[],n=0;n<t.length;n++)switch(t[n][0]){case DIFF_INSERT:e[n]="+"+encodeURI(t[n][1]);break;case DIFF_DELETE:e[n]="-"+t[n][1].length;break;case DIFF_EQUAL:e[n]="="+t[n][1].length}return e.join("\t").replace(/%20/g," ")},diff_match_patch.prototype.diff_fromDelta=function(t,e){for(var n=[],r=0,i=0,f=e.split(/\t/g),h=0;h<f.length;h++){var a=f[h].substring(1);switch(f[h].charAt(0)){case"+":try{n[r++]=[DIFF_INSERT,decodeURI(a)]}catch(t){throw new Error("Illegal escape in diff_fromDelta: "+a)}break;case"-":case"=":var s=parseInt(a,10);if(isNaN(s)||s<0)throw new Error("Invalid number in diff_fromDelta: "+a);var o=t.substring(i,i+=s);"="==f[h].charAt(0)?n[r++]=[DIFF_EQUAL,o]:n[r++]=[DIFF_DELETE,o];break;default:if(f[h])throw new Error("Invalid diff operation in diff_fromDelta: "+f[h])}}if(i!=t.length)throw new Error("Delta length ("+i+") does not equal source text length ("+t.length+").");return n},diff_match_patch.prototype.match_main=function(t,e,n){if(null==t||null==e||null==n)throw new Error("Null input. (match_main)");return n=Math.max(0,Math.min(n,t.length)),t==e?0:t.length?t.substring(n,n+e.length)==e?n:this.match_bitap_(t,e,n):-1},diff_match_patch.prototype.match_bitap_=function(t,i,f){if(i.length>this.Match_MaxBits)throw new Error("Pattern too long for this browser.");var e=this.match_alphabet_(i),h=this;function n(t,e){var n=t/i.length,r=Math.abs(f-e);return h.Match_Distance?n+r/h.Match_Distance:r?1:n}var r=this.Match_Threshold,a=t.indexOf(i,f);-1!=a&&(r=Math.min(n(0,a),r),-1!=(a=t.lastIndexOf(i,f+i.length))&&(r=Math.min(n(0,a),r)));var s,o,c=1<<i.length-1;a=-1;for(var l,g=i.length+t.length,u=0;u<i.length;u++){for(s=0,o=g;s<o;)n(u,f+o)<=r?s=o:g=o,o=Math.floor((g-s)/2+s);g=o;var _=Math.max(1,f-o+1),p=Math.min(f+o,t.length)+i.length,d=Array(p+2);d[p+1]=(1<<u)-1;for(var m=p;_<=m;m--){var E=e[t.charAt(m-1)];if(d[m]=0===u?(d[m+1]<<1|1)&E:(d[m+1]<<1|1)&E|(l[m+1]|l[m])<<1|1|l[m+1],d[m]&c){var F=n(u,m-1);if(F<=r){if(r=F,!(f<(a=m-1)))break;_=Math.max(1,2*f-a)}}}if(n(u+1,f)>r)break;l=d}return a},diff_match_patch.prototype.match_alphabet_=function(t){for(var e={},n=0;n<t.length;n++)e[t.charAt(n)]=0;for(n=0;n<t.length;n++)e[t.charAt(n)]|=1<<t.length-n-1;return e},diff_match_patch.prototype.patch_addContext_=function(t,e){if(0!=e.length){for(var n=e.substring(t.start2,t.start2+t.length1),r=0;e.indexOf(n)!=e.lastIndexOf(n)&&n.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)r+=this.Patch_Margin,n=e.substring(t.start2-r,t.start2+t.length1+r);r+=this.Patch_Margin;var i=e.substring(t.start2-r,t.start2);i&&t.diffs.unshift([DIFF_EQUAL,i]);var f=e.substring(t.start2+t.length1,t.start2+t.length1+r);f&&t.diffs.push([DIFF_EQUAL,f]),t.start1-=i.length,t.start2-=i.length,t.length1+=i.length+f.length,t.length2+=i.length+f.length}},diff_match_patch.prototype.patch_make=function(t,e,n){var r,i;if("string"==typeof t&&"string"==typeof e&&void 0===n)r=t,2<(i=this.diff_main(r,e,!0)).length&&(this.diff_cleanupSemantic(i),this.diff_cleanupEfficiency(i));else if(t&&"object"==typeof t&&void 0===e&&void 0===n)i=t,r=this.diff_text1(i);else if("string"==typeof t&&e&&"object"==typeof e&&void 0===n)r=t,i=e;else{if("string"!=typeof t||"string"!=typeof e||!n||"object"!=typeof n)throw new Error("Unknown call format to patch_make.");r=t,i=n}if(0===i.length)return[];for(var f=[],h=new diff_match_patch.patch_obj,a=0,s=0,o=0,c=r,l=r,g=0;g<i.length;g++){var u=i[g][0],_=i[g][1];switch(a||u===DIFF_EQUAL||(h.start1=s,h.start2=o),u){case DIFF_INSERT:h.diffs[a++]=i[g],h.length2+=_.length,l=l.substring(0,o)+_+l.substring(o);break;case DIFF_DELETE:h.length1+=_.length,h.diffs[a++]=i[g],l=l.substring(0,o)+l.substring(o+_.length);break;case DIFF_EQUAL:_.length<=2*this.Patch_Margin&&a&&i.length!=g+1?(h.diffs[a++]=i[g],h.length1+=_.length,h.length2+=_.length):_.length>=2*this.Patch_Margin&&a&&(this.patch_addContext_(h,c),f.push(h),h=new diff_match_patch.patch_obj,a=0,c=l,s=o)}u!==DIFF_INSERT&&(s+=_.length),u!==DIFF_DELETE&&(o+=_.length)}return a&&(this.patch_addContext_(h,c),f.push(h)),f},diff_match_patch.prototype.patch_deepCopy=function(t){for(var e=[],n=0;n<t.length;n++){var r=t[n],i=new diff_match_patch.patch_obj;i.diffs=[];for(var f=0;f<r.diffs.length;f++)i.diffs[f]=r.diffs[f].slice();i.start1=r.start1,i.start2=r.start2,i.length1=r.length1,i.length2=r.length2,e[n]=i}return e},diff_match_patch.prototype.patch_apply=function(t,e){if(0==t.length)return[e,[]];t=this.patch_deepCopy(t);var n=this.patch_addPadding(t);e=n+e+n,this.patch_splitMax(t);for(var r=0,i=[],f=0;f<t.length;f++){var h,a,s=t[f].start2+r,o=this.diff_text1(t[f].diffs),c=-1;if(o.length>this.Match_MaxBits?-1!=(h=this.match_main(e,o.substring(0,this.Match_MaxBits),s))&&(-1==(c=this.match_main(e,o.substring(o.length-this.Match_MaxBits),s+o.length-this.Match_MaxBits))||c<=h)&&(h=-1):h=this.match_main(e,o,s),-1==h)i[f]=!1,r-=t[f].length2-t[f].length1;else if(i[f]=!0,r=h-s,o==(a=-1==c?e.substring(h,h+o.length):e.substring(h,c+this.Match_MaxBits)))e=e.substring(0,h)+this.diff_text2(t[f].diffs)+e.substring(h+o.length);else{var l=this.diff_main(o,a,!1);if(o.length>this.Match_MaxBits&&this.diff_levenshtein(l)/o.length>this.Patch_DeleteThreshold)i[f]=!1;else{this.diff_cleanupSemanticLossless(l);for(var g,u=0,_=0;_<t[f].diffs.length;_++){var p=t[f].diffs[_];p[0]!==DIFF_EQUAL&&(g=this.diff_xIndex(l,u)),p[0]===DIFF_INSERT?e=e.substring(0,h+g)+p[1]+e.substring(h+g):p[0]===DIFF_DELETE&&(e=e.substring(0,h+g)+e.substring(h+this.diff_xIndex(l,u+p[1].length))),p[0]!==DIFF_DELETE&&(u+=p[1].length)}}}}return[e=e.substring(n.length,e.length-n.length),i]},diff_match_patch.prototype.patch_addPadding=function(t){for(var e=this.Patch_Margin,n="",r=1;r<=e;r++)n+=String.fromCharCode(r);for(r=0;r<t.length;r++)t[r].start1+=e,t[r].start2+=e;var i=t[0],f=i.diffs;if(0==f.length||f[0][0]!=DIFF_EQUAL)f.unshift([DIFF_EQUAL,n]),i.start1-=e,i.start2-=e,i.length1+=e,i.length2+=e;else if(e>f[0][1].length){var h=e-f[0][1].length;f[0][1]=n.substring(f[0][1].length)+f[0][1],i.start1-=h,i.start2-=h,i.length1+=h,i.length2+=h}if(0==(f=(i=t[t.length-1]).diffs).length||f[f.length-1][0]!=DIFF_EQUAL)f.push([DIFF_EQUAL,n]),i.length1+=e,i.length2+=e;else if(e>f[f.length-1][1].length){h=e-f[f.length-1][1].length;f[f.length-1][1]+=n.substring(0,h),i.length1+=h,i.length2+=h}return n},diff_match_patch.prototype.patch_splitMax=function(t){for(var e=this.Match_MaxBits,n=0;n<t.length;n++)if(!(t[n].length1<=e)){var r=t[n];t.splice(n--,1);for(var i=r.start1,f=r.start2,h="";0!==r.diffs.length;){var a=new diff_match_patch.patch_obj,s=!0;for(a.start1=i-h.length,a.start2=f-h.length,""!==h&&(a.length1=a.length2=h.length,a.diffs.push([DIFF_EQUAL,h]));0!==r.diffs.length&&a.length1<e-this.Patch_Margin;){var o=r.diffs[0][0],c=r.diffs[0][1];o===DIFF_INSERT?(a.length2+=c.length,f+=c.length,a.diffs.push(r.diffs.shift()),s=!1):o===DIFF_DELETE&&1==a.diffs.length&&a.diffs[0][0]==DIFF_EQUAL&&c.length>2*e?(a.length1+=c.length,i+=c.length,s=!1,a.diffs.push([o,c]),r.diffs.shift()):(c=c.substring(0,e-a.length1-this.Patch_Margin),a.length1+=c.length,i+=c.length,o===DIFF_EQUAL?(a.length2+=c.length,f+=c.length):s=!1,a.diffs.push([o,c]),c==r.diffs[0][1]?r.diffs.shift():r.diffs[0][1]=r.diffs[0][1].substring(c.length))}h=(h=this.diff_text2(a.diffs)).substring(h.length-this.Patch_Margin);var l=this.diff_text1(r.diffs).substring(0,this.Patch_Margin);""!==l&&(a.length1+=l.length,a.length2+=l.length,0!==a.diffs.length&&a.diffs[a.diffs.length-1][0]===DIFF_EQUAL?a.diffs[a.diffs.length-1][1]+=l:a.diffs.push([DIFF_EQUAL,l])),s||t.splice(++n,0,a)}}},diff_match_patch.prototype.patch_toText=function(t){for(var e=[],n=0;n<t.length;n++)e[n]=t[n];return e.join("")},diff_match_patch.prototype.patch_fromText=function(t){var e=[];if(!t)return e;for(var n=t.split("\n"),r=0,i=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;r<n.length;){var f=n[r].match(i);if(!f)throw new Error("Invalid patch string: "+n[r]);var h=new diff_match_patch.patch_obj;for(e.push(h),h.start1=parseInt(f[1],10),""===f[2]?(h.start1--,h.length1=1):"0"==f[2]?h.length1=0:(h.start1--,h.length1=parseInt(f[2],10)),h.start2=parseInt(f[3],10),""===f[4]?(h.start2--,h.length2=1):"0"==f[4]?h.length2=0:(h.start2--,h.length2=parseInt(f[4],10)),r++;r<n.length;){var a=n[r].charAt(0);try{var s=n[r].substring(1)}catch(t){throw new Error("Illegal escape in patch_fromText: "+s)}if("-"==a)h.diffs.push([DIFF_DELETE,s]);else if("+"==a)h.diffs.push([DIFF_INSERT,s]);else if(" "==a)h.diffs.push([DIFF_EQUAL,s]);else{if("@"==a)break;if(""!==a)throw new Error('Invalid patch mode "'+a+'" in: '+s)}r++}}return e},diff_match_patch.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0},diff_match_patch.patch_obj.prototype.toString=function(){for(var t,e=["@@ -"+(0===this.length1?this.start1+",0":1==this.length1?this.start1+1:this.start1+1+","+this.length1)+" +"+(0===this.length2?this.start2+",0":1==this.length2?this.start2+1:this.start2+1+","+this.length2)+" @@\n"],n=0;n<this.diffs.length;n++){switch(this.diffs[n][0]){case DIFF_INSERT:t="+";break;case DIFF_DELETE:t="-";break;case DIFF_EQUAL:t=" "}e[n+1]=t+encodeURI(this.diffs[n][1])+"\n"}return e.join("").replace(/%20/g," ")},"undefined"!=typeof module&&(module.exports=diff_match_patch,module.exports.diff_match_patch=diff_match_patch,module.exports.DIFF_DELETE=DIFF_DELETE,module.exports.DIFF_INSERT=DIFF_INSERT,module.exports.DIFF_EQUAL=DIFF_EQUAL),function(t,e){"function"==typeof define&&define.amd?define([],e):"object"===("undefined"==typeof module?"undefined":_typeof(module))&&module.exports?module.exports=e():t.gitfred=e()}("undefined"!=typeof self?self:this,function(){return function(){var t,n=[],o={ON_CHANGE:"s",ON_ADD:"a",ON_COMMIT:"c",ON_CHECKOUT:"co"},s={i:0,commits:{},stage:[],working:[],head:null},c=function(){return t||(t=new diff_match_patch)},l=function(t){return JSON.parse(JSON.stringify(t))},g=function(t){return JSON.stringify(t)},u=function(t){return JSON.parse(t)},i=function(){var e=o.log(),t=Object.keys(e),n=t.find(function(t){return null===e[t].parent&&e[t].files.match(/^\[/)});return n||(n=t.shift()),n},_=function(){var t,e,h=o.log(),a={},s=(t=o.log(),(e=i())?t[e]:null);return Object.keys(h).forEach(function t(e){if(a[e])return a[e];if(!h[e])return a[e]=s.files;if(null!==h[e].parent){var n=t(h[e].parent);return void 0===_typeof(n)&&(_readOnlyError("source"),n=s.files),a[e]=(r=n,i=h[e].files,(f=c()).patch_apply(f.patch_fromText(i),r).shift())}var r,i,f;a[e]=h[e].files}),a},r=function(t){var e=_();if(!e[t])throw new Error("There is no commit with hash "+t);return e[t]},f=function(t,e){var n=c(),r=n.diff_main(t,e,!0);return 2<r.length&&n.diff_cleanupSemantic(r),n.patch_toText(n.patch_make(t,e,r))},h=function(t,e){return decodeURI(f(r(e),t))},p=function(e){return n.forEach(function(t){return t(e)})},e=function(i){return{length:function(){return i.length},save:function(t,e){!function(t,e){if(!t)throw new Error("`filepath` is required.");if(!e)throw new Error("`file` object is required.");if("string"!=typeof t)throw new Error("`filepath` must be a string.");if("object"!==_typeof(e))throw new Error("`file` must be an object.")}(t,e);for(var n=0,r=this.length();n<r;){if(i[n][0]===t)return i[n][1]=Object.assign({},i[n][1],e);n++}i.push([t,e])},saveAll:function(t){for(var e=0,n=this.length();e<n;)i[e][1]=Object.assign({},i[e][1],t),e++},get:function(t){for(var e=0,n=this.length();e<n;){if(i[e][0]===t)return i[e][1];e++}},del:function(t){for(var e=0,n=this.length();e<n;){if(i[e][0]===t||i[e][1]===t)return void i.splice(e,1);e++}throw new Error("There is no file with path ".concat(t,"."))},getKey:function(t){for(var e=0,n=this.length();e<n;){if(i[e][1]===t)return i[e][0];e++}},rename:function(t,e){for(var n=0,r=this.length();n<r;){if(i[n][0]===t)return i[n][0]=e;n++}throw new Error("There is no file with path ".concat(key,"."))},clone:function(){return l(i)},replaceStorage:function(t){i=t},toObject:function(){return i.reduce(function(t,e){return t[e[0]]=e[1],t},{})}}},a=function(t){var r=c().patch_fromText(t);return r.reduce(function(t,e,n){return e.diffs&&(t+=e.diffs.reduce(function(t,e){var n=E(decodeURI(e[1])).replace(/\n/g,"<br />");return 1===e[0]&&(t+="<ins>"+n+"</ins>"),-1===e[0]&&(t+="<del>"+n+"</del>"),0===e[0]&&(t+="<span>"+n+"</span>"),t},""),n<r.length-1&&(t+="<hr />")),t},"")},d=function(){var n=s.commits,t=Object.keys(n),r=i();r&&t.forEach(function(t){var e=n[t];null===e.parent&&t!==r&&(e.parent=r),null!==e.parent&&void 0===n[e.parent]&&(e.parent=r)})},m=function(t,e){return decodeURI(f(g(t),g(e)))},E=function(t){var e={"&":"&","<":"<",">":">"};return t.replace(/[&<>]/g,function(t){return e[t]||t})},F=e(s.working),v=e(s.stage);return o.save=function(e,t){return"object"===_typeof(e)&&void 0===t?(Object.keys(e).forEach(function(t){return F.save(t,e[t])}),p(o.ON_CHANGE),o):(F.save(e,t),p(o.ON_CHANGE),t)},o.saveAll=function(t){return F.saveAll(t),p(o.ON_CHANGE),o},o.discard=function(){return this.checkout(void 0,!0),o},o.del=function(t){return F.del(t),p(o.ON_CHANGE),o},o.rename=function(t,e){return F.rename(t,e),p(o.ON_CHANGE),s.working},o.get=function(t){return F.get(t)},o.exists=function(t){return!!F.get(t)},o.getAll=function(){return s.working},o.getFilepath=function(t){return F.getKey(t)},o.add=function(t){if(void 0===t)v.replaceStorage(s.stage=F.clone());else{var e=F.get(t);if(!e)throw new Error("There is no '".concat(t,"' in the working directory."));v.save(t,l(e))}return p(o.ON_ADD),o},o.commit=function(t,e){if(0===v.length())throw new Error("NOTHING_TO_COMMIT");var n="_"+ ++s.i,r=this.head(),i=null!==r?h(g(s.stage),r):g(s.stage);return s.commits[n]={message:t,parent:r,files:i},e&&(s.commits[n].meta=e),s.head=n,v.replaceStorage(s.stage=[]),p(o.ON_COMMIT),n},o.amend=function(n,r){if(void 0===n&&void 0===r&&null!==this.head)return this.amend(this.head(),{files:F.toObject()});var i=l(this.log()),t=Object.keys(i);if(0!==t.length){var e=_();return t.forEach(function(t){return i[t].files=u(e[t])}),t.forEach(function(t){var e=i[t];n===t&&(e.message=r.message?r.message:e.message,e.meta=r.meta?r.meta:e.meta,r.files&&(e.files=Object.keys(r.files).reduce(function(t,e){return t.push([e,r.files[e]]),t},[])))}),Object.keys(i).forEach(function(t){var e=i[t];null===e.parent?e._files=g(e.files):e._files=m(i[e.parent].files,e.files)}),Object.keys(i).forEach(function(t){i[t].files=i[t]._files,delete i[t]._files}),s.commits=i,p(o.ON_COMMIT),i[n]}},o.show=function(t){t=t||this.head();var e=o.log()[t];if(!e)throw new Error('There is no commit with hash "'.concat(t,'".'));var n=l(e);return n.files=u(r(t)),n},o.checkout=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(!e&&0<v.length())throw new Error("UNCOMMITED_CHANGES");if(!e&&""!==h(g(s.working),this.head()))throw new Error("UNSTAGED_FILES");return void 0===t&&(t=this.head()),s.head=t,F.replaceStorage(s.working=u(r(t))),p(o.ON_CHECKOUT),o},o.staged=function(){return v},o.head=function(){return s.head},o.log=function(){return s.commits},o.logAsTree=function(){var r=l(s.commits);return function t(e){if(!e)return null;var n=r[e];return delete r[e],n.hash=e,n.derivatives=Object.keys(r).filter(function(t){return r[t].parent===e}).map(t),n}(Object.keys(r).find(function(t){return null===r[t].parent}))},o.rollOut=function(){var n=this.log(),r=_();return Object.keys(n).reduce(function(t,e){return t[e]={},t[e].message=n[e].message,t[e].parent=n[e].parent,n[e].meta&&(t[e].meta=n[e].meta),t[e].files=r[e]?u(r[e]):"",t},{})},o.adios=function(n){var r=l(this.log()),t=r[n],e=Object.keys(r);if(0!==e.length){var i,f,h=r[n].parent,a=_();return e.forEach(function(t){return r[t].files=u(a[t])}),delete r[n],(e=Object.keys(r)).forEach(function(t){var e=r[t];e.parent===n&&null===(e.parent=h)&&(i?e.parent=i:i=t),null===e.parent?e._files=g(e.files):e._files=m(r[e.parent].files,e.files)}),e.forEach(function(t){r[t].files=r[t]._files,delete r[t]._files}),this.head()===n&&(f=r,0===Object.keys(f).length&&f.constructor===Object?s.head=null:this.checkout(null===h?Object.keys(r).shift():h)),s.commits=r,p(o.ON_COMMIT),d(),t}},o.diff=function(){var t=h(g(s.working),this.head());return""===t?null:{text:t,html:a(t)}},o.export=function(){return l(s)},o.listen=function(t){n.push(t)},o.import=function(t){return(s=t).head||(s.head=null),s.i||(s.i=s.head?parseInt(s.head.replace("_","")):0),s.stage||(s.stage=[]),s.working||(s.working=[],this.checkout(this.head(),!0)),s.commits||(s.commits={}),F.replaceStorage(s.working),v.replaceStorage(s.stage),d(),o},o.commitDiffToHTML=function(t){if(!s.commits[t])throw new Error("There is no commit with hash ".concat(t,"."));return-1===s.commits[t].files.indexOf("@@")?"":a(s.commits[t].files)},o.calcStrDiff=function(t,e){var n=f(t,e);return""===n?null:{text:n,html:a(n)}},o}});