!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.JsDiff=b():a.JsDiff=b()}(this,function(){
return function(a){
function b(d){
if(c[d])
return c[d].exports;
var e=c[d]={
exports:{},
id:d,
loaded:!1};
return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}
var c={};
return b.m=a,b.c=c,b.p="",b(0)}([
function(a,b,c){
"use strict";
function d(a){return a&&a.__esModule?a:{"default":a}}b.__esModule=!0,b.canonicalize=b.convertChangesToXML=b.convertChangesToDMP=b.parsePatch=b.applyPatches=b.applyPatch=b.createPatch=b.createTwoFilesPatch=b.structuredPatch=b.diffArrays=b.diffJson=b.diffCss=b.diffSentences=b.diffTrimmedLines=b.diffLines=b.diffWordsWithSpace=b.diffWords=b.diffChars=b.Diff=void 0;
vare=c(1),f=d(e),g=c(2),h=c(3),i=c(5),j=c(6),k=c(7),l=c(8),m=c(9),n=c(10),o=c(11),p=c(13),q=c(14),r=c(15);b.Diff=f["default"],
b.diffChars=g.diffChars,
b.diffWords=h.diffWords,
b.diffWordsWithSpace=h.diffWordsWithSpace,
b.diffLines=i.diffLines,
b.diffTrimmedLines=i.diffTrimmedLines,
b.diffSentences=j.diffSentences,
b.diffCss=k.diffCss,
b.diffJson=l.diffJson,
b.diffArrays=m.diffArrays,
b.structuredPatch=p.structuredPatch,
b.createTwoFilesPatch=p.createTwoFilesPatch,
b.createPatch=p.createPatch,
b.applyPatch=n.applyPatch,
b.applyPatches=n.applyPatches,
b.parsePatch=o.parsePatch,
b.convertChangesToDMP=q.convertChangesToDMP,
b.convertChangesToXML=r.convertChangesToXML,
b.canonicalize=l.canonicalize},
function(a,b){
"use strict";function c(){}function d(a,b,c,d,e){for(var f=0,g=b.length,h=0,i=0;f<g;f++){var j=b[f];if(j.removed){
if(j.value=a.join(d.slice(i,i+j.count)),i+=j.count,f&&b[f-1].added){var k=b[f-1];b[f-1]=b[f],b[f]=k}}else{if(!j.added&&e){var l=c.slice(h,h+j.count);l=l.map(function(a,b){var c=d[i+b];return c.length>a.length?c:a}),j.value=a.join(l)}else j.value=a.join(c.slice(h,h+j.count));h+=j.count,
j.added||(i+=j.count)}}
var m=b[g-1];return g>1&&(m.added||m.removed)&&a.equals("",m.value)&&(b[g-2].value+=m.value,b.pop()),b}function e(a){return{newPos:a.newPos,components:a.components.slice(0)}}b.__esModule=!0,b["default"]=c,c.prototype={
diff:function(a,b){function c(a){return h?(setTimeout(function(){h(void 0,a)},0),!0):a}
function f(){for(var f=-1*l;f<=l;f+=2){var g=void 0,h=n[f-1],m=n[f+1],o=(m?m.newPos:0)-f;h&&(
n[f-1]=void 0);var p=h&&h.newPos+1<j,q=m&&0<=o&&o<k;if(p||q){
if(
!p||q&&h.newPos<m.newPos?(g=e(m),i.pushComponent(g.components,void 0,!0)):(g=h,
g.newPos++,i.pushComponent(g.components,!0,void 0)),o=i.extractCommon(g,b,a,f),g.newPos+1>=j&&o+1>=k)return c(d(i,g.components,b,a,i.useLongestToken));
n[f]=g}else
n[f]=void 0}l++}
varg=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],h=g.callback;"function"==typeof g&&(h=g,g={}),this.options=g;var i=this;
a=this.castInput(a),b=this.castInput(b),a=this.removeEmpty(this.tokenize(a)),b=this.removeEmpty(this.tokenize(b));var j=b.length,k=a.length,l=1,m=j+k,n=[{newPos:-1,components:[]}],o=this.extractCommon(n[0],b,a,0);if(n[0].newPos+1>=j&&o+1>=k)
return c([{value:this.join(b),count:b.length}]);
if(h)!function q(){setTimeout(function(){
return l>m?h():void(f()||q())},0)}();else for(;l<=m;){var p=f();if(p)return p}},
pushComponent:function(a,b,c){var d=a[a.length-1];d&&d.added===b&&d.removed===c?
a[a.length-1]={count:d.count+1,added:b,removed:c}:a.push({count:1,added:b,removed:c})},
extractCommon:function(a,b,c,d){for(var e=b.length,f=c.length,g=a.newPos,h=g-d,i=0;g+1<e&&h+1<f&&this.equals(b[g+1],c[h+1]);)g++,h++,i++;return i&&a.components.push({count:i}),a.newPos=g,h},
equals:function(a,b){return a===b},
removeEmpty:function(a){for(var b=[],c=0;c<a.length;c++)a[c]&&b.push(a[c]);return b},
castInput:function(a){return a},
tokenize:function(a){return a.split("")},
join:function(a){return a.join("")}}},
function(a,b,c){
"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){return h.diff(a,b,c)}b.__esModule=!0,b.characterDiff=void 0,b.diffChars=e;varf=c(1),g=d(f),h=b.characterDiff=newg["default"]},
function(a,b,c){
"use strict";
function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){var d=(0,i.generateOptions)(c,{ignoreWhitespace:!0});return l.diff(a,b,d)}function f(a,b,c){return l.diff(a,b,c)}b.__esModule=!0,b.wordDiff=void 0,b.diffWords=e,
b.diffWordsWithSpace=f;varg=c(1),h=d(g),i=c(4),j=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,k=/\S/,l=b.wordDiff=newh["default"];l.equals=function(a,b){return a===b||this.options.ignoreWhitespace&&!k.test(a)&&!k.test(b)},l.tokenize=function(a){
for(var b=a.split(/(\s+|\b)/),c=0;c<b.length-1;c++)
!b[c+1]&&b[c+2]&&j.test(b[c])&&j.test(b[c+2])&&(b[c]+=b[c+2],b.splice(c+1,2),c--);return b}},
function(a,b){
"use strict";function c(a,b){if("function"==typeof a)b.callback=a;else if(a)for(var c in a)
a.hasOwnProperty(c)&&(b[c]=a[c]);return b}b.__esModule=!0,b.generateOptions=c},
function(a,b,c){
"use strict";
function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){return j.diff(a,b,c)}function f(a,b,c){var d=(0,i.generateOptions)(c,{ignoreWhitespace:!0});return j.diff(a,b,d)}b.__esModule=!0,b.lineDiff=void 0,b.diffLines=e,
b.diffTrimmedLines=f;varg=c(1),h=d(g),i=c(4),j=b.lineDiff=newh["default"];j.tokenize=function(a){var b=[],c=a.split(/(\n|\r\n)/);
c[c.length-1]||c.pop();
for(var d=0;d<c.length;d++){var e=c[d];d%2&&!this.options.newlineIsToken?b[b.length-1]+=e:(this.options.ignoreWhitespace&&(e=e.trim()),b.push(e))}return b}},
function(a,b,c){
"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){return h.diff(a,b,c)}b.__esModule=!0,b.sentenceDiff=void 0,b.diffSentences=e;varf=c(1),g=d(f),h=b.sentenceDiff=newg["default"];h.tokenize=function(a){return a.split(/(\S.+?[.!?])(?=\s+|$)/)}},
function(a,b,c){
"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){return h.diff(a,b,c)}b.__esModule=!0,b.cssDiff=void 0,b.diffCss=e;varf=c(1),g=d(f),h=b.cssDiff=newg["default"];h.tokenize=function(a){return a.split(/([{}:;,]|\s+)/)}},
function(a,b,c){
"use strict";
function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){return l.diff(a,b,c)}
function f(a,b,c){b=b||[],c=c||[];var d=void 0;for(d=0;d<b.length;d+=1)if(b[d]===a)return c[d];var e=void 0;if("[object Array]"===k.call(a)){for(b.push(a),e=new Array(a.length),c.push(e),d=0;d<a.length;d+=1)e[d]=f(a[d],b,c);return b.pop(),c.pop(),e}if(a&&a.toJSON&&(a=a.toJSON()),"object"===("undefined"==typeofa?"undefined":g(a))&&null!==a){b.push(a),e={},c.push(e);var h=[],i=void 0;for(i in a)
a.hasOwnProperty(i)&&h.push(i);for(h.sort(),d=0;d<h.length;d+=1)i=h[d],e[i]=f(a[i],b,c);b.pop(),c.pop()}else e=a;return e}b.__esModule=!0,b.jsonDiff=void 0;var g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol?"symbol":typeof a};b.diffJson=e,
b.canonicalize=f;varh=c(1),i=d(h),j=c(5),k=Object.prototype.toString,l=b.jsonDiff=newi["default"];
l.useLongestToken=!0,l.tokenize=j.lineDiff.tokenize,l.castInput=function(a){
varb=this.options.undefinedReplacement;return"string"==typeof a?a:JSON.stringify(f(a),function(a,c){return"undefined"==typeof c?b:c}," ")},l.equals=function(a,b){
return i["default"].prototype.equals(a.replace(/,([\r\n])/g,"$1"),b.replace(/,([\r\n])/g,"$1"))}},
function(a,b,c){
"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){return h.diff(a,b,c)}b.__esModule=!0,b.arrayDiff=void 0,b.diffArrays=e;varf=c(1),g=d(f),h=b.arrayDiff=newg["default"];h.tokenize=h.join=function(a){return a.slice()}},
function(a,b,c){
"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}
function e(a,b){
function c(a,b){for(var c=0;c<a.lines.length;c++){var d=a.lines[c],f=d[0],g=d.substr(1);if(" "===f||"-"===f){
if(!j(b+1,e[b],f,g)&&(k++,k>l))return!1;b++}}return!0}
vard=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];if("string"==typeof b&&(b=(0,g.parsePatch)(b)),Array.isArray(b)){if(b.length>1)throw new Error("applyPatch only works with a single input.");b=b[0]}
for(var e=a.split(/\r\n|[\n\v\f\r\x85]/),f=a.match(/\r\n|[\n\v\f\r\x85]/g)||[],h=b.hunks,j=d.compareLine||function(a,b,c,d){
return b===d},k=0,l=d.fuzzFactor||0,m=0,n=0,o=void 0,p=void 0,q=0;q<h.length;q++){for(var r=h[q],s=e.length-r.oldLines,t=0,u=n+r.oldStart-1,v=(0,i["default"])(u,m,s);void 0!==t;t=v())if(c(r,u+t)){r.offset=n+=t;break}if(void 0===t)return!1;
m=r.offset+r.oldStart+r.oldLines}
for(var w=0;w<h.length;w++){var x=h[w],y=x.offset+x.newStart-1;0==x.newLines&&y++;for(var z=0;z<x.lines.length;z++){var A=x.lines[z],B=A[0],C=A.substr(1),D=x.linedelimiters[z];if(" "===B)y++;else if("-"===B)e.splice(y,1),f.splice(y,1);else if("+"===B)e.splice(y,0,C),f.splice(y,0,D),y++;else if("\\"===B){var E=x.lines[z-1]?x.lines[z-1][0]:null;"+"===E?o=!0:"-"===E&&(p=!0)}}}
if(o)for(;!e[e.length-1];)e.pop(),f.pop();else p&&(e.push(""),f.push("\n"));for(var F=0;F<e.length-1;F++)e[F]=e[F]+f[F];return e.join("")}
function f(a,b){function c(){var f=a[d++];return f?void b.loadFile(f,function(a,d){if(a)return b.complete(a);var g=e(d,f,b);b.patched(f,g,function(a){return a?b.complete(a):void c()})}):b.complete()}"string"==typeof a&&(a=(0,g.parsePatch)(a));var d=0;c()}b.__esModule=!0,b.applyPatch=e,
b.applyPatches=f;varg=c(11),h=c(12),i=d(h)},
function(a,b){
"use strict";function c(a){function b(){var a={};
for(h.push(a);i<f.length;){var b=f[i];
if(/^(\-\-\-|\+\+\+|@@)\s/.test(b))break;
var g=/^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(b);g&&(a.index=g[1]),i++}for(
c(a),c(a),
a.hunks=[];i<f.length;){var j=f[i];if(/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(j))break;if(/^@@/.test(j))a.hunks.push(d());else{if(j&&e.strict)
throw new Error("Unknown line "+(i+1)+" "+JSON.stringify(j));i++}}}
function c(a){var b=/^(---|\+\+\+)\s+([\S ]*)(?:\t(.*?)\s*)?$/,c=b.exec(f[i]);if(c){var d="---"===c[1]?"old":"new";a[d+"FileName"]=c[2],a[d+"Header"]=c[3],i++}}
function d(){for(var a=i,b=f[i++],c=b.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/),d={oldStart:+c[1],oldLines:+c[2]||1,newStart:+c[3],newLines:+c[4]||1,lines:[],linedelimiters:[]},h=0,j=0;i<f.length&&!(0===f[i].indexOf("--- ")&&i+2<f.length&&0===f[i+1].indexOf("+++ ")&&0===f[i+2].indexOf("@@"));i++){var k=f[i][0];if("+"!==k&&"-"!==k&&" "!==k&&"\\"!==k)break;d.lines.push(f[i]),d.linedelimiters.push(g[i]||"\n"),"+"===k?h++:"-"===k?j++:" "===k&&(h++,j++)}
if(
h||1!==d.newLines||(d.newLines=0),j||1!==d.oldLines||(d.oldLines=0),e.strict){if(h!==d.newLines)throw new Error("Added line count did not match for hunk at line "+(a+1));if(j!==d.oldLines)throw new Error("Removed line count did not match for hunk at line "+(a+1))}return d}for(
vare=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],f=a.split(/\r\n|[\n\v\f\r\x85]/),g=a.match(/\r\n|[\n\v\f\r\x85]/g)||[],h=[],i=0;i<f.length;)b();return h}b.__esModule=!0,b.parsePatch=c},
function(a,b){
"use strict";b.__esModule=!0,b["default"]=function(a,b,c){var d=!0,e=!1,f=!1,g=1;return function h(){if(d&&!f){
if(e?g++:d=!1,a+g<=c)return g;f=!0}if(!e)
return f||(d=!0),b<=a-g?-g++:(e=!0,h())}}},
function(a,b,c){
"use strict";
function d(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b<a.length;b++)c[b]=a[b];return c}return Array.from(a)}
function e(a,b,c,e,f,g,i){
function j(a){return a.map(function(a){return" "+a})}i||(i={}),"undefined"==typeof i.context&&(i.context=4);var k=(0,h.diffLines)(c,e,i);k.push({value:"",lines:[]});for(var l=[],m=0,n=0,o=[],p=1,q=1,r=function(a){var b=k[a],f=b.lines||b.value.replace(/\n$/,"").split("\n");if(b.lines=f,b.added||b.removed){
var g;
if(!m){var h=k[a-1];m=p,n=q,h&&(o=i.context>0?j(h.lines.slice(-i.context)):[],m-=o.length,n-=o.length)}
(g=o).push.apply(g,d(f.map(function(a){return(b.added?"+":"-")+a}))),
b.added?q+=f.length:p+=f.length}else{
if(m)
if(f.length<=2*i.context&&a<k.length-2){
var r;
(r=o).push.apply(r,d(j(f)))}else{
var s,t=Math.min(f.length,i.context);
(s=o).push.apply(s,d(j(f.slice(0,t))));var u={oldStart:m,oldLines:p-m+t,newStart:n,newLines:q-n+t,lines:o};if(a>=k.length-2&&f.length<=i.context){
var v=/\n$/.test(c),w=/\n$/.test(e);0!=f.length||v?v&&w||o.push("\\ No newline at end of file"):
o.splice(u.oldLines,0,"\\ No newline at end of file")}l.push(u),m=0,n=0,o=[]}p+=f.length,q+=f.length}},s=0;s<k.length;s++)
r(s);return{oldFileName:a,newFileName:b,oldHeader:f,newHeader:g,hunks:l}}function f(a,b,c,d,f,g,h){var i=e(a,b,c,d,f,g,h),j=[];a==b&&j.push("Index: "+a),j.push("==================================================================="),j.push("--- "+i.oldFileName+("undefined"==typeof i.oldHeader?"":"\t"+i.oldHeader)),j.push("+++ "+i.newFileName+("undefined"==typeof i.newHeader?"":"\t"+i.newHeader));for(var k=0;k<i.hunks.length;k++){var l=i.hunks[k];j.push("@@ -"+l.oldStart+","+l.oldLines+" +"+l.newStart+","+l.newLines+" @@"),j.push.apply(j,l.lines)}return j.join("\n")+"\n"}function g(a,b,c,d,e,g){return f(a,a,b,c,d,e,g)}b.__esModule=!0,b.structuredPatch=e,
b.createTwoFilesPatch=f,
b.createPatch=g;varh=c(5)},
function(a,b){
"use strict";
function c(a){for(var b=[],c=void 0,d=void 0,e=0;e<a.length;e++)c=a[e],d=c.added?1:c.removed?-1:0,b.push([d,c.value]);return b}b.__esModule=!0,b.convertChangesToDMP=c},
function(a,b){
"use strict";function c(a){for(var b=[],c=0;c<a.length;c++){var e=a[c];e.added?b.push("<ins>"):e.removed&&b.push("<del>"),b.push(d(e.value)),e.added?b.push("</ins>"):e.removed&&b.push("</del>")}return b.join("")}function d(a){var b=a;return b=b.replace(/&/g,"&"),b=b.replace(/</g,"<"),b=b.replace(/>/g,">"),b=b.replace(/"/g,""")}b.__esModule=!0,b.convertChangesToXML=c}])});