functiondiff_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}window.rangy=function(){functiont(t,e){varn=typeoft[e];returnn==h||!(n!=u||!t[e])||"unknown"==n}functione(t,e){return!(typeoft[e]!=u||!t[e])}functionn(t,e){returntypeoft[e]!=f}functionr(t){returnfunction(e,n){for(varr=n.length;r--;)if(!t(e,n[r]))return!1;return!0}}functioni(t){returnt&&v(t,m)&&x(t,g)}functiona(t){window.alert("Rangy not supported in your browser. Reason: "+t),b.initialized=!0,b.supported=!1}functiono(t){vare="Rangy warning: "+t;b.config.alertOnWarn?window.alert(e):typeofwindow.console!=f&&typeofwindow.console.log!=f&&window.console.log(e)}functions(){if(!b.initialized){varn,r=!1,o=!1;t(document,"createRange")&&(n=document.createRange(),v(n,p)&&x(n,d)&&(r=!0),n.detach());vars=e(document,"body")?document.body:document.getElementsByTagName("body")[0];s&&t(s,"createTextRange")&&(n=s.createTextRange(),i(n)&&(o=!0)),r||o||a("Neither Range nor TextRange are implemented"),b.initialized=!0,b.features={implementsDomRange:r,implementsTextRange:o};for(varl=_.concat(w),c=0,u=l.length;u>c;++c)try{l[c](b)}catch(h){e(window,"console")&&t(window.console,"log")&&window.console.log("Init listener threw an exception. Continuing.",h)}}}functionl(t){t=t||window,s();for(vare=0,n=S.length;n>e;++e)S[e](t)}functionc(t){this.name=t,this.initialized=!1,this.supported=!1}varu="object",h="function",f="undefined",d=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer","START_TO_START","START_TO_END","END_TO_START","END_TO_END"],p=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],g=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],m=["collapse","compareEndPoints","duplicate","getBookmark","moveToBookmark","moveToElementText","parentElement","pasteHTML","select","setEndPoint","getBoundingClientRect"],v=r(t),y=r(e),x=r(n),b={version:"1.2.3",initialized:!1,supported:!0,util:{isHostMethod:t,isHostObject:e,isHostProperty:n,areHostMethods:v,areHostObjects:y,areHostProperties:x,isTextRange:i},features:{},modules:{},config:{alertOnWarn:!1,preferTextRange:!1}};b.fail=a,b.warn=o,{}.hasOwnProperty?b.util.extend=function(t,e){for(varnine)e.hasOwnProperty(n)&&(t[n]=e[n])}:a("hasOwnProperty not supported");varw=[],_=[];b.init=s,b.addInitListener=function(t){b.initialized?t(b):w.push(t)};varS=[];b.addCreateMissingNativeApiListener=function(t){S.push(t)},b.createMissingNativeApi=l,c.prototype.fail=function(t){throwthis.initialized=!0,this.supported=!1,newError("Module '"+this.name+"' failed to load: "+t)},c.prototype.warn=function(t){b.warn("Module "+this.name+": "+t)},c.prototype.createError=function(t){returnnewError("Error in Rangy "+this.name+" module: "+t)},b.createModule=function(t,e){varn=newc(t);b.modules[t]=n,_.push(function(t){e(t,n),n.initialized=!0,n.supported=!0})},b.requireModules=function(t){for(vare,n,r=0,i=t.length;i>r;++r){if(n=t[r],e=b.modules[n],!(e&&einstanceofc))thrownewError("Module '"+n+"' not found");if(!e.supported)thrownewError("Module '"+n+"' not supported")}};varC=!1,E=function(){C||(C=!0,b.initialized||s())};returntypeofwindow==f?voida("No window found"):typeofdocument==f?voida("No document found"):(t(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",E,!1),t(window,"addEventListener")?window.addEventListener("load",E,!1):t(window,"attachEvent")?window.attachEvent("onload",E):a("Window does not have required addEventListener or attachEvent method"),b)}(),rangy.createModule("DomUtil",function(t,e){functionn(t){vare;returntypeoft.namespaceURI==E||null===(e=t.namespaceURI)||"http://www.w3.org/1999/xhtml"==e}functionr(t){vare=t.parentNode;return1==e.nodeType?e:null}funct
else{varn=e.docSelection.createRange();if(u(n))h(e,n);else{e.rangeCount=n.length;for(varr,a=_.getDocument(n.item(0)),s=0;s<e.rangeCount;++s)r=t.createRange(a),r.selectNode(n.item(s)),e._ranges.push(r);e.isCollapsed=1==e.rangeCount&&e._ranges[0].collapsed,i(e,e._ranges[e.rangeCount-1],!1)}}}functiond(t,e){for(varn=t.docSelection.createRange(),r=c(e),i=_.getDocument(n.item(0)),a=_.getBody(i).createControlRange(),o=0,s=n.length;s>o;++o)a.add(n.item(o));try{a.add(r)}catch(l){thrownewError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}a.select(),f(t)}functionp(t,e,n){this.nativeSelection=t,this.docSelection=e,this._ranges=[],this.win=n,this.refresh()}functiong(t,e){for(varn,r=_.getDocument(e[0].startContainer),i=_.getBody(r).createControlRange(),a=0;rangeCount>a;++a){n=c(e[a]);try{i.add(n)}catch(o){thrownewError("setRanges(): Element within the one of the specified Ranges could not be added to control selection (does it have layout?)")}}i.select(),f(t)}functionm(t,e){if(t.anchorNode&&_.getDocument(t.anchorNode)!==_.getDocument(e))thrownewk("WRONG_DOCUMENT_ERR")}functionv(t){vare=[],n=newT(t.anchorNode,t.anchorOffset),r=newT(t.focusNode,t.focusOffset),i="function"==typeoft.getName?t.getName():"Selection";if("undefined"!=typeoft.rangeCount)for(vara=0,o=t.rangeCount;o>a;++a)e[a]=C.inspect(t.getRangeAt(a));return"["+i+"(Ranges: "+e.join(", ")+")(anchor: "+n.inspect()+", focus: "+r.inspect()+"]"}t.requireModules(["DomUtil","DomRange","WrappedRange"]),t.config.checkSelectionRanges=!0;vary,x,b="boolean",w="_rangySelection",_=t.dom,S=t.util,C=t.DomRange,E=t.WrappedRange,k=t.DOMException,T=_.DomPosition,I="Control",N=t.util.isHostMethod(window,"getSelection"),R=t.util.isHostObject(document,"selection"),A=R&&(!N||t.config.preferTextRange);A?(y=r,t.isSelectionValid=function(t){vare=(t||window).document,n=e.selection;return"None"!=n.type||_.getDocument(n.createRange().parentElement())==e}):N?(y=n,t.isSelectionValid=function(){return!0}):e.fail("Neither document.selection or window.getSelection() detected."),t.getNativeSelection=y;varM=y(),L=t.createNativeRange(document),O=_.getBody(document),D=S.areHostObjects(M,["anchorNode","focusNode"]&&S.areHostProperties(M,["anchorOffset","focusOffset"]));t.features.selectionHasAnchorAndFocus=D;varF=S.isHostMethod(M,"extend");t.features.selectionHasExtend=F;varP="number"==typeofM.rangeCount;t.features.selectionHasRangeCount=P;varB=!1,j=!0;S.areHostMethods(M,["addRange","getRangeAt","removeAllRanges"])&&"number"==typeofM.rangeCount&&t.features.implementsDomRange&&!function(){vart=document.createElement("iframe");t.frameBorder=0,t.style.position="absolute",t.style.left="-10000px",O.appendChild(t);vare=_.getIframeDocument(t);e.open(),e.write("<html><head></head><body>12</body></html>"),e.close();varn=_.getIframeWindow(t).getSelection(),r=e.documentElement,i=r.lastChild,a=i.firstChild,o=e.createRange();o.setStart(a,1),o.collapse(!0),n.addRange(o),j=1==n.rangeCount,n.removeAllRanges();vars=o.cloneRange();o.setStart(a,0),s.setEnd(a,2),n.addRange(o),n.addRange(s),B=2==n.rangeCount,o.detach(),s.detach(),O.removeChild(t)}(),t.features.selectionSupportsMultipleRanges=B,t.features.collapsedNonEditableSelectionsSupported=j;var$,H=!1;O&&S.isHostMethod(O,"createControlRange")&&($=O.createControlRange(),S.areHostProperties($,["item","add"])&&(H=!0)),t.features.implementsControlRange=H,x=D?function(t){returnt.anchorNode===t.focusNode&&t.anchorOffset===t.focusOffset}:function(t){returnt.rangeCount?t.getRangeAt(t.rangeCount-1).collapsed:!1};varU;S.isHostMethod(M,"getRangeAt")?U=function(t,e){try{returnt.getRangeAt(e)}catch(n){returnnull}}:D&&(U=function(e){varn=_.getDocument(e.anchorNode),r=t.createRange(n);returnr.setStart(e.anchorNode,e.anchorOffset),r.setEnd(e.focusNode,e.focusOffset),r.collapsed!==this.isCollapsed&&(r.setStart(e.focusNode,e.focusOffset),r.setEnd(e.anchorNode,e.anchorOffset)),r}),t.getSelection=function(t){t=t||window;vare=t[w],n=y(t),i=R?r(t):null;returne?(e.nativeSelection=n,e.docSelect
vari=b.exec.call(/\/([a-z]*)$/i,String(t))[1];returnr=r||{},r.add&&(i=n(i+r.add)),r.remove&&(i=b.replace.call(i,newRegExp("["+r.remove+"]+","g"),"")),t=e(newRegExp(t.source,i),a(t)?t[y].captureNames.slice(0):null,r.addProto)}functioni(){return{captureNames:null}}functiona(t){return!(!t[y]||!t[y].captureNames)}functiono(t,e){if(Array.prototype.indexOf)returnt.indexOf(e);varn,r=t.length;for(n=0;r>n;++n)if(t[n]===e)returnn;return-1}functions(t,e){returnM.call(t)==="[object "+e+"]"}functionl(t,e,n){returnb.test.call(n.indexOf("x")>-1?/^(?:\s+|#.*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,t.slice(e))}functionc(t,e){varr;if(n(e)!==e)thrownewSyntaxError("Invalid duplicate regex flag "+e);for(t=b.replace.call(t,/^\(\?([\w$]+)\)/,function(t,r){if(b.test.call(/[gy]/,r))thrownewSyntaxError("Cannot use flag g or y in mode modifier "+t);returne=n(e+r),""}),r=0;r<e.length;++r)if(!A[e.charAt(r)])thrownewSyntaxError("Unknown regex flag "+e.charAt(r));return{pattern:t,flags:e}}functionu(t){returnt=t||{},s(t,"String")&&(t=m.forEach(t,/[^\s,]+/,function(t){this[t]=!0},{})),t}functionh(t){if(!/^[\w$]$/.test(t))thrownewError("Flag must be a single character A-Za-z0-9_$");A[t]=!0}functionf(t,e,n,r,i){for(vara,o,s=C.length,l=null;s--;)if(o=C[s],(o.scope===r||"all"===o.scope)&&(!o.flag||e.indexOf(o.flag)>-1)&&(a=m.exec(t,o.regex,n,"sticky"))){l={matchLength:a[0].length,output:o.handler.call(i,a,r,e),reparse:o.reparse};break}returnl}functiond(t){m.cache.flush("patterns"),x.astral=t}functionp(t){RegExp.prototype.exec=(t?w:b).exec,RegExp.prototype.test=(t?w:b).test,String.prototype.match=(t?w:b).match,String.prototype.replace=(t?w:b).replace,String.prototype.split=(t?w:b).split,x.natives=t}functiong(t){if(null==t)thrownewTypeError("Cannot convert null or undefined to object");returnt}varm,v,y="xregexp",x={astral:!1,natives:!1},b={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},w={},_={},S={},C=[],E="default",k="class",T={"default":/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,"class":/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|[\s\S]/},I=/\$(?:{([\w$]+)}|(\d\d?|[\s\S]))/g,N=b.exec.call(/()??/,"")[1]===t,R=RegExp.prototype.sticky!==t,A={g:!0,i:!0,m:!0,y:R},M={}.toString;returnm=function(n,i){vara,o,s,l={hasNamedCapture:!1,captureNames:[]},u=E,h="",d=0;if(m.isRegExp(n)){if(i!==t)thrownewTypeError("Cannot supply flags when copying a RegExp");returnr(n,{addProto:!0})}if(n=n===t?"":String(n),i=i===t?"":String(i),s=n+"***"+i,!S[s]){for(a=c(n,i),n=a.pattern,i=a.flags;d<n.length;){doa=f(n,i,d,u,l),a&&a.reparse&&(n=n.slice(0,d)+a.output+n.slice(d+a.matchLength));while(a&&a.reparse);a?(h+=a.output,d+=a.matchLength||1):(o=m.exec(n,T[u],d,"sticky")[0],h+=o,d+=o.length,"["===o&&u===E?u=k:"]"===o&&u===k&&(u=E))}S[s]={pattern:b.replace.call(h,/\(\?:\)(?=\(\?:\))|^\(\?:\)|\(\?:\)$/g,""),flags:b.replace.call(i,/[^gimy]+/g,""),captures:l.hasNamedCapture?l.captureNames:null}}returns=S[s],e(newRegExp(s.pattern,s.flags),s.captures,!0)},m.prototype=newRegExp,m.version="3.0.0-pre",m.addToken=function(t,e,n){n=n||{};vari,a=n.optionalFlags;if(n.flag&&h(n.flag),a)for(a=b.split.call(a,""),i=0;i<a.length;++i)h(a[i]);C.push({regex:r(t,{add:"g"+(R?"y":"")}),handler:e,scope:n.scope||E,flag:n.flag,reparse:n.reparse}),m.cache.flush("patterns")},m.cache=function(t,e){varn=t+"***"+(e||"");return_[n]||(_[n]=m(t,e))},m.cache.flush=function(t){"patterns"===t?S={}:_={}},m.escape=function(t){returnb.replace.call(g(t),/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},m.exec=function(t,e,n,a){varo,s,l="g";returnR&&(a||e.sticky&&a!==!1)&&(l+="y"),e[y]=e[y]||i(),s=e[y][l]||(e[y][l]=r(e,{add:l,remove:a===!1?"y":""})),s.lastIndex=n=n||0,o=w.exec.call(s,t),a&&o&&o.index!==n&&(o=null),e.global&&(e.lastIndex=o?s.lastIndex:0),o},m.forEach=function(t,e,n,r){for(vari,a=0,o=-1;i=m.exec(t,e,
}(t),function(t){if(!t.addUnicodeData)thrownewReferenceError("Unicode Base must be loaded before Unicode Properties");t.addUnicodeData([{name:"ASCII",bmp:"\x00-"},{name:"Alphabetic",bmp:"A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͅͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևְ-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-ٗٙ-ٟٮ-ۓە-ۜۡ-ۭۨ-ۯۺ-ۼۿܐ-ܿݍ-ޱߊ-ߪߴߵߺࠀ-ࠗࠚ-ࠬࡀ-ࡘࢠࢢ-ࢬࣤ-ࣰࣩ-ࣾऀ-ऻऽ-ौॎ-ॐॕ-ॣॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হঽ-ৄেৈোৌৎৗড়ঢ়য়-ৣৰৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਾ-ੂੇੈੋੌੑਖ਼-ੜਫ਼ੰ-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽ-ૅે-ૉોૌૐૠ-ૣଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽ-ୄେୈୋୌୖୗଡ଼ଢ଼ୟ-ୣୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-ௌௐௗఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-ౌౕౖౘౙౠ-ౣಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೄೆ-ೈೊ-ೌೕೖೞೠ-ೣೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൌൎൗൠ-ൣൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆා-ුූෘ-ෟෲෳก-ฺเ-ๆํກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆໍໜ-ໟༀཀ-ཇཉ-ཬཱ-ཱྀྈ-ྗྙ-ྼက-ံးျ-ဿၐ-ၢၥ-ၨၮ-ႆႎႜႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜓᜠ-ᜳᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-ឳា-ៈៗៜᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-ᤸᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨛᨠ-ᩞᩡ-ᩴᪧᬀ-ᬳᬵ-ᭃᭅ-ᭋᮀ-ᮩᮬ-ᮯᮺ-ᯥᯧ-ᯱᰀ-ᰵᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳳᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⒶ-ⓩⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙴ-ꙻꙿ-ꚗꚟ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠧꡀ-ꡳꢀ-ꣃꣲ-ꣷꣻꤊ-ꤪꤰ-ꥒꥠ-ꥼꦀ-ꦲꦴ-ꦿꧏꨀ-ꨶꩀ-ꩍꩠ-ꩶꩺꪀ-ꪾꫀꫂꫛ-ꫝꫠ-ꫯꫲ-ꫵꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"<22>[<5B>-<2D>]|<7C>[<5B>-<2D>]|<7C>[<5B>-<2D>]|<7C>[<5B>-<2D>]|<7C>[<5B>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D>]|[<5B><>-<2D><>-<2D>][<5B>-<2D>]|<7C>[<5B>-<2D>]|<7C>[<5B>-<2D><>-<2D>]|<7C>[<5B>-<2D>]|<7C>[<5B>-<2D>]|<7C>[<5B>-<2D><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D><>-<2D><>-<2D><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D>]|<7C>[<5B>-<2D><>-<2D><>-<2D><><EFBFBD><EFBFBD>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D>]|<7C>[<5B>-<2D><>-<2D><>-<2D>]|<7C>[<5B>-<2D><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D><><EFBFBD>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><><EFBFBD>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D><>-<2D>]|<7C>[<5B>-<2D><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>-<2D><>-<2D><>-<2D><><EFBFBD>-<2D><>-<2D><>-<2D><>-<2D><>-<2D>]|<7C>[<5B>-<2D><>-<2D>]|<7C>[<5B><>]|<7C>[<5B>-<2D>]|<7C>[<5B>-<2D>]"},{name:"Any",isBmpLast:!0,bmp:"\x00-",astral:"[<5B>-<2D>][<5B>-<2D>]"},{name:"Assigned",inverseOf:"Cn"},{name:"Default_Ignorable_Code_Point",bmp:"͏ᅟᅠ឴឵᠋-᠍---ㅤ︀-️ᅠ-",astral:"[<5B>-<2D>][<5B>-<2D>]|<7C>[<5B>-<2D>]"},{name:"Lowercase",bmp:"a-zªµºß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶ<EFBFBD>
},c.onMessage=function(t){s(t)},c.onError=function(e){n.error(e),t.isString(e)?s(e,"icon-attention"):t.isObject(e)&&s(e.message,"icon-attention")};varp=!1;returnc.onOfflineChanged=function(t){p=t,l(),p===!0?s("You are offline.","icon-attention-circled msg-offline"):s("You are back online!","icon-signal")},c.onSyncImportSuccess=function(e,n){varr=t.map(e,function(t){returnt.title}).join(", ");s(r+" imported successfully from "+n.providerName+".")},c.onSyncExportSuccess=function(t,e){s('"'+t.title+'" will now be synchronized on '+e.provider.providerName+".")},c.onSyncRemoved=function(t,e){s(e.provider.providerName+" synchronized location has been removed.")},c.onPublishSuccess=function(t){s('"'+t.title+'" successfully published.')},c.onNewPublishSuccess=function(t,e){s('"'+t.title+'" is now published on '+e.provider.providerName+".")},c.onPublishRemoved=function(t,e){s(e.provider.providerName+" publish location has been removed.")},c}),define("text!html/umlDiagramsSettingsBlock.html",[],function(){return'<p>Creates UML diagrams from plain text description.</p>\n\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="textarea-umldiagram-flowchart-options">Flow charts options (JSON)\n </label>\n <div class="col-sm-7">\n <textarea id="textarea-umldiagram-flowchart-options" class="form-control"></textarea>\n </div>\n </div>\n</div>\n<br>\n<p>Sequence diagrams:</p>\n<pre><div class="help-block pull-right"><a target="_blank" href="http://bramp.github.io/js-sequence-diagrams/">More info</a></div><code>```sequence\nAlice->Bob: Hello Bob, how are you?\nBob-->Alice: I am good thanks!\n```</code>\n</pre>\n\n<p>Flow charts:</p>\n<pre><div class="help-block pull-right"><a target="_blank" href="http://adrai.github.io/flowchart.js/">More info</a></div><code>```flow\nst=>start: Start\ne=>end\nop=>operation: My Operation\ncond=>condition: Yes or No?\nst->op->cond\ncond(yes)->e\ncond(no)->op\n```</code>\n</pre>\n<blockquote>\n <p><b>Note:</b> Markdown Extra extension has to be enabled with GFM fenced code blocks option.</p>\n</blockquote>\n'}),function(t){vare,n,r="0.4.2",i="hasOwnProperty",a=/[\.\/]/,o="*",s=function(){},l=function(t,e){returnt-e},c={n:{}},u=function(t,r){t=String(t);vari,a=n,o=Array.prototype.slice.call(arguments,2),s=u.listeners(t),c=0,h=[],f={},d=[],p=e;e=t,n=0;for(varg=0,m=s.length;m>g;g++)"zIndex"ins[g]&&(h.push(s[g].zIndex),s[g].zIndex<0&&(f[s[g].zIndex]=s[g]));for(h.sort(l);h[c]<0;)if(i=f[h[c++]],d.push(i.apply(r,o)),n)returnn=a,d;for(g=0;m>g;g++)if(i=s[g],"zIndex"ini)if(i.zIndex==h[c]){if(d.push(i.apply(r,o)),n)break;doif(c++,i=f[h[c]],i&&d.push(i.apply(r,o)),n)break;while(i)}elsef[i.zIndex]=i;elseif(d.push(i.apply(r,o)),n)break;returnn=a,e=p,d.length?d:null};u._events=c,u.listeners=function(t){vare,n,r,i,s,l,u,h,f=t.split(a),d=c,p=[d],g=[];for(i=0,s=f.length;s>i;i++){for(h=[],l=0,u=p.length;u>l;l++)for(d=p[l].n,n=[d[f[i]],d[o]],r=2;r--;)e=n[r],e&&(h.push(e),g=g.concat(e.f||[]));p=h}returng},u.on=function(t,e){if(t=String(t),"function"!=typeofe)returnfunction(){};for(varn=t.split(a),r=c,i=0,o=n.length;o>i;i++)r=r.n,r=r.hasOwnProperty(n[i])&&r[n[i]]||(r[n[i]]={n:{}});for(r.f=r.f||[],i=0,o=r.f.length;o>i;i++)if(r.f[i]==e)returns;returnr.f.push(e),function(t){+t==+t&&(e.zIndex=+t)}},u.f=function(t){vare=[].slice.call(arguments,1);returnfunction(){u.apply(null,[t,null].concat(e).concat([].slice.call(arguments,0)))}},u.stop=function(){n=1},u.nt=function(t){returnt?newRegExp("(?:\\.|\\/|^)"+t+"(?:\\.|\\/|$)").test(e):e},u.nts=function(){returne.split(a)},u.off=u.unbind=function(t,e){if(!t)returnvoid(u._events=c={n:{}});varn,r,s,l,h,f,d,p=t.split(a),g=[c];for(l=0,h=p.length;h>l;l++)for(f=0;f<g.length;f+=s.length-2){if(s=[f,1],n=g[f].n,p[l]!=o)n[p[l]]&&s.push(n[p[l]]);elsefor(rinn)n[i](r)&&s.push(n[r]);g.splice.apply(g,s)}for(l=0,h=g.length;h>l;l++)for(n=g[l];n.n;){if(e){if(n.f){for(f=0,d=n.f.length;d>f;f++)if(n.f[f]==e){n.f.splice(f,1);break}!n.f.length&&deleten.f}for(rinn.n)if(n.n[i](r)&&n.n
this.trace(t)},parse:function(t){functione(){vart;returnt=n.lexer.lex()||f,"number"!=typeoft&&(t=n.symbols_[t]||t),t}varn=this,r=[0],i=[null],a=[],o=this.table,s="",l=0,c=0,u=0,h=2,f=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeofthis.lexer.yylloc&&(this.lexer.yylloc={});vard=this.lexer.yylloc;a.push(d);varp=this.lexer.options&&this.lexer.options.ranges;this.parseError="function"==typeofthis.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(varg,m,v,y,x,b,w,_,S,C={};;){if(v=r[r.length-1],this.defaultActions[v]?y=this.defaultActions[v]:((null===g||"undefined"==typeofg)&&(g=e()),y=o[v]&&o[v][g]),"undefined"==typeofy||!y.length||!y[0]){varE="";S=[];for(bino[v])this.terminals_[b]&&b>h&&S.push("'"+this.terminals_[b]+"'");E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(l+1)+": Unexpected "+(g==f?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:d,expected:S})}if(y[0]instanceofArray&&y.length>1)thrownewError("Parse Error: multiple actions possible at state: "+v+", token: "+g);switch(y[0]){case1:r.push(g),i.push(this.lexer.yytext),a.push(this.lexer.yylloc),r.push(y[1]),g=null,m?(g=m,m=null):(c=this.lexer.yyleng,s=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,u>0&&u--);break;case2:if(w=this.productions_[y[1]][1],C.$=i[i.length-w],C._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column},p&&(C._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]),x=this.performAction.call(C,s,c,l,this.yy,y[1],i,a),"undefined"!=typeofx)returnx;w&&(r=r.slice(0,-1*w*2),i=i.slice(0,-1*w),a=a.slice(0,-1*w)),r.push(this.productions_[y[1]][0]),i.push(C.$),a.push(C._$),_=o[r[r.length-2]][r[r.length-1]],r.push(_);break;case3:return!0}}return!0}},r=function(){vart={EOF:1,parseError:function(t,e){if(!this.yy.parser)thrownewError(t);this.yy.parser.parseError(t,e)},setInput:function(t){returnthis._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){vart=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;vare=t.match(/(?:\r\n?|\n).*/g);returne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){vare=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e-1),this.offset-=e;varr=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);vari=this.yylloc.range;returnthis.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){returnthis._more=!0,this},reject:function(){returnthis.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){vart=this.matched.substr(0,this.matched.length-this.match.length);return(t.leng
if(e.href==i.href)returnclearInterval(a),n()}},10);i.href=e,t.appendChild(i)};returni.normalize=function(t,e){return".css"==t.substr(t.length-4,4)&&(t=t.substr(0,t.length-4)),e(t)},i.load=function(t,e,r){(n?d:p)(e.toUrl(t+".css"),r)},i}),define("css",["css/css"],function(t){returnt}),rangy.createModule("CssClassApplier",function(t,e){functionn(t){returnt.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}functionr(t,e){returnt.className&&newRegExp("(?:^|\\s)"+e+"(?:\\s|$)").test(t.className)}functioni(t,e){t.className?r(t,e)||(t.className+=" "+e):t.className=e}functiona(t){returnt.split(/\s+/).sort().join(" ")}functiono(t){returna(t.className)}functions(t,e){returno(t)==o(e)}functionl(t){for(vare=t.parentNode;t.hasChildNodes();)e.insertBefore(t.firstChild,t);e.removeChild(t)}functionc(t,e){varn=t.cloneRange();n.selectNodeContents(e);varr=n.intersection(t),i=r?r.toString():"";returnn.detach(),""!=i}functionu(t){returnt.getNodes([3],function(e){returnc(t,e)})}functionh(t,e){if(t.attributes.length!=e.attributes.length)return!1;for(varn,r,i,a=0,o=t.attributes.length;o>a;++a)if(n=t.attributes[a],i=n.name,"class"!=i){if(r=e.attributes.getNamedItem(i),n.specified!=r.specified)return!1;if(n.specified&&n.nodeValue!==r.nodeValue)return!1}return!0}functionf(t,e){for(varn,r=0,i=t.attributes.length;i>r;++r)if(n=t.attributes[r].name,(!e||!k.arrayContains(e,n))&&t.attributes[r].specified&&"class"!=n)return!0;return!1}functiond(t,e){for(varnine)if(e.hasOwnProperty(n)&&t[n]!==e[n])return!1;return!0}functionp(t){vare;returnt&&1==t.nodeType&&((e=t.parentNode)&&9==e.nodeType&&"on"==e.designMode||N(t)&&!N(t.parentNode))}functiong(t){return(N(t)||1!=t.nodeType&&N(t.parentNode))&&!p(t)}functionm(t){returnt&&1==t.nodeType&&!R.test(E(t,"display"))}functionv(t){if(0==t.data.length)return!0;if(A.test(t.data))return!1;vare=E(t.parentNode,"whiteSpace");switch(e){case"pre":case"pre-wrap":case"-moz-pre-wrap":return!1;case"pre-line":if(/[\r\n]/.test(t.data))return!1}returnm(t.previousSibling)||m(t.nextSibling)}functiony(t,e){returnk.isCharacterDataNode(t)?0==e?!!t.previousSibling:e==t.length?!!t.nextSibling:!0:e>0&&e<t.childNodes.length}functionx(t,n,r,i){vara,o=0==r;if(k.isAncestorOf(n,t))returnt;if(k.isCharacterDataNode(n))if(0==r)r=k.getNodeIndex(n),n=n.parentNode;else{if(r!=n.length)throwe.createError("splitNodeAt should not be called with offset in the middle of a data node ("+r+" in "+n.data);r=k.getNodeIndex(n)+1,n=n.parentNode}if(y(n,r)){if(!a){a=n.cloneNode(!1),a.id&&a.removeAttribute("id");for(vars;s=n.childNodes[r];)a.appendChild(s);k.insertAfter(a,n)}returnn==t?a:x(t,a.parentNode,k.getNodeIndex(a),i)}if(t!=n){a=n.parentNode;varl=k.getNodeIndex(n);returno||l++,x(t,a,l,i)}returnt}functionb(t,e){returnt.tagName==e.tagName&&s(t,e)&&h(t,e)}functionw(t){vare=t?"nextSibling":"previousSibling";returnfunction(n,r){vari=n.parentNode,a=n[e];if(a){if(a&&3==a.nodeType)returna}elseif(r&&(a=i[e],a&&1==a.nodeType&&b(i,a)))returna[t?"firstChild":"lastChild"];returnnull}}function_(t){this.isElementMerge=1==t.nodeType,this.firstTextNode=this.isElementMerge?t.lastChild:t,this.textNodes=[this.firstTextNode]}functionS(t,e,r){this.cssClass=t;vari,o,s,l,c=null;if("object"==typeofe&&null!==e){for(r=e.tagNames,c=e.elementProperties,o=0;l=O[o++];)e.hasOwnProperty(l)&&(this[l]=e[l]);i=e.normalize}elsei=e;this.normalize="undefined"==typeofi?!0:i,this.attrExceptions=[];varu=document.createElement(this.elementTagName);this.elementProperties={};for(varhinc)c.hasOwnProperty(h)&&(D.hasOwnProperty(h)&&(h=D[h]),u[h]=c[h],this.elementProperties[h]=u[h],this.attrExceptions.push(h));this.elementSortedClassName=this.elementProperties.hasOwnProperty("className")?a(this.elementProperties.className+" "+t):t,this.applyToAnyTagName=!1;varf=typeofr;if("string"==f)"*"==r?this.applyToAnyTagName=!0:this.tagNames=n(r.toLowerCase()).split(/\s*,\s*/);elseif("object"==f&&"number"==typeofr.length)for(this.tagNames=[],o=0,s=r.length;s>o;++o)"*"==r[o]?this.applyToAnyTagName=!0:this.tagNames.push(r[o].toLowerCase());elsethis.tag