From f302b40890f3210162b77361a46dc0195cd9543e Mon Sep 17 00:00:00 2001
From: Oliver Pulges
Date: Mon, 2 Jun 2014 11:02:15 +0300
Subject: [PATCH] Update version to 0.4.7
---
CHANGELOG.textile | 3 +++
bower.json | 2 +-
dist/wysihtml5x-toolbar.js | 6 +++---
dist/wysihtml5x-toolbar.min.js | 6 +++---
dist/wysihtml5x-toolbar.min.map | 2 +-
dist/wysihtml5x.js | 6 +++---
dist/wysihtml5x.min.js | 6 +++---
dist/wysihtml5x.min.map | 2 +-
package.json | 2 +-
9 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/CHANGELOG.textile b/CHANGELOG.textile
index cc7d1be..26f8aa1 100644
--- a/CHANGELOG.textile
+++ b/CHANGELOG.textile
@@ -1,3 +1,6 @@
+*wysihtml5x 0.4.7* (June 2, 2014)
+* Fixes mayor bug that prevents deleting some elements.
+
*wysihtml5x 0.4.6* (June 2, 2014)
* Added "hasVisibleContent" to parser check methods to clean up empty elements
* Added list indent and outdent commands
diff --git a/bower.json b/bower.json
index a7e2ab9..2c1be88 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "wysihtml5x",
- "version": "0.4.6",
+ "version": "0.4.7",
"main": [
"dist/wysihtml5x.min.js",
"dist/wysihtml5x-toolbar.min.js"
diff --git a/dist/wysihtml5x-toolbar.js b/dist/wysihtml5x-toolbar.js
index cafd470..d55fbf8 100644
--- a/dist/wysihtml5x-toolbar.js
+++ b/dist/wysihtml5x-toolbar.js
@@ -25,7 +25,7 @@ if(!Array.isArray) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
};/**
- * @license wysihtml5x v0.4.6
+ * @license wysihtml5x v0.4.7
* https://github.com/Edicy/wysihtml5
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -36,7 +36,7 @@ if(!Array.isArray) {
*
*/
var wysihtml5 = {
- version: "0.4.6",
+ version: "0.4.7",
// namespaces
commands: {},
@@ -8598,7 +8598,7 @@ wysihtml5.quirks.ensureProperClearing = (function() {
node = selection.anchorNode,
offset = selection.anchorOffset;
if (ofNode) {
- return (offset === 0 && (node.nodeName && node.nodeName === ofNode.toUpperCase() || wysihtml5.dom.getParentElement(node.parentNode, ofNode, 1)));
+ return (offset === 0 && (node.nodeName && node.nodeName === ofNode.toUpperCase() || wysihtml5.dom.getParentElement(node.parentNode, { nodeName: ofNode }, 1)));
} else {
return (offset === 0 && !this.getPreviousNode(node, true));
}
diff --git a/dist/wysihtml5x-toolbar.min.js b/dist/wysihtml5x-toolbar.min.js
index ab374df..9c3db7c 100644
--- a/dist/wysihtml5x-toolbar.min.js
+++ b/dist/wysihtml5x-toolbar.min.js
@@ -1,9 +1,9 @@
-/*! wysihtml5x - v0.4.6 (2014-06-02) */
+/*! wysihtml5x - v0.4.7 (2014-06-02) */
-Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(Element.prototype,"textContent").get&&!function(){var a=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");Object.defineProperty(Element.prototype,"textContent",{get:function(){return a.get.call(this)},set:function(b){return a.set.call(this,b)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});var wysihtml5={version:"0.4.6",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"",EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,DELETE_KEY:46};!function(a){function b(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function c(a,b){return!(typeof a[b]!=t||!a[b])}function d(a,b){return typeof a[b]!=v}function e(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function f(a){return a&&A(a,z)&&C(a,y)}function g(a){return c(a,"body")?a.body:a.getElementsByTagName("body")[0]}function h(a){c(window,"console")&&b(window.console,"log")&&window.console.log(a)}function i(a,b){b?window.alert(a):h(a)}function j(a){E.initialized=!0,E.supported=!1,i("Rangy is not supported on this page in your browser. Reason: "+a,E.config.alertOnFail)}function k(a){i("Rangy warning: "+a,E.config.alertOnWarn)}function l(a){return a.message||a.description||String(a)}function m(){if(!E.initialized){var a,c=!1,d=!1;b(document,"createRange")&&(a=document.createRange(),A(a,x)&&C(a,w)&&(c=!0),a.detach());var e=g(document);if(!e||"body"!=e.nodeName.toLowerCase())return void j("No body element found");if(e&&b(e,"createTextRange")&&(a=e.createTextRange(),f(a)&&(d=!0)),!c&&!d)return void j("Neither Range nor TextRange are available");E.initialized=!0,E.features={implementsDomRange:c,implementsTextRange:d};var i,k;for(var m in D)(i=D[m])instanceof o&&i.init(i,E);for(var n=0,p=G.length;p>n;++n)try{G[n](E)}catch(q){k="Rangy init listener threw an exception. Continuing. Detail: "+l(q),h(k)}}}function n(a){a=a||window,m();for(var b=0,c=H.length;c>b;++b)H[b](a)}function o(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function p(a,b,c,d){var e=new o(b,c,function(a){if(!a.initialized){a.initialized=!0;try{d(E,a),a.supported=!0}catch(c){var e="Module '"+b+"' failed to load: "+l(c);h(e)}}});D[b]=e}function q(){}function r(){}var s="function"==typeof a.define&&a.define.amd,t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=e(b),B=e(c),C=e(d),D={},E={version:"1.3alpha.804",initialized:!1,supported:!0,util:{isHostMethod:b,isHostObject:c,isHostProperty:d,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:f,getBody:g},features:{},modules:D,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1}};E.fail=j,E.warn=k,{}.hasOwnProperty?E.util.extend=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&E.util.extend(d,e,!0),a[f]=e);return a}:j("hasOwnProperty not supported"),function(){var a=document.createElement("div");a.appendChild(document.createElement("span"));var b,c=[].slice;try{1==c.call(a.childNodes,0)[0].nodeType&&(b=function(a){return c.call(a,0)})}catch(d){}b||(b=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),E.util.toArray=b}();var F;b(document,"addEventListener")?F=function(a,b,c){a.addEventListener(b,c,!1)}:b(document,"attachEvent")?F=function(a,b,c){a.attachEvent("on"+b,c)}:j("Document does not have required addEventListener or attachEvent method"),E.util.addListener=F;var G=[];E.init=m,E.addInitListener=function(a){E.initialized?a(E):G.push(a)};var H=[];E.addCreateMissingNativeApiListener=function(a){H.push(a)},E.createMissingNativeApi=n,o.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=D[b],!(a&&a instanceof o))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]),p(!1,a,c,b)},E.createCoreModule=function(a,b,c){p(!0,a,b,c)},E.RangePrototype=q,E.rangePrototype=new q,E.selectionPrototype=new r;var I=!1,J=function(){I||(I=!0,E.initialized||m())};return typeof window==v?void j("No window found"):typeof document==v?void j("No document found"):(b(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",J,!1),F(window,"load",J),s&&a.define(function(){return E.amd=!0,E}),void(a.rangy=E))}(this),rangy.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)["+e(a)+"]["+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),rangy.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(Q(a,b.startContainer)||Q(a,b.endContainer))}function c(a){return a.document||R(a.startContainer)}function d(a){return new M(a.parentNode,P(a))}function e(a){return new M(a.parentNode,P(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return O(b)?c==b.length?K.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:T(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(A(a),A(b),c(b)!=c(a))throw new N("WRONG_DOCUMENT_ERR");var e=S(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=S(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach(!0)),10==d.nodeType)throw new N("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(!0),c.stop)return}else for(d=K.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach(!0)):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach(!0)):a.remove(),10==b.nodeType)throw new N("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!O(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&O(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+K.inspectNode(a.startContainer)+":"+a.startOffset+", "+K.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&O(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||O(this.sc)?U(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||O(this.ec)?U(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){this.code=this[a],this.codeName=a,this.message="RangeException: "+this.codeName}function p(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,W(a,d))return e;e=e.parentNode}return null}}function q(a,b){if(eb(a,b))throw new o("INVALID_NODE_TYPE_ERR")}function r(a){if(!a.startContainer)throw new N("INVALID_STATE_ERR")}function s(a,b){if(!W(b,a.nodeType))throw new o("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(O(a)?a.length:a.childNodes.length))throw new N("INDEX_SIZE_ERR")}function u(a,b){if(cb(a,!0)!==cb(b,!0))throw new N("WRONG_DOCUMENT_ERR")}function v(a){if(db(a,!0))throw new N("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new N(b)}function x(a){return Y&&K.isBrokenNode(a)||!W($,a.nodeType)&&!cb(a,!0)}function y(a,b){return b<=(O(a)?a.length:a.childNodes.length)}function z(a){return!!a.startContainer&&!!a.endContainer&&!x(a.startContainer)&&!x(a.endContainer)&&y(a.startContainer,a.startOffset)&&y(a.endContainer,a.endOffset)}function A(a){if(r(a),!z(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function B(a,b){A(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;O(e)&&f>0&&f0&&d=P(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function C(a){a.START_TO_START=kb,a.START_TO_END=lb,a.END_TO_END=mb,a.END_TO_START=nb,a.NODE_BEFORE=ob,a.NODE_AFTER=pb,a.NODE_BEFORE_AND_AFTER=qb,a.NODE_INSIDE=rb}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){A(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=U(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,v),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function F(c,f,g){function h(a,b){return function(c){r(this),s(c,Z),s(X(c),$);var f=(a?d:e)(c);(b?i:l)(this,f.node,f.offset)}}function i(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((X(b)!=X(d)||1==S(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function l(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((X(b)!=X(d)||-1==S(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var m=function(){};m.prototype=a.rangePrototype,c.prototype=new m,L.extend(c.prototype,{setStart:function(a,b){r(this),q(a,!0),t(a,b),i(this,a,b)},setEnd:function(a,b){r(this),q(a,!0),t(a,b),l(this,a,b)},setStartAndEnd:function(){r(this);var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:h(!0,!0),setStartAfter:h(!1,!0),setEndBefore:h(!0,!1),setEndAfter:h(!1,!1),collapse:function(a){A(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(this),q(a,!0),f(this,a,0,a,V(a))},selectNode:function(a){r(this),q(a,!1),s(a,Z);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:E(k,f),deleteContents:E(j,f),canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},detach:function(){g(this)},splitBoundaries:function(){B(this)},splitBoundariesPreservingPositions:function(a){B(this,a)},normalizeBoundaries:function(){A(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=P(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(O(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&O(i)&&e(i)}h=!this.collapsed}if(h){if(O(a))0==b&&g(a);else if(bx",gb=3==fb.firstChild.nodeType}catch(hb){}a.features.htmlParsingConforms=gb;var ib=gb?function(a){var b=this.startContainer,c=R(b);if(!b)throw new N("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:O(b)&&(d=K.parentElement(b)),d=null===d||"HTML"==d.nodeName&&K.isHtmlNamespace(R(d).documentElement)&&K.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,K.fragmentFromNodeChildren(d)}:function(a){r(this);var b=c(this),d=b.createElement("body");return d.innerHTML=a,K.fragmentFromNodeChildren(d)},jb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],kb=0,lb=1,mb=2,nb=3,ob=0,pb=1,qb=2,rb=3;L.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){A(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==nb||a==kb?"start":"end",h=a==lb||a==kb?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],S(c,d,e,f)},insertNode:function(a){if(A(this),s(a,ab),v(this.startContainer),Q(a,this.startContainer))throw new N("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){A(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&O(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(s(a,bb),!this.canSurroundContents())throw new o("BAD_BOUNDARYPOINTS_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){A(this);for(var a,b=new J(c(this)),d=jb.length;d--;)a=jb[d],b[a]=this[a];return b},toString:function(){A(this);var a=this.startContainer;if(a===this.endContainer&&O(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){A(this);var b=a.parentNode,c=P(a);if(!b)throw new N("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qb:ob:e>0?pb:rb},comparePoint:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)<0?-1:S(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ib,toHtml:function(){A(this);var a=this.commonAncestorContainer.parentNode.cloneNode(!1);return a.appendChild(this.cloneContents()),a.innerHTML},intersectsNode:function(a,b){if(A(this),w(a,"NOT_FOUND_ERR"),R(a)!==c(this))return!1;var d=a.parentNode,e=P(a);w(d,"NOT_FOUND_ERR");var f=S(d,e,this.endContainer,this.endOffset),g=S(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)>=0&&S(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=S(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=S(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==S(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==S(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new o("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==rb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,V(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();b.setEnd(d,d.length);var e=this.containsRange(b);return b.detach(),e}return this.containsNodeContents(a)},getNodes:function(a,b){return A(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){r(this),this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){r(this),this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||K.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length,e.detach()),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return J.rangesEqual(this,a)},isValid:function(){return z(this)},inspect:function(){return m(this)}}),F(J,H,I),L.extend(J,{rangeProperties:jb,RangeIterator:n,copyComparisonConstants:D,createPrototypeRange:F,inspect:m,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=J,a.RangeException=o}),rangy.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=n.length;c--;)b=n[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}function k(a){a.nativeRange.detach(),a.detached=!0;for(var b=n.length;b--;)a[n[b]]=null}var l,m,n=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g,k),l=c.prototype,l.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},l.cloneContents=function(){return this.nativeRange.cloneContents()},l.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},l.collapse=function(a){this.nativeRange.collapse(a),d(this)},l.cloneRange=function(){return new c(this.nativeRange.cloneRange())},l.refresh=function(){d(this)},l.toString=function(){return this.nativeRange.toString()};var o=document.createTextNode("test");i(document).appendChild(o);var p=document.createRange();p.setStart(o,0),p.setEnd(o,0);try{p.setStart(o,1),l.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},l.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},m=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(q){l.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},l.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},m=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}l.setStartBefore=m("setStartBefore","setEndBefore"),l.setStartAfter=m("setStartAfter","setEndAfter"),l.setEndBefore=m("setEndBefore","setStartBefore"),l.setEndAfter=m("setEndAfter","setStartAfter"),l.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},p.selectNodeContents(o),p.setEnd(o,3);var r=document.createRange();r.selectNodeContents(o),r.setEnd(o,4),r.setStart(o,2),l.compareBoundaryPoints=-1==p.compareBoundaryPoints(p.START_TO_END,r)&&1==p.compareBoundaryPoints(p.END_TO_START,r)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var s=document.createElement("div");s.innerHTML="123";var t=s.firstChild,u=i(document);u.appendChild(s),p.setStart(t,1),p.setEnd(t,2),p.deleteContents(),"13"==t.data&&(l.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},l.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),u.removeChild(s),u=null,f.isHostMethod(p,"createContextualFragment")&&(l.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(o),p.detach(),r.detach(),l.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}
+Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(Element.prototype,"textContent").get&&!function(){var a=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");Object.defineProperty(Element.prototype,"textContent",{get:function(){return a.get.call(this)},set:function(b){return a.set.call(this,b)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});var wysihtml5={version:"0.4.7",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"",EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,DELETE_KEY:46};!function(a){function b(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function c(a,b){return!(typeof a[b]!=t||!a[b])}function d(a,b){return typeof a[b]!=v}function e(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function f(a){return a&&A(a,z)&&C(a,y)}function g(a){return c(a,"body")?a.body:a.getElementsByTagName("body")[0]}function h(a){c(window,"console")&&b(window.console,"log")&&window.console.log(a)}function i(a,b){b?window.alert(a):h(a)}function j(a){E.initialized=!0,E.supported=!1,i("Rangy is not supported on this page in your browser. Reason: "+a,E.config.alertOnFail)}function k(a){i("Rangy warning: "+a,E.config.alertOnWarn)}function l(a){return a.message||a.description||String(a)}function m(){if(!E.initialized){var a,c=!1,d=!1;b(document,"createRange")&&(a=document.createRange(),A(a,x)&&C(a,w)&&(c=!0),a.detach());var e=g(document);if(!e||"body"!=e.nodeName.toLowerCase())return void j("No body element found");if(e&&b(e,"createTextRange")&&(a=e.createTextRange(),f(a)&&(d=!0)),!c&&!d)return void j("Neither Range nor TextRange are available");E.initialized=!0,E.features={implementsDomRange:c,implementsTextRange:d};var i,k;for(var m in D)(i=D[m])instanceof o&&i.init(i,E);for(var n=0,p=G.length;p>n;++n)try{G[n](E)}catch(q){k="Rangy init listener threw an exception. Continuing. Detail: "+l(q),h(k)}}}function n(a){a=a||window,m();for(var b=0,c=H.length;c>b;++b)H[b](a)}function o(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function p(a,b,c,d){var e=new o(b,c,function(a){if(!a.initialized){a.initialized=!0;try{d(E,a),a.supported=!0}catch(c){var e="Module '"+b+"' failed to load: "+l(c);h(e)}}});D[b]=e}function q(){}function r(){}var s="function"==typeof a.define&&a.define.amd,t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=e(b),B=e(c),C=e(d),D={},E={version:"1.3alpha.804",initialized:!1,supported:!0,util:{isHostMethod:b,isHostObject:c,isHostProperty:d,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:f,getBody:g},features:{},modules:D,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1}};E.fail=j,E.warn=k,{}.hasOwnProperty?E.util.extend=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&E.util.extend(d,e,!0),a[f]=e);return a}:j("hasOwnProperty not supported"),function(){var a=document.createElement("div");a.appendChild(document.createElement("span"));var b,c=[].slice;try{1==c.call(a.childNodes,0)[0].nodeType&&(b=function(a){return c.call(a,0)})}catch(d){}b||(b=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),E.util.toArray=b}();var F;b(document,"addEventListener")?F=function(a,b,c){a.addEventListener(b,c,!1)}:b(document,"attachEvent")?F=function(a,b,c){a.attachEvent("on"+b,c)}:j("Document does not have required addEventListener or attachEvent method"),E.util.addListener=F;var G=[];E.init=m,E.addInitListener=function(a){E.initialized?a(E):G.push(a)};var H=[];E.addCreateMissingNativeApiListener=function(a){H.push(a)},E.createMissingNativeApi=n,o.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=D[b],!(a&&a instanceof o))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]),p(!1,a,c,b)},E.createCoreModule=function(a,b,c){p(!0,a,b,c)},E.RangePrototype=q,E.rangePrototype=new q,E.selectionPrototype=new r;var I=!1,J=function(){I||(I=!0,E.initialized||m())};return typeof window==v?void j("No window found"):typeof document==v?void j("No document found"):(b(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",J,!1),F(window,"load",J),s&&a.define(function(){return E.amd=!0,E}),void(a.rangy=E))}(this),rangy.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)["+e(a)+"]["+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),rangy.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(Q(a,b.startContainer)||Q(a,b.endContainer))}function c(a){return a.document||R(a.startContainer)}function d(a){return new M(a.parentNode,P(a))}function e(a){return new M(a.parentNode,P(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return O(b)?c==b.length?K.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:T(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(A(a),A(b),c(b)!=c(a))throw new N("WRONG_DOCUMENT_ERR");var e=S(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=S(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach(!0)),10==d.nodeType)throw new N("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(!0),c.stop)return}else for(d=K.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach(!0)):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach(!0)):a.remove(),10==b.nodeType)throw new N("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!O(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&O(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+K.inspectNode(a.startContainer)+":"+a.startOffset+", "+K.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&O(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||O(this.sc)?U(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||O(this.ec)?U(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){this.code=this[a],this.codeName=a,this.message="RangeException: "+this.codeName}function p(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,W(a,d))return e;e=e.parentNode}return null}}function q(a,b){if(eb(a,b))throw new o("INVALID_NODE_TYPE_ERR")}function r(a){if(!a.startContainer)throw new N("INVALID_STATE_ERR")}function s(a,b){if(!W(b,a.nodeType))throw new o("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(O(a)?a.length:a.childNodes.length))throw new N("INDEX_SIZE_ERR")}function u(a,b){if(cb(a,!0)!==cb(b,!0))throw new N("WRONG_DOCUMENT_ERR")}function v(a){if(db(a,!0))throw new N("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new N(b)}function x(a){return Y&&K.isBrokenNode(a)||!W($,a.nodeType)&&!cb(a,!0)}function y(a,b){return b<=(O(a)?a.length:a.childNodes.length)}function z(a){return!!a.startContainer&&!!a.endContainer&&!x(a.startContainer)&&!x(a.endContainer)&&y(a.startContainer,a.startOffset)&&y(a.endContainer,a.endOffset)}function A(a){if(r(a),!z(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function B(a,b){A(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;O(e)&&f>0&&f0&&d=P(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function C(a){a.START_TO_START=kb,a.START_TO_END=lb,a.END_TO_END=mb,a.END_TO_START=nb,a.NODE_BEFORE=ob,a.NODE_AFTER=pb,a.NODE_BEFORE_AND_AFTER=qb,a.NODE_INSIDE=rb}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){A(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=U(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,v),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function F(c,f,g){function h(a,b){return function(c){r(this),s(c,Z),s(X(c),$);var f=(a?d:e)(c);(b?i:l)(this,f.node,f.offset)}}function i(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((X(b)!=X(d)||1==S(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function l(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((X(b)!=X(d)||-1==S(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var m=function(){};m.prototype=a.rangePrototype,c.prototype=new m,L.extend(c.prototype,{setStart:function(a,b){r(this),q(a,!0),t(a,b),i(this,a,b)},setEnd:function(a,b){r(this),q(a,!0),t(a,b),l(this,a,b)},setStartAndEnd:function(){r(this);var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:h(!0,!0),setStartAfter:h(!1,!0),setEndBefore:h(!0,!1),setEndAfter:h(!1,!1),collapse:function(a){A(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(this),q(a,!0),f(this,a,0,a,V(a))},selectNode:function(a){r(this),q(a,!1),s(a,Z);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:E(k,f),deleteContents:E(j,f),canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},detach:function(){g(this)},splitBoundaries:function(){B(this)},splitBoundariesPreservingPositions:function(a){B(this,a)},normalizeBoundaries:function(){A(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=P(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(O(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&O(i)&&e(i)}h=!this.collapsed}if(h){if(O(a))0==b&&g(a);else if(bx",gb=3==fb.firstChild.nodeType}catch(hb){}a.features.htmlParsingConforms=gb;var ib=gb?function(a){var b=this.startContainer,c=R(b);if(!b)throw new N("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:O(b)&&(d=K.parentElement(b)),d=null===d||"HTML"==d.nodeName&&K.isHtmlNamespace(R(d).documentElement)&&K.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,K.fragmentFromNodeChildren(d)}:function(a){r(this);var b=c(this),d=b.createElement("body");return d.innerHTML=a,K.fragmentFromNodeChildren(d)},jb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],kb=0,lb=1,mb=2,nb=3,ob=0,pb=1,qb=2,rb=3;L.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){A(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==nb||a==kb?"start":"end",h=a==lb||a==kb?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],S(c,d,e,f)},insertNode:function(a){if(A(this),s(a,ab),v(this.startContainer),Q(a,this.startContainer))throw new N("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){A(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&O(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(s(a,bb),!this.canSurroundContents())throw new o("BAD_BOUNDARYPOINTS_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){A(this);for(var a,b=new J(c(this)),d=jb.length;d--;)a=jb[d],b[a]=this[a];return b},toString:function(){A(this);var a=this.startContainer;if(a===this.endContainer&&O(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){A(this);var b=a.parentNode,c=P(a);if(!b)throw new N("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qb:ob:e>0?pb:rb},comparePoint:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)<0?-1:S(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ib,toHtml:function(){A(this);var a=this.commonAncestorContainer.parentNode.cloneNode(!1);return a.appendChild(this.cloneContents()),a.innerHTML},intersectsNode:function(a,b){if(A(this),w(a,"NOT_FOUND_ERR"),R(a)!==c(this))return!1;var d=a.parentNode,e=P(a);w(d,"NOT_FOUND_ERR");var f=S(d,e,this.endContainer,this.endOffset),g=S(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)>=0&&S(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=S(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=S(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==S(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==S(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new o("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==rb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,V(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();b.setEnd(d,d.length);var e=this.containsRange(b);return b.detach(),e}return this.containsNodeContents(a)},getNodes:function(a,b){return A(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){r(this),this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){r(this),this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||K.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length,e.detach()),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return J.rangesEqual(this,a)},isValid:function(){return z(this)},inspect:function(){return m(this)}}),F(J,H,I),L.extend(J,{rangeProperties:jb,RangeIterator:n,copyComparisonConstants:D,createPrototypeRange:F,inspect:m,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=J,a.RangeException=o}),rangy.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=n.length;c--;)b=n[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}function k(a){a.nativeRange.detach(),a.detached=!0;for(var b=n.length;b--;)a[n[b]]=null}var l,m,n=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g,k),l=c.prototype,l.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},l.cloneContents=function(){return this.nativeRange.cloneContents()},l.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},l.collapse=function(a){this.nativeRange.collapse(a),d(this)},l.cloneRange=function(){return new c(this.nativeRange.cloneRange())},l.refresh=function(){d(this)},l.toString=function(){return this.nativeRange.toString()};var o=document.createTextNode("test");i(document).appendChild(o);var p=document.createRange();p.setStart(o,0),p.setEnd(o,0);try{p.setStart(o,1),l.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},l.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},m=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(q){l.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},l.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},m=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}l.setStartBefore=m("setStartBefore","setEndBefore"),l.setStartAfter=m("setStartAfter","setEndAfter"),l.setEndBefore=m("setEndBefore","setStartBefore"),l.setEndAfter=m("setEndAfter","setStartAfter"),l.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},p.selectNodeContents(o),p.setEnd(o,3);var r=document.createRange();r.selectNodeContents(o),r.setEnd(o,4),r.setStart(o,2),l.compareBoundaryPoints=-1==p.compareBoundaryPoints(p.START_TO_END,r)&&1==p.compareBoundaryPoints(p.END_TO_START,r)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var s=document.createElement("div");s.innerHTML="123";var t=s.firstChild,u=i(document);u.appendChild(s),p.setStart(t,1),p.setEnd(t,2),p.deleteContents(),"13"==t.data&&(l.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},l.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),u.removeChild(s),u=null,f.isHostMethod(p,"createContextualFragment")&&(l.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(o),p.detach(),r.detach(),l.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}
},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode(" ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=l.cloneRange();l.setStart(k,0),m.setEnd(k,3),m.setStart(k,2),b.addRange(l),b.addRange(m),X=2==b.rangeCount,m.detach()}for(i.removeChild(j),b.removeAllRanges(),l.detach(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;if(X?e=this.rangeCount:(this.removeAllRanges(),e=0),this.nativeSelection.addRange(k(b).cloneRange()),this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var f=ab(this.nativeSelection,this.rangeCount-1);f&&!N(f,b)&&(b=new G(f))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){return this.callMethodOnEachRange("toHtml").join("")},db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addCreateMissingNativeApiListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})}),rangy.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),f.detach(),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})});var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;afoo";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:e,insertUnorderedList:e||g,insertOrderedList:e||g},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return e},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||e||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=d.cloneNode(!1);return c.innerHTML="",b=c.innerHTML.toLowerCase(),a=""===b||"
"===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=c.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return e&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return e},hasProblemsSettingCaretAfterImg:function(){return e},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return e},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e"]/g,d={"&":"&","<":"<",">":">",'"':"""};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(){return e.replace(c,function(a){return d[a]})}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return console.log(b),void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(b,c,d,e){return a.dom.observe(b,d,function(d){for(var f=d.target,g=a.lang.array(b.querySelectorAll(c));f&&f!==b;){if(g.contains(f)){e.call(f,d);break}f=f.parentNode}})}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){function a(a,b){return b&&b.length?"string"==typeof b?a===b:wysihtml5.lang.array(b).contains(a):!0}function b(a){return a.nodeType===wysihtml5.ELEMENT_NODE}function c(a,b,c){var d=(a.className||"").match(c)||[];return b?d[d.length-1]===b:!!d.length}function d(a,b,c){var d=(a.getAttribute("style")||"").match(c)||[];return b?d[d.length-1]===b:!!d.length}return function(e,f,g,h){var i=f.cssStyle||f.styleRegExp,j=f.className||f.classRegExp;for(g=g||50;g--&&e&&"BODY"!==e.nodeName&&(!h||e!==h);){if(b(e)&&a(e.nodeName,f.nodeName)&&(!i||d(e,f.cssStyle,f.styleRegExp))&&(!j||c(e,f.className,f.classRegExp)))return e;e=e.parentNode}return null}}(),wysihtml5.dom.getNextElement=function(a){for(var b=a.nextSibling;b&&1!=b.nodeType;)b=b.nextSibling;return b},wysihtml5.dom.getPreviousElement=function(a){for(var b=a.previousSibling;b&&1!=b.nodeType;)b=b.previousSibling;return b},wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a){var b=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b.push(a):b=b.concat(wysihtml5.dom.getTextNodes(a));return b},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)
}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(){function a(a,c){wysihtml5.lang.object(o).merge(n).merge(c.rules).get();var d,e,f,g=c.context||a.ownerDocument||document,h=g.createDocumentFragment(),i="string"==typeof a;for(c.uneditableClass&&(p=c.uneditableClass),d=i?wysihtml5.dom.getAsDom(a,g):a;d.firstChild;)f=d.firstChild,e=b(f,c.cleanUp),d.removeChild(f),e&&h.appendChild(e);return d.innerHTML="",d.appendChild(h),i?wysihtml5.quirks.getCorrectInnerHTML(d):d}function b(a,c){var d,e,f,g=a.nodeType,h=a.childNodes,i=h.length,j=k[g],m=0;if(p&&1===g&&wysihtml5.dom.hasClass(a,p))return a;if(e=j&&j(a),!e){if(e===!1){for(d=a.ownerDocument.createDocumentFragment(),m=i;m--;)f=b(h[m],c),f&&d.insertBefore(f,d.firstChild);return wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||d.appendChild(a.ownerDocument.createTextNode(" "))),d.normalize&&d.normalize(),d}return null}for(m=0;i>m;m++)f=b(h[m],c),f&&e.appendChild(f);if(c&&e.nodeName.toLowerCase()===l&&(!e.childNodes.length||/^\s*$/gi.test(e.innerHTML)&&"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className||!e.attributes.length)){for(d=e.ownerDocument.createDocumentFragment();e.firstChild;)d.appendChild(e.firstChild);return d.normalize&&d.normalize(),d}return e.normalize&&e.normalize(),e}function c(a){var b,c,e=o.tags,h=a.nodeName.toLowerCase(),i=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(i&&"HTML"!=i&&(h=i+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in e){if(b=e[h],!b||b.remove)return null;if(b.unwrap)return!1;b="string"==typeof b?{rename_tag:b}:b}else{if(!a.firstChild)return null;b={rename_tag:l}}return c=a.ownerDocument.createElement(b.rename_tag||h),g(a,c,b),f(a,c,b),b.one_of_type&&!d(a,o,b.one_of_type)?b.remove_action&&"unwrap"==b.remove_action?!1:null:(a=null,c.normalize&&c.normalize(),c)}function d(a,b,c){var d,f;if("SPAN"===a.nodeName&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(d=b.type_definitions[f],e(a,d)))return!0;return!1}function e(a,b){var c,d,e,f,g,i=a.getAttribute("class"),j=a.getAttribute("style");if(b.methods)for(var k in b.methods)if(b.methods.hasOwnProperty(k)&&v[k]&&v[k](a))return!0;if(i&&b.classes){i=i.replace(/^\s+/g,"").replace(/\s+$/g,"").split(m),c=i.length;for(var l=0;c>l;l++)if(b.classes[i[l]])return!0}if(j&&b.styles){j=j.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var n=j.length;n--;)if(g=j[n].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=h(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function f(a,b,c){var d;if(c&&c.keep_styles)for(d in c.keep_styles)c.keep_styles.hasOwnProperty(d)&&("float"==d?(a.style.styleFloat&&(b.style.styleFloat=a.style.styleFloat),a.style.cssFloat&&(b.style.cssFloat=a.style.cssFloat)):a.style[d]&&(b.style[d]=a.style[d]))}function g(a,b,c){var d,e,f,g,i,j,k={},l=c.set_class,n=c.add_class,p=c.add_style,q=c.set_attributes,r=c.check_attributes,v=o.classes,w=0,x=[],y=[],z=[],A=[];if(q&&(k=wysihtml5.lang.object(q).clone()),r)for(g in r)j=s[r[g]],j&&(oldAttribute=h(a,g),(oldAttribute||"alt"===g&&"IMG"==a.nodeName)&&(i=j(oldAttribute),"string"==typeof i&&(k[g]=i)));if(l&&x.push(l),n)for(g in n)j=u[n[g]],j&&(f=j(h(a,g)),"string"==typeof f&&x.push(f));if(p)for(g in p)j=t[p[g]],j&&(newStyle=j(h(a,g)),"string"==typeof newStyle&&y.push(newStyle));if("string"==typeof v&&"any"===v&&a.getAttribute("class"))k["class"]=a.getAttribute("class");else{for(v["_wysihtml5-temp-placeholder"]=1,v._rangySelectionBoundary=1,A=a.getAttribute("class"),A&&(x=x.concat(A.split(m))),d=x.length;d>w;w++)e=x[w],v[e]&&z.push(e);z.length&&(k["class"]=wysihtml5.lang.array(z).unique().join(" "))}y.length&&(k.style=wysihtml5.lang.array(y).unique().join(" "));for(g in k)try{b.setAttribute(g,k[g])}catch(B){}k.src&&("undefined"!=typeof k.width&&b.setAttribute("width",k.width),"undefined"!=typeof k.height&&b.setAttribute("height",k.height))}function h(a,b){b=b.toLowerCase();var c=a.nodeName;if("IMG"==c&&"src"==b&&i(a)===!0)return a.src;if(q&&"outerHTML"in a){var d=a.outerHTML.toLowerCase(),e=-1!=d.indexOf(" "+b+"=");return e?a.getAttribute(b):null}return a.getAttribute(b)}function i(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}}function j(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(r,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(r,"")+b.data.replace(r,"")}var k={1:c,3:j},l="span",m=/\s+/,n={tags:{},classes:{}},o={},p=!1,q=!wysihtml5.browser.supportsGetAttributeCorrectly(),r=/\uFEFF/g,s={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),any:function(){return function(a){return a}}()},t={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},u={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},v={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()};return a}(),wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=a.previousElementSibling||a.previousSibling;if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!=a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.getWindow=function(){return a.ownerDocument.defaultView},this.getDocument=function(){return a.ownerDocument},this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){c.hasPlaceholderSet()&&c.clear(),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&_isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{nodeName:["TABLE"]})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{nodeName:["TR"]})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{nodeName:["TR"]})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{nodeName:["TR"]}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{nodeName:["TR"]});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{nodeName:["TR"]});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{nodeName:["TR"]}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.quirks.cleanPastedHTML=function(){function a(a,c,d){c=c||b,d=d||a.ownerDocument||document;var e,f,g,h,i,j,k="string"==typeof a,l=0;e=k?wysihtml5.dom.getAsDom(a,d):a;for(i in c)for(g=e.querySelectorAll(i),f=c[i],h=g.length;h>l;l++)f(g[l]);var m=wysihtml5.dom.getTextNodes(e);for(j=m.length;j--;)m[j].nodeValue=m[j].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return g=a=c=null,k?e.innerHTML:e}var b={"a u":wysihtml5.dom.replaceWithChildNodes};return a}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return k.observe(a,"mousedown",function(a){var b=wysihtml5.dom.getParentElement(a.target,{nodeName:["TD","TH"]});b&&d(b)}),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{nodeName:["TABLE"]}),l.table&&(e(),k.addClass(c,m),n=k.observe(a,"mousemove",g),o=k.observe(a,"mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){n.stop(),o.stop(),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){var c=k.observe(a.ownerDocument,"click",function(a){c.stop(),k.getParentElement(a.target,{nodeName:["TABLE"]})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))})}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{nodeName:["TABLE"]}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=null,o=null;return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},setAfter:function(a){var b=rangy.createRange(this.doc);return b.setStartAfter(a),b.setEndAfter(a),this.setSelection(b)},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){for(var a=this.getOwnRanges(),b=a.length;b--;)a[b].deleteContents();this.setSelection(a[0])},getPreviousNode:function(b,c){if(!b){var d=this.getSelection();b=d.anchorNode}if(b===this.contain)return!1;var e,f=b.previousSibling;return f===this.contain?!1:(f&&3!==f.nodeType&&1!==f.nodeType?f=this.getPreviousNode(f,c):f&&3===f.nodeType&&/^\s*$/.test(f.textContent)?f=this.getPreviousNode(f,c):c&&f&&1===f.nodeType&&!a.lang.array(["BR","HR","IMG"]).contains(f.nodeName)&&/^[\s]*$/.test(f.innerHTML)?f=this.getPreviousNode(f,c):f||b===this.contain||(e=b.parentNode,e!==this.contain&&(f=this.getPreviousNode(e,c))),f!==this.contain?f:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{nodeName:["LI"]},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var a=rangy.createRange(this.doc),b=this.getSelection();return a.selectNodeContents(this.getRange().commonAncestorContainer),a.collapse(!0),this.isCollapsed()&&(a.startContainer===b.anchorNode||a.endContainer===b.anchorNode)&&a.startOffset===b.anchorOffset},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,b,1)):0===e&&!this.getPreviousNode(d,!0)},caretIsBeforeUneditable:function(){var a=this.getSelection(),b=a.anchorNode,c=a.anchorOffset;if(0===c){var d=this.getPreviousNode(b,!0);if(d)for(var e=this.getOwnUneditables(),f=0,g=e.length;g>f;f++)if(d===e[f])return e[f]}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b=rangy.createRange(this.doc),c=b.createContextualFragment(a),d=c.lastChild;this.insertNode(c),d&&this.setAfter(d)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b.nodeName,b.className),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes([a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){return position=e.compareDocumentPosition(a.startContainer,a.endContainer),0==a.endOffset&&4&position},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a)},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function k(a,b){return a.className.replace(s," ")==b.className.replace(s," ")}function l(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.normalize&&b.normalize(),b.removeChild(a)}function m(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function n(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},q.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new p(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new p(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&k(a,c)&&m(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&n(b.endContainer,b.endOffset)&&(o(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&n(b.startContainer,b.startOffset)&&(f=o(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===j(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&l(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getAncestorWithClass(g)||this.applyToTextNode(g),this.getAncestorWithStyle(g)||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f,g=b.length;g--;){if(c=b[g].getNodes([a.TEXT_NODE]),c.length)b[g].splitBoundaries(),c=b[g].getNodes([a.TEXT_NODE]);else{var h=b[g].endContainer.ownerDocument,i=h.createTextNode(a.INVISIBLE_SPACE);b[g].insertNode(i),b[g].selectNode(i),c=[i]}for(var j=0,k=c.length;k>j;++j)b[g].isValid()&&(d=c[j],e=this.getAncestorWithClass(d),f=this.getAncestorWithStyle(d),e?this.undoToTextNode(d,b[g],e):f&&this.undoToTextNode(d,b[g],!1,f));1==k?this.selectNode(b[g],c[0]):(b[g].setStart(c[0],0),d=c[c.length-1],b[g].setEnd(d,d.length),this.normalize&&this.postApply(c,b[g]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f=b.length;f--;){if(d=b[f].getNodes([a.TEXT_NODE]),!d.length)return c=this.getAncestorWithClass(b[f].startContainer),c||(c=this.getAncestorWithStyle(b[f].startContainer)),c?[c]:!1;for(var g,h=0,i=d.length;i>h;++h)g=this.getTextSelectedByRange(d[h],b[f]),c=this.getAncestorWithClass(d[h]),c||(c=this.getAncestorWithStyle(d[h])),c&&""!=g&&e.push(c)}return e.length?e:!1},toggleRange:function(a){this.isAppliedToRange(a)?this.undoToRange(a):this.applyToRange(a)}},a.selection.HTMLApplier=q}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(a,d,e){var f=this.state(a,d);f?a.selection.executeAndRestore(function(){c(a,f,e)}):(e="object"==typeof e?e:{href:e},b(a,e))},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){function b(a,b){for(var d,e,f,g=b.length,h=0;g>h;h++)d=b[h],e=c.getParentElement(d,{nodeName:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b,c,e){b.className?(d(b,e),b.className=a.lang.string(b.className+" "+c).trim()):b.className=c}function c(b,c,d){e(b,d),b.getAttribute("style")?b.setAttribute("style",a.lang.string(b.getAttribute("style")+" "+c).trim()):b.setAttribute("style",c)}function d(b,c){var d=c.test(b.className);return b.className=b.className.replace(c,""),""==a.lang.string(b.className).trim()&&b.removeAttribute("class"),d}function e(b,c){var d=c.test(b.getAttribute("style"));return b.setAttribute("style",(b.getAttribute("style")||"").replace(c,"")),""==a.lang.string(b.getAttribute("style")||"").trim()&&b.removeAttribute("style"),d}function f(b){return b.nodeType===a.TEXT_NODE&&!a.lang.string(b.data).trim()}function g(a){for(var b=a.previousSibling;b&&f(b);)b=b.previousSibling;return b}function h(a){for(var b=a.nextSibling;b&&f(b);)b=b.nextSibling;return b}function i(a){var b=a.ownerDocument,c=h(a),d=g(a);c&&!m(c)&&a.parentNode.insertBefore(b.createElement("br"),c),d&&!m(d)&&a.parentNode.insertBefore(b.createElement("br"),a)}function j(a){var b=h(a),c=g(a);b&&l(b)&&b.parentNode.removeChild(b),c&&l(c)&&c.parentNode.removeChild(c)}function k(a){var b=a.lastChild;b&&l(b)&&b.parentNode.removeChild(b)}function l(a){return"BR"===a.nodeName}function m(a){return l(a)?!0:"block"===q.getStyle("display").from(a)?!0:!1}function n(a,b){a.selection.isCollapsed()&&a.selection.selectLine();for(var c=a.selection.surround(b),d=0,e=c.length;e>d;d++)j(c[d]),k(c[d])}function o(b){return!!a.lang.string(b.className).trim()}function p(b){return!!a.lang.string(b.getAttribute("style")||"").trim()}var q=a.dom,r=["H1","H2","H3","H4","H5","H6","P","PRE","BLOCKQUOTE","DIV"];a.commands.formatBlock={exec:function(f,g,h,j,k,l,m){var s,t,u,v,w=(f.doc,this.state(f,g,h,j,k,l,m)),x=f.config.useLineBreaks,y=x?"DIV":"P";return h="string"==typeof h?h.toUpperCase():h,w.length?void f.selection.executeAndRestoreRangy(function(){for(var a=w.length;a--;){if(k&&(t=d(w[a],k)),m&&(v=e(w[a],m)),(v||t)&&null===h&&w[a].nodeName!=y)return;var b=o(w[a]),c=p(w[a]);b||c||!x&&"P"!==h?q.renameElement(w[a],"P"===h?"DIV":y):(i(w[a]),q.replaceWithChildNodes(w[a]))}}):void((null!==h&&!a.lang.array(r).contains(h)||(s=f.selection.findNodesInSelection(r).concat(f.selection.getSelectedOwnNodes()),f.selection.executeAndRestoreRangy(function(){for(var a=s.length;a--;)blockElement=q.getParentElement(s[a],{nodeName:r}),blockElement==f.element&&(blockElement=null),blockElement&&(h&&(blockElement=q.renameElement(blockElement,h)),j&&b(blockElement,j,k),l&&c(blockElement,l,m),u=!0)}),!u))&&n(f,{nodeName:h||y,className:j||null,cssStyle:l||null}))},state:function(b,c,d,e,f,g,h){var i,j=b.selection.getSelectedOwnNodes(),k=[];d="string"==typeof d?d.toUpperCase():d;for(var l=0,m=j.length;m>l;l++)i=q.getParentElement(j[l],{nodeName:d,className:e,classRegExp:f,cssStyle:g,styleRegExp:h}),i&&-1==a.lang.array(k).indexOf(i)&&k.push(i);return 0==k.length?!1:k}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{nodeName:"CODE"})&&wysihtml5.dom.getParentElement(b,{nodeName:"PRE"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange();return ownRanges=a.selection.getOwnRanges(),ownRanges&&0!=ownRanges.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(ownRanges),void(i?j||a.cleanUp():(k.setStart(ownRanges[0].startContainer,ownRanges[0].startOffset),k.setEnd(ownRanges[ownRanges.length-1].endContainer,ownRanges[ownRanges.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l=b.doc,m=d[f]||f;return a.dom.hasElementWithTagName(l,f)||a.dom.hasElementWithTagName(l,m)?g&&!a.dom.hasElementWithClassName(l,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?c(f,g,h,i,j,b.element).isAppliedToRange(k):!1):!1}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);i=h.createElement(b);for(var j in e)i.setAttribute("className"===j?"class":j,e[j]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)
+g&&l.table&&l.start&&(d=k.getParentElement(g,{nodeName:["TABLE"]}),d&&d===l.table&&(e(),c=l.end,l.end=g,l.cells=k.table.getCellsBetween(l.start,g),l.cells.length>1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){n.stop(),o.stop(),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){var c=k.observe(a.ownerDocument,"click",function(a){c.stop(),k.getParentElement(a.target,{nodeName:["TABLE"]})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))})}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{nodeName:["TABLE"]}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=null,o=null;return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},setAfter:function(a){var b=rangy.createRange(this.doc);return b.setStartAfter(a),b.setEndAfter(a),this.setSelection(b)},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){for(var a=this.getOwnRanges(),b=a.length;b--;)a[b].deleteContents();this.setSelection(a[0])},getPreviousNode:function(b,c){if(!b){var d=this.getSelection();b=d.anchorNode}if(b===this.contain)return!1;var e,f=b.previousSibling;return f===this.contain?!1:(f&&3!==f.nodeType&&1!==f.nodeType?f=this.getPreviousNode(f,c):f&&3===f.nodeType&&/^\s*$/.test(f.textContent)?f=this.getPreviousNode(f,c):c&&f&&1===f.nodeType&&!a.lang.array(["BR","HR","IMG"]).contains(f.nodeName)&&/^[\s]*$/.test(f.innerHTML)?f=this.getPreviousNode(f,c):f||b===this.contain||(e=b.parentNode,e!==this.contain&&(f=this.getPreviousNode(e,c))),f!==this.contain?f:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{nodeName:["LI"]},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var a=rangy.createRange(this.doc),b=this.getSelection();return a.selectNodeContents(this.getRange().commonAncestorContainer),a.collapse(!0),this.isCollapsed()&&(a.startContainer===b.anchorNode||a.endContainer===b.anchorNode)&&a.startOffset===b.anchorOffset},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{nodeName:b},1)):0===e&&!this.getPreviousNode(d,!0)},caretIsBeforeUneditable:function(){var a=this.getSelection(),b=a.anchorNode,c=a.anchorOffset;if(0===c){var d=this.getPreviousNode(b,!0);if(d)for(var e=this.getOwnUneditables(),f=0,g=e.length;g>f;f++)if(d===e[f])return e[f]}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b=rangy.createRange(this.doc),c=b.createContextualFragment(a),d=c.lastChild;this.insertNode(c),d&&this.setAfter(d)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b.nodeName,b.className),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes([a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){return position=e.compareDocumentPosition(a.startContainer,a.endContainer),0==a.endOffset&&4&position},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a)},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function k(a,b){return a.className.replace(s," ")==b.className.replace(s," ")}function l(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.normalize&&b.normalize(),b.removeChild(a)}function m(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function n(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},q.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new p(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new p(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&k(a,c)&&m(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&n(b.endContainer,b.endOffset)&&(o(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&n(b.startContainer,b.startOffset)&&(f=o(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===j(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&l(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getAncestorWithClass(g)||this.applyToTextNode(g),this.getAncestorWithStyle(g)||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f,g=b.length;g--;){if(c=b[g].getNodes([a.TEXT_NODE]),c.length)b[g].splitBoundaries(),c=b[g].getNodes([a.TEXT_NODE]);else{var h=b[g].endContainer.ownerDocument,i=h.createTextNode(a.INVISIBLE_SPACE);b[g].insertNode(i),b[g].selectNode(i),c=[i]}for(var j=0,k=c.length;k>j;++j)b[g].isValid()&&(d=c[j],e=this.getAncestorWithClass(d),f=this.getAncestorWithStyle(d),e?this.undoToTextNode(d,b[g],e):f&&this.undoToTextNode(d,b[g],!1,f));1==k?this.selectNode(b[g],c[0]):(b[g].setStart(c[0],0),d=c[c.length-1],b[g].setEnd(d,d.length),this.normalize&&this.postApply(c,b[g]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f=b.length;f--;){if(d=b[f].getNodes([a.TEXT_NODE]),!d.length)return c=this.getAncestorWithClass(b[f].startContainer),c||(c=this.getAncestorWithStyle(b[f].startContainer)),c?[c]:!1;for(var g,h=0,i=d.length;i>h;++h)g=this.getTextSelectedByRange(d[h],b[f]),c=this.getAncestorWithClass(d[h]),c||(c=this.getAncestorWithStyle(d[h])),c&&""!=g&&e.push(c)}return e.length?e:!1},toggleRange:function(a){this.isAppliedToRange(a)?this.undoToRange(a):this.applyToRange(a)}},a.selection.HTMLApplier=q}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(a,d,e){var f=this.state(a,d);f?a.selection.executeAndRestore(function(){c(a,f,e)}):(e="object"==typeof e?e:{href:e},b(a,e))},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){function b(a,b){for(var d,e,f,g=b.length,h=0;g>h;h++)d=b[h],e=c.getParentElement(d,{nodeName:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b,c,e){b.className?(d(b,e),b.className=a.lang.string(b.className+" "+c).trim()):b.className=c}function c(b,c,d){e(b,d),b.getAttribute("style")?b.setAttribute("style",a.lang.string(b.getAttribute("style")+" "+c).trim()):b.setAttribute("style",c)}function d(b,c){var d=c.test(b.className);return b.className=b.className.replace(c,""),""==a.lang.string(b.className).trim()&&b.removeAttribute("class"),d}function e(b,c){var d=c.test(b.getAttribute("style"));return b.setAttribute("style",(b.getAttribute("style")||"").replace(c,"")),""==a.lang.string(b.getAttribute("style")||"").trim()&&b.removeAttribute("style"),d}function f(b){return b.nodeType===a.TEXT_NODE&&!a.lang.string(b.data).trim()}function g(a){for(var b=a.previousSibling;b&&f(b);)b=b.previousSibling;return b}function h(a){for(var b=a.nextSibling;b&&f(b);)b=b.nextSibling;return b}function i(a){var b=a.ownerDocument,c=h(a),d=g(a);c&&!m(c)&&a.parentNode.insertBefore(b.createElement("br"),c),d&&!m(d)&&a.parentNode.insertBefore(b.createElement("br"),a)}function j(a){var b=h(a),c=g(a);b&&l(b)&&b.parentNode.removeChild(b),c&&l(c)&&c.parentNode.removeChild(c)}function k(a){var b=a.lastChild;b&&l(b)&&b.parentNode.removeChild(b)}function l(a){return"BR"===a.nodeName}function m(a){return l(a)?!0:"block"===q.getStyle("display").from(a)?!0:!1}function n(a,b){a.selection.isCollapsed()&&a.selection.selectLine();for(var c=a.selection.surround(b),d=0,e=c.length;e>d;d++)j(c[d]),k(c[d])}function o(b){return!!a.lang.string(b.className).trim()}function p(b){return!!a.lang.string(b.getAttribute("style")||"").trim()}var q=a.dom,r=["H1","H2","H3","H4","H5","H6","P","PRE","BLOCKQUOTE","DIV"];a.commands.formatBlock={exec:function(f,g,h,j,k,l,m){var s,t,u,v,w=(f.doc,this.state(f,g,h,j,k,l,m)),x=f.config.useLineBreaks,y=x?"DIV":"P";return h="string"==typeof h?h.toUpperCase():h,w.length?void f.selection.executeAndRestoreRangy(function(){for(var a=w.length;a--;){if(k&&(t=d(w[a],k)),m&&(v=e(w[a],m)),(v||t)&&null===h&&w[a].nodeName!=y)return;var b=o(w[a]),c=p(w[a]);b||c||!x&&"P"!==h?q.renameElement(w[a],"P"===h?"DIV":y):(i(w[a]),q.replaceWithChildNodes(w[a]))}}):void((null!==h&&!a.lang.array(r).contains(h)||(s=f.selection.findNodesInSelection(r).concat(f.selection.getSelectedOwnNodes()),f.selection.executeAndRestoreRangy(function(){for(var a=s.length;a--;)blockElement=q.getParentElement(s[a],{nodeName:r}),blockElement==f.element&&(blockElement=null),blockElement&&(h&&(blockElement=q.renameElement(blockElement,h)),j&&b(blockElement,j,k),l&&c(blockElement,l,m),u=!0)}),!u))&&n(f,{nodeName:h||y,className:j||null,cssStyle:l||null}))},state:function(b,c,d,e,f,g,h){var i,j=b.selection.getSelectedOwnNodes(),k=[];d="string"==typeof d?d.toUpperCase():d;for(var l=0,m=j.length;m>l;l++)i=q.getParentElement(j[l],{nodeName:d,className:e,classRegExp:f,cssStyle:g,styleRegExp:h}),i&&-1==a.lang.array(k).indexOf(i)&&k.push(i);return 0==k.length?!1:k}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{nodeName:"CODE"})&&wysihtml5.dom.getParentElement(b,{nodeName:"PRE"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange();return ownRanges=a.selection.getOwnRanges(),ownRanges&&0!=ownRanges.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(ownRanges),void(i?j||a.cleanUp():(k.setStart(ownRanges[0].startContainer,ownRanges[0].startOffset),k.setEnd(ownRanges[ownRanges.length-1].endContainer,ownRanges[ownRanges.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l=b.doc,m=d[f]||f;return a.dom.hasElementWithTagName(l,f)||a.dom.hasElementWithTagName(l,m)?g&&!a.dom.hasElementWithClassName(l,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?c(f,g,h,i,j,b.element).isAppliedToRange(k):!1):!1}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);i=h.createElement(b);for(var j in e)i.setAttribute("className"===j?"class":j,e[j]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)
},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),wysihtml5.commands.insertOrderedList={exec:function(a,b){var c,d,e=a.doc,f=a.selection.getSelectedNode(),g=wysihtml5.dom.getParentElement(f,{nodeName:"OL"}),h=wysihtml5.dom.getParentElement(f,{nodeName:"UL"}),i="_wysihtml5-temp-"+(new Date).getTime();return g&&!a.element.contains(g)&&(g=null),h&&!a.element.contains(h)&&(h=null),g||h||!a.commands.support(b)?void(g?a.selection.executeAndRestore(function(){wysihtml5.dom.resolveList(g,a.config.useLineBreaks)}):h?a.selection.executeAndRestore(function(){wysihtml5.dom.renameElement(h,"ol")}):a.selection.executeAndRestoreRangy(function(){d=a.selection.deblockAndSurround({nodeName:"div",className:i});var b=/\uFEFF/g;d.innerHTML=d.innerHTML.replace(b,""),d&&(c=""===d.innerHTML||d.innerHTML===wysihtml5.INVISIBLE_SPACE||"
"===d.innerHTML,g=wysihtml5.dom.convertToList(d,"ol",a.parent.config.uneditableContainerClassname),c&&a.selection.selectNode(g.querySelector("li"),!0))})):void e.execCommand(b,!1,null)},state:function(a){var b=a.selection.getSelectedNode(),c=wysihtml5.dom.getParentElement(b,{nodeName:"OL"});return a.element.contains(c)?c:!1}},wysihtml5.commands.insertUnorderedList={exec:function(a,b){var c,d,e=a.doc,f=a.selection.getSelectedNode(),g=wysihtml5.dom.getParentElement(f,{nodeName:"UL"}),h=wysihtml5.dom.getParentElement(f,{nodeName:"OL"}),i="_wysihtml5-temp-"+(new Date).getTime();return g&&!a.element.contains(g)&&(g=null),h&&!a.element.contains(h)&&(h=null),g||h||!a.commands.support(b)?void(g?a.selection.executeAndRestore(function(){wysihtml5.dom.resolveList(g,a.config.useLineBreaks)}):h?a.selection.executeAndRestore(function(){wysihtml5.dom.renameElement(h,"ul")}):a.selection.executeAndRestoreRangy(function(){d=a.selection.deblockAndSurround({nodeName:"div",className:i});var b=/\uFEFF/g;d.innerHTML=d.innerHTML.replace(b,""),d&&(c=""===d.innerHTML||d.innerHTML===wysihtml5.INVISIBLE_SPACE||"
"===d.innerHTML,g=wysihtml5.dom.convertToList(d,"ul",a.parent.config.uneditableContainerClassname),c&&a.selection.selectNode(g.querySelector("li"),!0))})):void e.execCommand(b,!1,null)},state:function(a){var b=a.selection.getSelectedNode(),c=wysihtml5.dom.getParentElement(b,{nodeName:"UL"});return a.element.contains(c)?c:!1}},wysihtml5.commands.italic={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"i")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"i")}},function(a){var b="wysiwyg-text-align-center",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyCenter={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="wysiwyg-text-align-left",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyLeft={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="wysiwyg-text-align-right",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyRight={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="wysiwyg-text-align-justify",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyFull={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="text-align: right;",c=/(\s|^)text-align\s*:\s*[^;\s]+;?/gi;a.commands.alignRightStyle={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,null,null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,null,null,b,c)}}}(wysihtml5),function(a){var b="text-align: left;",c=/(\s|^)text-align\s*:\s*[^;\s]+;?/gi;a.commands.alignLeftStyle={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,null,null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,null,null,b,c)}}}(wysihtml5),function(a){var b="text-align: center;",c=/(\s|^)text-align\s*:\s*[^;\s]+;?/gi;a.commands.alignCenterStyle={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,null,null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,null,null,b,c)}}}(wysihtml5),wysihtml5.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}},wysihtml5.commands.underline={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"u")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"u")}},wysihtml5.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}},wysihtml5.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}},wysihtml5.commands.mergeTableCells={exec:function(a,b){a.tableSelection&&a.tableSelection.start&&a.tableSelection.end&&(this.state(a,b)?wysihtml5.dom.table.unmergeCell(a.tableSelection.start):wysihtml5.dom.table.mergeCellsBetween(a.tableSelection.start,a.tableSelection.end))},state:function(a){if(a.tableSelection){var b=a.tableSelection.start,c=a.tableSelection.end;if(b&&c&&b==c&&(wysihtml5.dom.getAttribute(b,"colspan")&&parseInt(wysihtml5.dom.getAttribute(b,"colspan"),10)>1||wysihtml5.dom.getAttribute(b,"rowspan")&&parseInt(wysihtml5.dom.getAttribute(b,"rowspan"),10)>1))return[b]}return!1}},wysihtml5.commands.addTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end);"before"==c||"above"==c?wysihtml5.dom.table.addCells(d.start,c):("after"==c||"below"==c)&&wysihtml5.dom.table.addCells(d.end,c),setTimeout(function(){a.tableSelection.select(d.start,d.end)},0)}},state:function(){return!1}},wysihtml5.commands.deleteTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d,e=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end),f=wysihtml5.dom.table.indexOf(e.start),g=a.tableSelection.table;wysihtml5.dom.table.removeCells(e.start,c),setTimeout(function(){d=wysihtml5.dom.table.findCell(g,f),d||("row"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row-1,col:f.col})),"column"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row,col:f.col-1}))),d&&a.tableSelection.select(d,d)},0)}},state:function(){return!1}},wysihtml5.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(a,b){var c,d,e,f,g,h=!1;return b.executeAndRestoreRangy(function(){for(var b=a.length;b--;)f=a[b],c="OL"===f.parentNode.nodeName?"OL":"UL",d=f.ownerDocument.createElement(c),e=wysihtml5.dom.getPreviousElement(f),g=e?e.querySelector("ul, ol"):null,e&&(g?g.appendChild(f):(d.appendChild(f),e.appendChild(d)),h=!0)}),h}},wysihtml5.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(a,b){var c,d,e,f,g,h=!1,i=this;return b.selection.executeAndRestoreRangy(function(){for(var j=a.length;j--;)if(f=a[j],f.parentNode&&(c=f.parentNode,"OL"===c.tagName||"UL"===c.tagName)){if(h=!0,d=wysihtml5.dom.getParentElement(c.parentNode,{nodeName:["OL","UL"]},!1,b.element),e=wysihtml5.dom.getParentElement(c.parentNode,{nodeName:["LI"]},!1,b.element),d&&e)f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g)),d.insertBefore(f,e.nextSibling);else{f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g));for(var k=f.childNodes.length;k--;)c.parentNode.insertBefore(f.childNodes[k],c.nextSibling);c.parentNode.insertBefore(document.createElement("br"),c.nextSibling),f.parentNode.removeChild(f)}0===c.childNodes.length&&c.parentNode.removeChild(c)}}),h},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}},function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b=this.historyStr[this.position-1],c=this.composer.getValue();if(c!==b){var d=this.historyStr.length=this.historyDom.length=this.position;d>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++;var e,i,j=this.composer.selection.getRange(),k=j&&j.startContainer?j.startContainer:this.element,l=j&&j.startOffset?j.startOffset:0;k.nodeType===a.ELEMENT_NODE?e=k:(e=k.parentNode,i=this.getChildNodeIndex(e,k)),e.setAttribute(h,l),"undefined"!=typeof i&&e.setAttribute(g,i);var m=this.element.cloneNode(!!c);this.historyDom.push(m),this.historyStr.push(c),e.removeAttribute(h),e.removeAttribute(g)}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b){var c=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b&&(c=this.parent.parse(c)),c},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){this.parent.parse(this.element)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return""===a||"
"===a||""===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)&&d.selection.executeAndRestore(function(c,e){for(var f=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),g=!1,h=f.length;h--;)a.dom.contains(f[h],e)&&(g=!0);g||b.autoLink(e.parentNode,[d.config.uneditableContainerClassname])})}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{nodeName:"A"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{nodeName:["P","DIV"]},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f=["LI","P","H1","H2","H3","H4","H5","H6"],g=["UL","OL","MENU"];this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{nodeName:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{nodeName:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){var d=a.getPreviousNode(b,!0),e=a.getSelectedNode();if(1!==e.nodeType&&e.parentNode!==c&&(e=e.parentNode),d)if(1==e.nodeType){var f=e.firstChild;if(1==d.nodeType)for(;e.firstChild;)d.appendChild(e.firstChild);else for(;e.firstChild;)b.parentNode.insertBefore(e.firstChild,b);e.parentNode&&e.parentNode.removeChild(e),a.setBefore(f)}else 1==d.nodeType?d.appendChild(e):b.parentNode.insertBefore(e,b),a.setBefore(e)},f=function(a,b,c,d){if(b.isCollapsed())if(b.caretIsInTheBeginnig("LI"))a.preventDefault(),d.commands.exec("outdentList");else if(b.caretIsInTheBeginnig())a.preventDefault();else{var f=b.caretIsBeforeUneditable();f&&(a.preventDefault(),e(b,f,c))}else b.containsUneditable()&&(a.preventDefault(),b.deleteContents())},g=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("LI")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")};a.views.Composer.prototype.observe=function(){var e=this,h=this.getValue(),i=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),j=this.element,k=c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?j:this.sandbox.getWindow(),l=["drop","paste"],m=["drop","paste","mouseup","focus","keyup"];if(b.observe(i,"DOMNodeRemoved",function(){clearInterval(n),e.parent.fire("destroy:composer")}),!c.supportsMutationEvents())var n=setInterval(function(){b.contains(document.documentElement,i)||(clearInterval(n),e.parent.fire("destroy:composer"))},250);b.observe(k,m,function(){setTimeout(function(){e.parent.fire("interaction").fire("interaction:composer")},0)}),this.config.handleTables&&(this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&setTimeout(function(){e.doc.execCommand("enableObjectResizing",!1,"false"),e.doc.execCommand("enableInlineTableEditing",!1,"false")},0),this.tableSelection=a.quirks.tableCellsSelection(j,e.parent)),b.observe(k,"focus",function(){e.parent.fire("focus").fire("focus:composer"),setTimeout(function(){h=e.getValue()},0)}),b.observe(k,"blur",function(){h!==e.getValue()&&e.parent.fire("change").fire("change:composer"),e.parent.fire("blur").fire("blur:composer")}),b.observe(j,"dragenter",function(){e.parent.fire("unset_placeholder")}),b.observe(j,l,function(){setTimeout(function(){e.parent.fire("paste").fire("paste:composer")},0)}),b.observe(j,"keyup",function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&e.parent.fire("newword:composer")}),this.parent.on("paste:composer",function(){setTimeout(function(){e.parent.fire("newword:composer")},0)}),c.canSelectImagesInContentEditable()||b.observe(j,"mousedown",function(b){var c=b.target,d=j.querySelectorAll("img"),f=j.querySelectorAll("."+e.config.uneditableContainerClassname+" img"),g=a.lang.array(d).without(f);"IMG"===c.nodeName&&a.lang.array(g).contains(c)&&e.selection.selectNode(c)}),c.canSelectImagesInContentEditable()||b.observe(j,"drop",function(){setTimeout(function(){e.selection.getSelection().removeAllRanges()},0)}),c.hasHistoryIssue()&&c.supportsSelectionModify()&&b.observe(j,"keydown",function(a){if(a.metaKey||a.ctrlKey){var b=a.keyCode,c=j.ownerDocument.defaultView,d=c.getSelection();(37===b||39===b)&&(37===b&&(d.modify("extend","left","lineboundary"),a.shiftKey||d.collapseToStart()),39===b&&(d.modify("extend","right","lineboundary"),a.shiftKey||d.collapseToEnd()),a.preventDefault())}}),b.observe(j,"keydown",function(a){var b=a.keyCode,c=d[b];(a.ctrlKey||a.metaKey)&&!a.altKey&&c&&(e.commands.exec(c),a.preventDefault()),8===b?f(a,e.selection,j,e):e.config.handleTabKey&&9===b&&(a.preventDefault(),g(e,j))}),b.observe(j,"keydown",function(b){var c,d=e.selection.getSelectedNode(!0),f=b.keyCode;!d||"IMG"!==d.nodeName||f!==a.BACKSPACE_KEY&&f!==a.DELETE_KEY||(c=d.parentNode,c.removeChild(d),"A"!==c.nodeName||c.firstChild||c.parentNode.removeChild(c),setTimeout(function(){a.quirks.redraw(j)},0),b.preventDefault())}),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(b.observe(i,"focus",function(){setTimeout(function(){e.doc.querySelector(":focus")!==e.element&&e.focus()},0)}),b.observe(this.element,"blur",function(){setTimeout(function(){e.selection.getSelection().removeAllRanges()},0)}));var o={IMG:"Image: ",A:"Link: "};b.observe(j,"mouseover",function(a){var b,c=a.target,d=c.nodeName;if("A"===d||"IMG"===d){var e=c.hasAttribute("title");e||(b=o[d]+(c.getAttribute("href")||c.getAttribute("src")),c.setAttribute("title",b))}})}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue()).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue();b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container"};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))
},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a){return this.currentView.getValue(a)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b){var c=this.config.contentEditableMode?document:this.composer.sandbox.getDocument(),d=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:c,uneditableClass:this.config.uneditableContainerClassname});return"object"==typeof b&&a.quirks.redraw(b),d},_initParser:function(){this.on("paste:composer",function(){var b=!0,c=this;c.composer.selection.executeAndRestore(function(){a.quirks.cleanPastedHTML(c.composer.element),c.parse(c.composer.element)},b)})}})}(wysihtml5),function(a){var b=a.dom,c="wysihtml5-command-dialog-opened",d="input, select, textarea",e="[data-wysihtml5-dialog-field]",f="data-wysihtml5-dialog-field";a.toolbar.Dialog=a.lang.Dispatcher.extend({constructor:function(a,b){this.link=a,this.container=b},_observe:function(){if(!this._observed){var e=this,f=function(a){var b=e._serialize();b==e.elementToChange?e.fire("edit",b):e.fire("save",b),e.hide(),a.preventDefault(),a.stopPropagation()};b.observe(e.link,"click",function(){b.hasClass(e.link,c)&&setTimeout(function(){e.hide()},0)}),b.observe(this.container,"keydown",function(b){var c=b.keyCode;c===a.ENTER_KEY&&f(b),c===a.ESCAPE_KEY&&(e.fire("cancel"),e.hide())}),b.delegate(this.container,"[data-wysihtml5-dialog-action=save]","click",f),b.delegate(this.container,"[data-wysihtml5-dialog-action=cancel]","click",function(a){e.fire("cancel"),e.hide(),a.preventDefault(),a.stopPropagation()});for(var g=this.container.querySelectorAll(d),h=0,i=g.length,j=function(){clearInterval(e.interval)};i>h;h++)b.observe(g[h],"change",j);this._observed=!0}},_serialize:function(){for(var a=this.elementToChange||{},b=this.container.querySelectorAll(e),c=b.length,d=0;c>d;d++)a[b[d].getAttribute(f)]=b[d].value;return a},_interpolate:function(a){for(var b,c,d,g=document.querySelector(":focus"),h=this.container.querySelectorAll(e),i=h.length,j=0;i>j;j++)b=h[j],b!==g&&(a&&"hidden"===b.type||(c=b.getAttribute(f),d=this.elementToChange&&"boolean"!=typeof this.elementToChange?this.elementToChange.getAttribute(c)||"":b.defaultValue,b.value=d))},show:function(a){if(!b.hasClass(this.link,c)){var e=this,f=this.container.querySelector(d);if(this.elementToChange=a,this._observe(),this._interpolate(),a&&(this.interval=setInterval(function(){e._interpolate(!0)},500)),b.addClass(this.link,c),this.container.style.display="",this.fire("show"),f&&!a)try{f.focus()}catch(g){}}},hide:function(){clearInterval(this.interval),this.elementToChange=null,b.removeClass(this.link,c),this.container.style.display="none",this.fire("hide")}})}(wysihtml5),function(a){var b=a.dom,c={position:"relative"},d={left:0,margin:0,opacity:0,overflow:"hidden",padding:0,position:"absolute",top:0,zIndex:1},e={cursor:"inherit",fontSize:"50px",height:"50px",marginTop:"-25px",outline:0,padding:0,position:"absolute",right:"-4px",top:"50%"},f={"x-webkit-speech":"",speech:""};a.toolbar.Speech=function(g,h){var i=document.createElement("input");if(!a.browser.supportsSpeechApiOn(i))return void(h.style.display="none");var j=g.editor.textarea.element.getAttribute("lang");j&&(f.lang=j);var k=document.createElement("div");a.lang.object(d).merge({width:h.offsetWidth+"px",height:h.offsetHeight+"px"}),b.insert(i).into(k),b.insert(k).into(h),b.setStyles(e).on(i),b.setAttributes(f).on(i),b.setStyles(d).on(k),b.setStyles(c).on(h);var l="onwebkitspeechchange"in i?"webkitspeechchange":"speechchange";b.observe(i,l,function(){g.execCommand("insertText",i.value),i.value=""}),b.observe(i,"click",function(a){b.hasClass(h,"wysihtml5-command-disabled")&&a.preventDefault(),a.stopPropagation()})}}(wysihtml5),function(a){var b="wysihtml5-command-disabled",c="wysihtml5-commands-disabled",d="wysihtml5-command-active",e="wysihtml5-action-active",f=a.dom;a.toolbar.Toolbar=Base.extend({constructor:function(b,c,d){this.editor=b,this.container="string"==typeof c?document.getElementById(c):c,this.composer=b.composer,this._getLinks("command"),this._getLinks("action"),this._observe(),d&&this.show();for(var e=this.container.querySelectorAll("[data-wysihtml5-command=insertSpeech]"),f=e.length,g=0;f>g;g++)new a.toolbar.Speech(this,e[g])},_getLinks:function(b){for(var c,d,e,f,g,h=this[b+"Links"]=a.lang.array(this.container.querySelectorAll("[data-wysihtml5-"+b+"]")).get(),i=h.length,j=0,k=this[b+"Mapping"]={};i>j;j++)c=h[j],e=c.getAttribute("data-wysihtml5-"+b),f=c.getAttribute("data-wysihtml5-"+b+"-value"),d=this.container.querySelector("[data-wysihtml5-"+b+"-group='"+e+"']"),g=this._getDialog(c,e),k[e+":"+f]={link:c,group:d,name:e,value:f,dialog:g,state:!1}},_getDialog:function(b,c){var d,e,f=this,g=this.container.querySelector("[data-wysihtml5-dialog='"+c+"']");return g&&(d=a.toolbar["Dialog_"+c]?new a.toolbar["Dialog_"+c](b,g):new a.toolbar.Dialog(b,g),d.on("show",function(){e=f.composer.selection.getBookmark(),f.editor.fire("show:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("save",function(a){e&&f.composer.selection.setBookmark(e),f._execCommand(c,a),f.editor.fire("save:dialog",{command:c,dialogContainer:g,commandLink:b})}),d.on("cancel",function(){f.editor.focus(!1),f.editor.fire("cancel:dialog",{command:c,dialogContainer:g,commandLink:b})})),d},execCommand:function(a,b){if(!this.commandsDisabled){var c=this.commandMapping[a+":"+b];c&&c.dialog&&!c.state?c.dialog.show():this._execCommand(a,b)}},_execCommand:function(a,b){this.editor.focus(!1),this.composer.commands.exec(a,b),this._updateLinkStates()},execAction:function(a){var b=this.editor;"change_view"===a&&b.textarea&&(b.currentView===b.textarea?b.fire("change_view","composer"):b.fire("change_view","textarea")),"showSource"==a&&b.fire("showSource")},_observe:function(){for(var a=this,b=this.editor,d=this.container,e=this.commandLinks.concat(this.actionLinks),g=e.length,h=0;g>h;h++)"A"===e[h].nodeName?f.setAttributes({href:"javascript:;",unselectable:"on"}).on(e[h]):f.setAttributes({unselectable:"on"}).on(e[h]);f.delegate(d,"[data-wysihtml5-command], [data-wysihtml5-action]","mousedown",function(a){a.preventDefault()}),f.delegate(d,"[data-wysihtml5-command]","click",function(b){var c=this,d=c.getAttribute("data-wysihtml5-command"),e=c.getAttribute("data-wysihtml5-command-value");a.execCommand(d,e),b.preventDefault()}),f.delegate(d,"[data-wysihtml5-action]","click",function(b){var c=this.getAttribute("data-wysihtml5-action");a.execAction(c),b.preventDefault()}),b.on("interaction:composer",function(){a._updateLinkStates()}),b.on("focus:composer",function(){a.bookmark=null}),this.editor.config.handleTables&&(b.on("tableselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display=""}),b.on("tableunselect:composer",function(){a.container.querySelectorAll('[data-wysihtml5-hiddentools="table"]')[0].style.display="none"})),b.on("change_view",function(e){b.textarea&&setTimeout(function(){a.commandsDisabled="composer"!==e,a._updateLinkStates(),a.commandsDisabled?f.addClass(d,c):f.removeClass(d,c)},0)})},_updateLinkStates:function(){var c,g,h,i,j=this.commandMapping,k=this.actionMapping;for(c in j)i=j[c],this.commandsDisabled?(g=!1,f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()):(g=this.composer.commands.state(i.name,i.value),f.removeClass(i.link,b),i.group&&f.removeClass(i.group,b)),i.state!==g&&(i.state=g,g?(f.addClass(i.link,d),i.group&&f.addClass(i.group,d),i.dialog&&("object"==typeof g||a.lang.object(g).isArray()?(!i.dialog.multiselect&&a.lang.object(g).isArray()&&(g=1===g.length?g[0]:!0,i.state=g),i.dialog.show(g)):i.dialog.hide())):(f.removeClass(i.link,d),i.group&&f.removeClass(i.group,d),i.dialog&&i.dialog.hide()));for(c in k)h=k[c],"change_view"===h.name&&(h.state=this.editor.currentView===this.editor.textarea,h.state?f.addClass(h.link,e):f.removeClass(h.link,e))},show:function(){this.container.style.display=""},hide:function(){this.container.style.display="none"}})}(wysihtml5),function(a){a.toolbar.Dialog_createTable=a.toolbar.Dialog.extend({show:function(a){this.base(a)}})}(wysihtml5),function(a){var b=(a.dom,"[data-wysihtml5-dialog-field]"),c="data-wysihtml5-dialog-field";a.toolbar.Dialog_foreColorStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){for(var a={},d=this.container.querySelectorAll(b),e=d.length,f=0;e>f;f++)a[d[f].getAttribute(c)]=d[f].value;return a},_interpolate:function(d){for(var e,f=document.querySelector(":focus"),g=this.container.querySelectorAll(b),h=g.length,i=0,j=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,k=j?j.getAttribute("style"):null,l=k?a.quirks.styleParser.parseColor(k,"color"):null;h>i;i++)e=g[i],e!==f&&(d&&"hidden"===e.type||"color"===e.getAttribute(c)&&(e.value=l?l[3]&&1!=l[3]?"rgba("+l[0]+","+l[1]+","+l[2]+","+l[3]+");":"rgb("+l[0]+","+l[1]+","+l[2]+");":"rgb(0,0,0);"))}})}(wysihtml5),function(a){a.dom;a.toolbar.Dialog_fontSizeStyle=a.toolbar.Dialog.extend({multiselect:!0,_serialize:function(){return{size:this.container.querySelector('[data-wysihtml5-dialog-field="size"]').value}},_interpolate:function(){var b=document.querySelector(":focus"),c=this.container.querySelector("[data-wysihtml5-dialog-field='size']"),d=this.elementToChange?a.lang.object(this.elementToChange).isArray()?this.elementToChange[0]:this.elementToChange:null,e=d?d.getAttribute("style"):null,f=e?a.quirks.styleParser.parseFontSize(e):null;c&&c!==b&&f&&!/^\s*$/.test(f)&&(c.value=f)}})}(wysihtml5);
//# sourceMappingURL=wysihtml5x-toolbar.min.map
\ No newline at end of file
diff --git a/dist/wysihtml5x-toolbar.min.map b/dist/wysihtml5x-toolbar.min.map
index 496374a..56013b6 100644
--- a/dist/wysihtml5x-toolbar.min.map
+++ b/dist/wysihtml5x-toolbar.min.map
@@ -1 +1 @@
-{"version":3,"file":"wysihtml5x-toolbar.min.js","sources":["wysihtml5x-toolbar.js"],"names":["Object","defineProperty","getOwnPropertyDescriptor","Element","prototype","get","innerText","call","this","set","s","Array","isArray","arg","toString","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","DELETE_KEY","global","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","i","length","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","window","console","log","alertOrLog","shouldAlert","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","ex","message","description","String","init","testRange","implementsDomRange","implementsTextRange","document","createRange","domRangeMethods","domRangeProperties","detach","nodeName","toLowerCase","createTextRange","features","module","errorMessage","moduleName","modules","Module","len","initListeners","createMissingNativeApi","win","createMissingNativeApiListeners","name","dependencies","initializer","createModule","isCore","initFunc","newModule","RangePrototype","SelectionPrototype","amdSupported","define","amd","areHostObjects","util","preferTextRange","hasOwnProperty","extend","obj","deep","el","createElement","appendChild","toArray","slice","childNodes","nodeType","arrayLike","e","arr","addListener","eventType","listener","addEventListener","attachEvent","addInitListener","push","addCreateMissingNativeApiListener","requiredModule","requiredModuleNames","Error","deprecationNotice","deprecated","replacement","createError","arguments","createCoreModule","rangePrototype","selectionPrototype","docReady","loadHandler","rangy","isHtmlNamespace","node","ns","namespaceURI","UNDEF","parentElement","parent","parentNode","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","index","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","root","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","DOMException","codeName","code","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","remove","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","join","nodes","RangeIterator","test","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","RangeException","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertNotDetached","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","returnValue","createPrototypeRange","detacher","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","detachRange","BAD_BOUNDARYPOINTS_ERR","INVALID_NODE_TYPE_ERR","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","cloneContents","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","container","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","contains","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","detached","rangeProto","refresh","testTextNode","oppositeName","range2","type","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","replace","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","item","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","add","select","deleteProperties","actOnCachedSelection","action","cached","cachedRangySelections","splice","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","apply","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","detachAll","Selection","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","method","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","match","androidVersion","navigator","testElement","isIE","indexOf","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","querySelectorAll","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","hasHistoryIssue","platform","substr","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","setAttribute","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","getAttribute","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","string","str","trim","interpolate","vars","by","search","split","escapeHTML","c","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","classList","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","parseInt","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","selector","event","target","getAsDom","_innerHTMLShiv","html","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","_isSameNodeName","desiredNodeNames","_isElement","_hasClassName","classRegExp","classNames","_hasStyle","cssStyle","styleRegExp","styles","matchingSet","levels","findByStyle","findByClass","getNextElement","getPreviousElement","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","styleValue","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","all","concat","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","eventNames","handlerWrapper","srcElement","preventDefault","stopPropagation","cancelBubble","removeEventListener","detachEvent","parse","elementOrHtml","currentRules","defaultRules","isString","_convert","cleanUp","getCorrectInnerHTML","oldNode","newChild","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","DEFAULT_NODE_NAME","attributes","_handleElement","rule","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","_handleAttributes","_handleStyles","one_of_type","_testTypes","remove_action","types","definition","type_definitions","_testType","classesLength","a","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","classes","WHITE_SPACE_REG_EXP","sp","attrs","_getAttribute","keep_styles","styleFloat","cssFloat","currentClass","newClass","attributeName","newAttributeValue","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","checkAttributes","check_attributes","allowedClasses","newClasses","oldClasses","attributeCheckMethods","oldAttribute","addClassMethods","addStyleMethods","newStyle","src","width","height","_isLoadedImage","HAS_GET_ATTRIBUTE_BUG","hasAttribute","complete","mozMatchesSelector","readyState","_handleText","INVISIBLE_SPACE_REG_EXP","1","3","REG_EXP","attributeValue","href","alt","numbers","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","textContent","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_isLineBreak","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","previousElementSibling","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineGetter__","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","view","placeholderText","CLASS_NAME","unset","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","queryInList","query","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","r","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","els","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","force","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","cleanPastedHTML","matches","matchesLength","j","txtnodes","a u","ensureProperClearing","clearIfNecessary","composer","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleSelectionMousedown","removeCellSelections","selection_class","moveHandler","handleMouseMove","upHandler","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","d","parseFloat","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setBookmark","setSelection","setBefore","setAfter","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","containsUneditable","uneditables","getOwnUneditables","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","prevNode","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","caretPlaceholder","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","surround","nodeOptions","deblockAndSurround","tempDivElements","tempElements","exec","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","imax","jmax","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","specified","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","selectedText","toggleRange","Commands","support","result","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","fontSize","size","fontSizeStyle","styleStr","st","foreColor","color","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","_addClass","_removeClass","_addStyle","_removeStyle","_isBlankTextNode","_getPreviousSiblingThatIsNotBlank","_getNextSiblingThatIsNotBlank","_addLineBreakBeforeAndAfter","_isLineBreakOrBlockElement","_removeLineBreakBeforeAndAfter","_removeLastChildIfLineBreak","_selectionWrap","options","surroundedNodes","_hasClasses","_hasStyles","BLOCK_ELEMENTS_GROUP","selectedNodes","classRemoveAction","blockRenameFound","styleRemoveAction","blockElements","defaultNodeName","b","hasClasses","hasStyles","blockElement","formatCode","classname","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","identifier","htmlApplier","strong","em","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","otherList","tempClassName","getTime","uneditableContainerClassname","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","STYLE_STR","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","ctrlKey","metaKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","isInUneditable","links","urlRegExp","newTextContent","properties","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","scrollTo","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","deleteAroundEditable","uneditable","curNode","first","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","focusBlurElement","pasteEvents","interactionEvents","clearInterval","domNodeRemovedInterval","setInterval","handleTables","allImages","notMyImages","myImages","handleTabKey","titlePrefixes","IMG","title","hasTitle","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","keepScrollPosition","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","elementToChange","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","newValue","focusedElement","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","zIndex","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","wrapper","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","speechInputLinks","group","dialog","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandValue","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"wysihtml5x-toolbar.min.js","sources":["wysihtml5x-toolbar.js"],"names":["Object","defineProperty","getOwnPropertyDescriptor","Element","prototype","get","innerText","call","this","set","s","Array","isArray","arg","toString","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","DELETE_KEY","global","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","i","length","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","window","console","log","alertOrLog","shouldAlert","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","ex","message","description","String","init","testRange","implementsDomRange","implementsTextRange","document","createRange","domRangeMethods","domRangeProperties","detach","nodeName","toLowerCase","createTextRange","features","module","errorMessage","moduleName","modules","Module","len","initListeners","createMissingNativeApi","win","createMissingNativeApiListeners","name","dependencies","initializer","createModule","isCore","initFunc","newModule","RangePrototype","SelectionPrototype","amdSupported","define","amd","areHostObjects","util","preferTextRange","hasOwnProperty","extend","obj","deep","el","createElement","appendChild","toArray","slice","childNodes","nodeType","arrayLike","e","arr","addListener","eventType","listener","addEventListener","attachEvent","addInitListener","push","addCreateMissingNativeApiListener","requiredModule","requiredModuleNames","Error","deprecationNotice","deprecated","replacement","createError","arguments","createCoreModule","rangePrototype","selectionPrototype","docReady","loadHandler","rangy","isHtmlNamespace","node","ns","namespaceURI","UNDEF","parentElement","parent","parentNode","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","index","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","root","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","DOMException","codeName","code","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","remove","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","join","nodes","RangeIterator","test","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","RangeException","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertNotDetached","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","returnValue","createPrototypeRange","detacher","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","detachRange","BAD_BOUNDARYPOINTS_ERR","INVALID_NODE_TYPE_ERR","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","cloneContents","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","container","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","contains","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","detached","rangeProto","refresh","testTextNode","oppositeName","range2","type","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","replace","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","item","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","add","select","deleteProperties","actOnCachedSelection","action","cached","cachedRangySelections","splice","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","apply","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","detachAll","Selection","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","method","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","match","androidVersion","navigator","testElement","isIE","indexOf","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","querySelectorAll","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","hasHistoryIssue","platform","substr","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","setAttribute","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","getAttribute","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","string","str","trim","interpolate","vars","by","search","split","escapeHTML","c","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","classList","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","parseInt","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","selector","event","target","getAsDom","_innerHTMLShiv","html","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","_isSameNodeName","desiredNodeNames","_isElement","_hasClassName","classRegExp","classNames","_hasStyle","cssStyle","styleRegExp","styles","matchingSet","levels","findByStyle","findByClass","getNextElement","getPreviousElement","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","styleValue","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","all","concat","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","eventNames","handlerWrapper","srcElement","preventDefault","stopPropagation","cancelBubble","removeEventListener","detachEvent","parse","elementOrHtml","currentRules","defaultRules","isString","_convert","cleanUp","getCorrectInnerHTML","oldNode","newChild","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","DEFAULT_NODE_NAME","attributes","_handleElement","rule","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","_handleAttributes","_handleStyles","one_of_type","_testTypes","remove_action","types","definition","type_definitions","_testType","classesLength","a","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","classes","WHITE_SPACE_REG_EXP","sp","attrs","_getAttribute","keep_styles","styleFloat","cssFloat","currentClass","newClass","attributeName","newAttributeValue","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","checkAttributes","check_attributes","allowedClasses","newClasses","oldClasses","attributeCheckMethods","oldAttribute","addClassMethods","addStyleMethods","newStyle","src","width","height","_isLoadedImage","HAS_GET_ATTRIBUTE_BUG","hasAttribute","complete","mozMatchesSelector","readyState","_handleText","INVISIBLE_SPACE_REG_EXP","1","3","REG_EXP","attributeValue","href","alt","numbers","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","textContent","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_isLineBreak","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","previousElementSibling","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineGetter__","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","view","placeholderText","CLASS_NAME","unset","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","queryInList","query","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","r","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","els","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","force","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","cleanPastedHTML","matches","matchesLength","j","txtnodes","a u","ensureProperClearing","clearIfNecessary","composer","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleSelectionMousedown","removeCellSelections","selection_class","moveHandler","handleMouseMove","upHandler","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","d","parseFloat","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setBookmark","setSelection","setBefore","setAfter","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","containsUneditable","uneditables","getOwnUneditables","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","prevNode","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","caretPlaceholder","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","surround","nodeOptions","deblockAndSurround","tempDivElements","tempElements","exec","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","imax","jmax","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","specified","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","selectedText","toggleRange","Commands","support","result","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","fontSize","size","fontSizeStyle","styleStr","st","foreColor","color","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","_addClass","_removeClass","_addStyle","_removeStyle","_isBlankTextNode","_getPreviousSiblingThatIsNotBlank","_getNextSiblingThatIsNotBlank","_addLineBreakBeforeAndAfter","_isLineBreakOrBlockElement","_removeLineBreakBeforeAndAfter","_removeLastChildIfLineBreak","_selectionWrap","options","surroundedNodes","_hasClasses","_hasStyles","BLOCK_ELEMENTS_GROUP","selectedNodes","classRemoveAction","blockRenameFound","styleRemoveAction","blockElements","defaultNodeName","b","hasClasses","hasStyles","blockElement","formatCode","classname","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","identifier","htmlApplier","strong","em","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","otherList","tempClassName","getTime","uneditableContainerClassname","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","STYLE_STR","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","ctrlKey","metaKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","isInUneditable","links","urlRegExp","newTextContent","properties","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","scrollTo","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","deleteAroundEditable","uneditable","curNode","first","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","focusBlurElement","pasteEvents","interactionEvents","clearInterval","domNodeRemovedInterval","setInterval","handleTables","allImages","notMyImages","myImages","handleTabKey","titlePrefixes","IMG","title","hasTitle","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","keepScrollPosition","CLASS_NAME_OPENED","SELECTOR_FORM_ELEMENTS","SELECTOR_FIELDS","ATTRIBUTE_FIELDS","Dialog","_observed","callbackWrapper","_serialize","elementToChange","formElements","_clearInterval","fields","_interpolate","avoidHiddenFields","field","fieldName","newValue","focusedElement","defaultValue","firstField","linkStyles","wrapperStyles","margin","opacity","padding","zIndex","inputStyles","cursor","marginTop","outline","inputAttributes","x-webkit-speech","speech","Speech","wrapper","CLASS_NAME_COMMAND_DISABLED","CLASS_NAME_COMMANDS_DISABLED","CLASS_NAME_COMMAND_ACTIVE","CLASS_NAME_ACTION_ACTIVE","showOnInit","_getLinks","speechInputLinks","group","dialog","_getDialog","caretBookmark","dialogElement","dialogContainer","commandLink","_execCommand","commandValue","commandsDisabled","commandObj","commandMapping","_updateLinkStates","execAction","commandLinks","actionLinks","unselectable","actionMapping","multiselect","Dialog_createTable","Dialog_foreColorStyle","firstElement","Dialog_fontSizeStyle"],"mappings":";;AAKIA,OAAOC,gBAAkBD,OAAOE,0BAA4BF,OAAOE,yBAAyBC,QAAQC,UAAW,iBAAmBJ,OAAOE,yBAAyBC,QAAQC,UAAW,eAAeC,MACvM,WACC,GAAIC,GAAYN,OAAOE,yBAAyBC,QAAQC,UAAW,YACnEJ,QAAOC,eAAeE,QAAQC,UAAW,eAEvCC,IAAK,WACJ,MAAOC,GAAUD,IAAIE,KAAKC,OAE3BC,IAAK,SAASC,GACb,MAAOJ,GAAUG,IAAIF,KAAKC,KAAME,SAQjCC,MAAMC,UACRD,MAAMC,QAAU,SAASC,GACvB,MAA+C,mBAAxCb,OAAOI,UAAUU,SAASP,KAAKM,IAa1C,IAAIE,YACFC,QAAS,QAGTC,YACAC,OACAC,UACAC,WACAC,QACAC,aACAC,SAEAC,gBAAiB,IAEjBC,eAAgB,aAEhBC,aAAc,EACdC,UAAc,EAEdC,cAAgB,EAChBC,UAAgB,GAChBC,WAAgB,GAChBC,UAAgB,GAChBC,WAAgB,KAYlB,SAAUC,GAyBN,QAASC,GAAaC,EAAGC,GACrB,GAAIC,SAAWF,GAAEC,EACjB,OAAOC,IAAKC,KAAgBD,GAAKE,IAAUJ,EAAEC,KAAa,WAALC,EAGzD,QAASG,GAAaL,EAAGC,GACrB,cAAiBD,GAAEC,IAAMG,IAAUJ,EAAEC,IAGzC,QAASK,GAAeN,EAAGC,GACvB,aAAcD,GAAEC,IAAMM,EAI1B,QAASC,GAA2BC,GAChC,MAAO,UAAST,EAAGU,GAEf,IADA,GAAIC,GAAID,EAAME,OACPD,KACH,IAAKF,EAAST,EAAGU,EAAMC,IACnB,OAAO,CAGf,QAAO,GASf,QAASE,GAAYC,GACjB,MAAOA,IAASC,EAAeD,EAAOE,IAAqBC,EAAkBH,EAAOI,GAGxF,QAASC,GAAQC,GACb,MAAOf,GAAae,EAAK,QAAUA,EAAIC,KAAOD,EAAIE,qBAAqB,QAAQ,GA+BnF,QAASC,GAAWC,GACZnB,EAAaoB,OAAQ,YAAc1B,EAAa0B,OAAOC,QAAS,QAChED,OAAOC,QAAQC,IAAIH,GAI3B,QAASI,GAAWJ,EAAKK,GACjBA,EACAJ,OAAOK,MAAMN,GAEbD,EAAWC,GAInB,QAASO,GAAKC,GACVC,EAAIC,aAAc,EAClBD,EAAIE,WAAY,EAChBP,EAAW,gEAAkEI,EAAQC,EAAIG,OAAOC,aAKpG,QAASC,GAAKd,GACVI,EAAW,kBAAoBJ,EAAKS,EAAIG,OAAOG,aAyEnD,QAASC,GAAaC,GAClB,MAAOA,GAAGC,SAAWD,EAAGE,aAAeC,OAAOH,GAIlD,QAASI,KACL,IAAIZ,EAAIC,YAAR,CAGA,GAAIY,GACAC,GAAqB,EAAOC,GAAsB,CAIlDjD,GAAakD,SAAU,iBACvBH,EAAYG,SAASC,cACjBnC,EAAe+B,EAAWK,IAAoBlC,EAAkB6B,EAAWM,KAC3EL,GAAqB,GAEzBD,EAAUO,SAGd,IAAIhC,GAAOF,EAAQ8B,SACnB,KAAK5B,GAAuC,QAA/BA,EAAKiC,SAASC,cAEvB,WADAxB,GAAK,wBAWT,IAPIV,GAAQtB,EAAasB,EAAM,qBAC3ByB,EAAYzB,EAAKmC,kBACb3C,EAAYiC,KACZE,GAAsB,KAIzBD,IAAuBC,EAExB,WADAjB,GAAK,4CAITE,GAAIC,aAAc,EAClBD,EAAIwB,UACAV,mBAAoBA,EACpBC,oBAAqBA,EAIzB,IAAIU,GAAQC,CACZ,KAAK,GAAIC,KAAcC,IACbH,EAASG,EAAQD,aAAwBE,IAC3CJ,EAAOb,KAAKa,EAAQzB,EAK5B,KAAK,GAAItB,GAAI,EAAGoD,EAAMC,EAAcpD,OAAYmD,EAAJpD,IAAWA,EACnD,IACIqD,EAAcrD,GAAGsB,GACnB,MAAOQ,GACLkB,EAAe,+DAAiEnB,EAAaC,GAC7FlB,EAAWoC,KAuBvB,QAASM,GAAuBC,GAC5BA,EAAMA,GAAOzC,OACboB,GAGA,KAAK,GAAIlC,GAAI,EAAGoD,EAAMI,EAAgCvD,OAAYmD,EAAJpD,IAAWA,EACrEwD,EAAgCxD,GAAGuD,GAM3C,QAASJ,GAAOM,EAAMC,EAAcC,GAChCjG,KAAK+F,KAAOA,EACZ/F,KAAKgG,aAAeA,EACpBhG,KAAK6D,aAAc,EACnB7D,KAAK8D,WAAY,EACjB9D,KAAKiG,YAAcA,EA6CvB,QAASC,GAAaC,EAAQJ,EAAMC,EAAcI,GAC9C,GAAIC,GAAY,GAAIZ,GAAOM,EAAMC,EAAc,SAASX,GACpD,IAAKA,EAAOxB,YAAa,CACrBwB,EAAOxB,aAAc,CACrB,KACIuC,EAASxC,EAAKyB,GACdA,EAAOvB,WAAY,EACrB,MAAOM,GACL,GAAIkB,GAAe,WAAaS,EAAO,qBAAuB5B,EAAaC,EAC3ElB,GAAWoC,MAIvBE,GAAQO,GAAQM,EAiCpB,QAASC,MAIT,QAASC,MA9XT,GAAIC,GAAwC,kBAAjB/E,GAAOgF,QAAwBhF,EAAOgF,OAAOC,IAEpE3E,EAAS,SAAUD,EAAW,WAAYI,EAAY,YAItD6C,GAAsB,iBAAkB,cAAe,eAAgB,YAAa,YACpF,2BAGAD,GAAmB,WAAY,iBAAkB,gBAAiB,SAAU,eAC5E,cAAe,WAAY,aAAc,qBAAsB,wBAAyB,iBACxF,kBAAmB,gBAAiB,aAAc,mBAAoB,aAAc,WAAY,UAEhGjC,GAAuB,iBAAkB,eAAgB,cAAe,gBAAiB,WAAY,QAGrGF,GAAoB,WAAY,mBAAoB,YAAa,oBAAqB,gBAAiB,SACvG,cAAe,yBAiCfD,EAAiBP,EAA2BT,GAC5CiF,EAAiBxE,EAA2BH,GAC5CY,EAAoBT,EAA2BF,GAU/CuD,KAEA5B,GACApD,QAAS,eACTqD,aAAa,EACbC,WAAW,EAEX8C,MACIlF,aAAcA,EACdM,aAAcA,EACdC,eAAgBA,EAChBS,eAAgBA,EAChBiE,eAAgBA,EAChB/D,kBAAmBA,EACnBJ,YAAaA,EACbM,QAASA,GAGbsC,YAEAI,QAASA,EACTzB,QACIC,aAAa,EACbE,aAAa,EACb2C,iBAAiB,GAwBzBjD,GAAIF,KAAOA,EAMXE,EAAIK,KAAOA,KAGJ6C,eACHlD,EAAIgD,KAAKG,OAAS,SAASC,EAAK3E,EAAO4E,GACnC,GAAItF,GAAGC,CACP,KAAK,GAAIU,KAAKD,GACNA,EAAMyE,eAAexE,KACrBX,EAAIqF,EAAI1E,GACRV,EAAIS,EAAMC,GAEN2E,GAAc,OAANtF,GAA0B,gBAALA,IAAuB,OAANC,GAA0B,gBAALA,IACnEgC,EAAIgD,KAAKG,OAAOpF,EAAGC,GAAG,GAE1BoF,EAAI1E,GAAKV,EAGjB,OAAOoF,IAGXtD,EAAK,gCAIT,WACI,GAAIwD,GAAKtC,SAASuC,cAAc,MAChCD,GAAGE,YAAYxC,SAASuC,cAAc,QACtC,IACIE,GADAC,KAAWA,KAEf,KACoD,GAA5CA,EAAMvH,KAAKmH,EAAGK,WAAY,GAAG,GAAGC,WAChCH,EAAU,SAASI,GACf,MAAOH,GAAMvH,KAAK0H,EAAW,KAGvC,MAAOC,IAEJL,IACDA,EAAU,SAASI,GAEf,IAAK,GADDE,MACKrF,EAAI,EAAGoD,EAAM+B,EAAUlF,OAAYmD,EAAJpD,IAAWA,EAC/CqF,EAAIrF,GAAKmF,EAAUnF,EAEvB,OAAOqF,KAIf/D,EAAIgD,KAAKS,QAAUA,IAMvB,IAAIO,EACAlG,GAAakD,SAAU,oBACvBgD,EAAc,SAASZ,EAAKa,EAAWC,GACnCd,EAAIe,iBAAiBF,EAAWC,GAAU,IAEvCpG,EAAakD,SAAU,eAC9BgD,EAAc,SAASZ,EAAKa,EAAWC,GACnCd,EAAIgB,YAAY,KAAOH,EAAWC,IAGtCpE,EAAK,0EAGTE,EAAIgD,KAAKgB,YAAcA,CAEvB,IAAIjC,KAoEJ/B,GAAIY,KAAOA,EAGXZ,EAAIqE,gBAAkB,SAASH,GACvBlE,EAAIC,YACJiE,EAASlE,GAET+B,EAAcuC,KAAKJ,GAI3B,IAAIhC,KAEJlC,GAAIuE,kCAAoC,SAASL,GAC7ChC,EAAgCoC,KAAKJ,IAazClE,EAAIgC,uBAAyBA,EAU7BH,EAAO7F,WACH4E,KAAM,WAEF,IAAK,GAA6C4D,GAAgB7C,EAD9D8C,EAAsBrI,KAAKgG,iBACtB1D,EAAI,EAAGoD,EAAM2C,EAAoB9F,OAAwCmD,EAAJpD,IAAWA,EAAG,CAIxF,GAHAiD,EAAa8C,EAAoB/F,GAEjC8F,EAAiB5C,EAAQD,KACpB6C,GAAoBA,YAA0B3C,IAC/C,KAAM,IAAI6C,OAAM,oBAAsB/C,EAAa,cAKvD,IAFA6C,EAAe5D,QAEV4D,EAAetE,UAChB,KAAM,IAAIwE,OAAM,oBAAsB/C,EAAa,mBAK3DvF,KAAKiG,YAAYjG,OAGrB0D,KAAM,SAASC,GAGX,KAFA3D,MAAK6D,aAAc,EACnB7D,KAAK8D,WAAY,EACX,GAAIwE,OAAM,WAAatI,KAAK+F,KAAO,qBAAuBpC,IAGpEM,KAAM,SAASd,GACXS,EAAIK,KAAK,UAAYjE,KAAK+F,KAAO,KAAO5C,IAG5CoF,kBAAmB,SAASC,EAAYC,GACpC7E,EAAIK,KAAK,eAAiBuE,EAAa,cAAgBxI,KAAK+F,KAAO,6BAC7D0C,EAAc,aAGxBC,YAAa,SAASvF,GAClB,MAAO,IAAImF,OAAM,kBAAoBtI,KAAK+F,KAAO,YAAc5C,KA6BvES,EAAIsC,aAAe,SAASH,GAExB,GAAIK,GAAUJ,CACU,IAApB2C,UAAUpG,QACV6D,EAAWuC,UAAU,GACrB3C,OAEAI,EAAWuC,UAAU,GACrB3C,EAAe2C,UAAU,IAE7BzC,GAAa,EAAOH,EAAMC,EAAcI,IAG5CxC,EAAIgF,iBAAmB,SAAS7C,EAAMC,EAAcI,GAChDF,GAAa,EAAMH,EAAMC,EAAcI,IAQ3CxC,EAAI0C,eAAiBA,EACrB1C,EAAIiF,eAAiB,GAAIvC,GAGzB1C,EAAIkF,mBAAqB,GAAIvC,EAM7B,IAAIwC,IAAW,EAEXC,EAAc,WACTD,IACDA,GAAW,EACNnF,EAAIC,aACLW,KAMZ,cAAWpB,SAAUlB,MACjBwB,GAAK,yBAGEkB,WAAY1C,MACnBwB,GAAK,sBAILhC,EAAakD,SAAU,qBACvBA,SAASmD,iBAAiB,mBAAoBiB,GAAa,GAI/DpB,EAAYxE,OAAQ,OAAQ4F,GAMxBxC,GAEA/E,EAAOgF,OAAO,WAEV,MADA7C,GAAI8C,KAAM,EACH9C,SAMfnC,EAAOwH,MAAQrF,KAChB5D,MAEHiJ,MAAML,iBAAiB,aAAe,SAAShF,EAAKyB,GAoDhD,QAAS6D,GAAgBC,GACrB,GAAIC,EACJ,cAAcD,GAAKE,cAAgBC,GAAuC,QAA5BF,EAAKD,EAAKE,eAAgC,gCAAND,EAGtF,QAASG,GAAcJ,GACnB,GAAIK,GAASL,EAAKM,UAClB,OAA2B,IAAnBD,EAAOhC,SAAiBgC,EAAS,KAG7C,QAASE,GAAaP,GAElB,IADA,GAAI7G,GAAI,EACA6G,EAAOA,EAAKQ,mBACdrH,CAEN,OAAOA,GAGX,QAASsH,GAAcT,GACnB,OAAQA,EAAK3B,UACT,IAAK,GACL,IAAK,IACD,MAAO,EACX,KAAK,GACL,IAAK,GACD,MAAO2B,GAAK5G,MAChB,SACI,MAAO4G,GAAK5B,WAAWhF,QAInC,QAASsH,GAAkBC,EAAOC,GAC9B,GAAoBC,GAAhBC,IACJ,KAAKD,EAAIF,EAAOE,EAAGA,EAAIA,EAAEP,WACrBQ,EAAU/B,KAAK8B,EAGnB,KAAKA,EAAID,EAAOC,EAAGA,EAAIA,EAAEP,WACrB,GAAIS,EAAcD,EAAWD,GACzB,MAAOA,EAIf,OAAO,MAGX,QAASG,GAAaC,EAAUC,EAAYC,GAExC,IADA,GAAIN,GAAIM,EAAiBD,EAAaA,EAAWZ,WAC1CO,GAAG,CACN,GAAIA,IAAMI,EACN,OAAO,CAEPJ,GAAIA,EAAEP,WAGd,OAAO,EAGX,QAASc,GAAiBH,EAAUC,GAChC,MAAOF,GAAaC,EAAUC,GAAY,GAG9C,QAASG,GAAqBrB,EAAMiB,EAAUE,GAE1C,IADA,GAAI1I,GAAGoI,EAAIM,EAAiBnB,EAAOA,EAAKM,WACjCO,GAAG,CAEN,GADApI,EAAIoI,EAAEP,WACF7H,IAAMwI,EACN,MAAOJ,EAEXA,GAAIpI,EAER,MAAO,MAGX,QAAS6I,GAAoBtB,GACzB,GAAItH,GAAIsH,EAAK3B,QACb,OAAY,IAAL3F,GAAe,GAALA,GAAe,GAALA,EAG/B,QAAS6I,GAAoBvB,GACzB,IAAKA,EACD,OAAO,CAEX,IAAItH,GAAIsH,EAAK3B,QACb,OAAY,IAAL3F,GAAe,GAALA,EAGrB,QAAS8I,GAAYxB,EAAMyB,GACvB,GAAIC,GAAWD,EAAcE,YAAatB,EAASoB,EAAcnB,UAMjE,OALIoB,GACArB,EAAOuB,aAAa5B,EAAM0B,GAE1BrB,EAAOpC,YAAY+B,GAEhBA,EAIX,QAAS6B,GAAc7B,EAAM8B,EAAOC,GAChC,GAAIC,GAAUhC,EAAKiC,WAAU,EAM7B,IALAD,EAAQE,WAAW,EAAGJ,GACtB9B,EAAKkC,WAAWJ,EAAO9B,EAAK5G,OAAS0I,GACrCN,EAAYQ,EAAShC,GAGjB+B,EACA,IAAK,GAAWI,GAAPhJ,EAAI,EAAagJ,EAAWJ,EAAoB5I,MAEjDgJ,EAASnC,MAAQA,GAAQmC,EAASC,OAASN,GAC3CK,EAASnC,KAAOgC,EAChBG,EAASC,QAAUN,GAGdK,EAASnC,MAAQA,EAAKM,YAAc6B,EAASC,OAAS7B,EAAaP,MACtEmC,EAASC,MAIvB,OAAOJ,GAGX,QAASK,GAAYrC,GACjB,GAAqB,GAAjBA,EAAK3B,SACL,MAAO2B,EACJ,UAAWA,GAAKsC,eAAiBnC,EACpC,MAAOH,GAAKsC,aACT,UAAWtC,GAAKvE,UAAY0E,EAC/B,MAAOH,GAAKvE,QACT,IAAIuE,EAAKM,WACZ,MAAO+B,GAAYrC,EAAKM,WAExB,MAAMpE,GAAOqD,YAAY,2CAIjC,QAASgD,GAAUvC,GACf,GAAIpG,GAAMyI,EAAYrC,EACtB,UAAWpG,GAAI4I,aAAerC,EAC1B,MAAOvG,GAAI4I,WACR,UAAW5I,GAAI6I,cAAgBtC,EAClC,MAAOvG,GAAI6I,YAEX,MAAMvG,GAAOqD,YAAY,uCAIjC,QAASmD,GAAkBC,GACvB,SAAWA,GAASC,iBAAmBzC,EACnC,MAAOwC,GAASC,eACb,UAAWD,GAASE,eAAiB1C,EACxC,MAAOwC,GAASE,cAAcpH,QAE9B,MAAMS,GAAOqD,YAAY,kEAIjC,QAASuD,GAAgBH,GACrB,SAAWA,GAASE,eAAiB1C,EACjC,MAAOwC,GAASE,aACb,UAAWF,GAASC,iBAAmBzC,EAC1C,MAAOwC,GAASC,gBAAgBJ,WAEhC,MAAMtG,GAAOqD,YAAY,8DAKjC,QAASwD,GAASlF,GACd,MAAOA,IAAOJ,EAAKlF,aAAasF,EAAK,eAAiBJ,EAAK5E,aAAagF,EAAK,YAGjF,QAASmF,GAAmBnF,EAAK3B,EAAQ+G,GACrC,GAAIrJ,EAiBJ,IAfKiE,EAKIJ,EAAK3E,eAAe+E,EAAK,YAC9BjE,EAAuB,GAAhBiE,EAAIQ,UAA8C,UAA7BR,EAAIqF,QAAQnH,cAClC2G,EAAkB7E,GAAOwE,EAAYxE,GAItCkF,EAASlF,KACdjE,EAAMiE,EAAIpC,UAXV7B,EAAM6B,UAcL7B,EACD,KAAMsC,GAAOqD,YAAY0D,EAAa,oDAG1C,OAAOrJ,GAGX,QAASuJ,GAAiBnD,GAEtB,IADA,GAAIK,GACKA,EAASL,EAAKM,YACnBN,EAAOK,CAEX,OAAOL,GAGX,QAASoD,GAAcC,EAAOC,EAASC,EAAOC,GAE1C,GAAIC,GAAOC,EAAMC,EAAQC,EAAQ/C,CACjC,IAAIwC,GAASE,EAET,MAAOD,KAAYE,EAAU,EAAeA,EAAVF,EAAqB,GAAK,CACzD,IAAMG,EAAQpC,EAAqBkC,EAAOF,GAAO,GAEpD,MAAOC,IAAW/C,EAAakD,GAAS,GAAK,CAC1C,IAAMA,EAAQpC,EAAqBgC,EAAOE,GAAO,GAEpD,MAAOhD,GAAakD,GAASD,EAAW,GAAK,CAG7C,IADAE,EAAOhD,EAAkB2C,EAAOE,IAC3BG,EACD,KAAM,IAAIvE,OAAM,qDAOpB,IAHAwE,EAAUN,IAAUK,EAAQA,EAAOrC,EAAqBgC,EAAOK,GAAM,GACrEE,EAAUL,IAAUG,EAAQA,EAAOrC,EAAqBkC,EAAOG,GAAM,GAEjEC,IAAWC,EAEX,KAAM1H,GAAOqD,YAAY,kEAGzB,KADAsB,EAAI6C,EAAKG,WACFhD,GAAG,CACN,GAAIA,IAAM8C,EACN,MAAO,EACJ,IAAI9C,IAAM+C,EACb,MAAO,EAEX/C,GAAIA,EAAEc,aAWtB,QAASmC,GAAa9D,GAClB,IAEI,MADAA,GAAKM,YACE,EACT,MAAO/B,GACL,OAAO,GAgBf,QAASwF,GAAY/D,GACjB,IAAKA,EACD,MAAO,WAEX,IAAIgE,GAAmBF,EAAa9D,GAChC,MAAO,eAEX,IAAIsB,EAAoBtB,GACpB,MAAO,IAAMA,EAAKiE,KAAO,GAE7B,IAAqB,GAAjBjE,EAAK3B,SAAe,CACpB,GAAI6F,GAASlE,EAAKmE,GAAK,QAAUnE,EAAKmE,GAAK,IAAM,EACjD,OAAO,IAAMnE,EAAKlE,SAAWoI,EAAS,KAAO3D,EAAaP,GAAQ,KAAOA,EAAK5B,WAAWhF,OAAS,MAAQ4G,EAAKoE,WAAa,6BAA6BjG,MAAM,EAAG,IAAM,IAE5K,MAAO6B,GAAKlE,SAGhB,QAASuI,GAAyBrE,GAE9B,IADA,GAA2DsE,GAAvDC,EAAWlC,EAAYrC,GAAMwE,yBACxBF,EAAQtE,EAAK6D,YAClBU,EAAStG,YAAYqG,EAEzB,OAAOC,GAgBX,QAASE,GAAaf,GAClB7M,KAAK6M,KAAOA,EACZ7M,KAAK6N,MAAQhB,EAiCjB,QAASiB,GAAejB,GACpB,MAAO,IAAIe,GAAaf,GAG5B,QAASkB,GAAY5E,EAAMoC,GACvBvL,KAAKmJ,KAAOA,EACZnJ,KAAKuL,OAASA,EAiBlB,QAASyC,GAAaC,GAClBjO,KAAKkO,KAAOlO,KAAKiO,GACjBjO,KAAKiO,SAAWA,EAChBjO,KAAKqE,QAAU,iBAAmBrE,KAAKiO,SAna3C,GAAI3E,GAAQ,YACR1C,EAAOhD,EAAIgD,IAGVA,GAAKlE,eAAekC,UAAW,yBAA0B,gBAAiB,oBAC3ES,EAAO3B,KAAK,2CAGXkD,EAAKlF,aAAakD,SAAU,yBAC7BS,EAAO3B,KAAK,+CAGhB,IAAIwD,GAAKtC,SAASuC,cAAc,MAC3BP,GAAKlE,eAAewE,GAAK,eAAgB,cAAe,eACpDN,EAAKD,eAAeO,GAAK,kBAAmB,cAAe,aAAc,iBAC9E7B,EAAO3B,KAAK,qCAIXkD,EAAK3E,eAAeiF,EAAI,cACzB7B,EAAO3B,KAAK,wCAGhB,IAAIyK,GAAWvJ,SAASwJ,eAAe,OAClCxH,GAAKlE,eAAeyL,GAAW,YAAa,aAAc,aAAc,aAAc,eAClFvH,EAAKD,eAAeO,GAAK,kBAAmB,cAAe,aAAc,iBACzEN,EAAKhE,kBAAkBuL,GAAW,WACvC9I,EAAO3B,KAAK,sCAQhB,IAAIwG,GAKA,SAASvC,EAAK0G,GAEV,IADA,GAAI/L,GAAIqF,EAAIpF,OACLD,KACH,GAAIqF,EAAIrF,KAAO+L,EACX,OAAO,CAGf,QAAO,GA0PXlB,GAAkB,GAWtB,WACI,GAAIjG,GAAKtC,SAASuC,cAAc,IAChCD,GAAGqG,UAAY,GACf,IAAIY,GAAWjH,EAAG8F,UAClB9F,GAAGqG,UAAY,OACfJ,EAAkBF,EAAakB,GAE/BvK,EAAIwB,SAAS+H,gBAAkBA,IA8BnC,IAAImB,SACOlL,QAAOmL,kBAAoBjF,EAClCgF,EAA2B,SAASpH,EAAIsH,GACpC,MAAO9C,GAAUxE,GAAIqH,iBAAiBrH,EAAI,MAAMsH,UAEtC5J,UAAS6J,gBAAgBC,cAAgBpF,EACvDgF,EAA2B,SAASpH,EAAIsH,GACpC,MAAOtH,GAAGwH,aAAaF,IAG3BnJ,EAAO3B,KAAK,yDAQhBkK,EAAahO,WACT+O,SAAU,KAEVC,QAAS,WACL,QAAS5O,KAAK6N,OAGlBgB,KAAM,WACF,GACIpB,GAAOoB,EADP7E,EAAIhK,KAAK2O,SAAW3O,KAAK6N,KAE7B,IAAI7N,KAAK2O,SAEL,GADAlB,EAAQzD,EAAEgD,WAENhN,KAAK6N,MAAQJ,MACV,CAEH,IADAoB,EAAO,KACC7E,IAAMhK,KAAK6M,QAAWgC,EAAO7E,EAAEc,cACnCd,EAAIA,EAAEP,UAEVzJ,MAAK6N,MAAQgB,EAGrB,MAAO7O,MAAK2O,UAGhB3J,OAAQ,WACJhF,KAAK2O,SAAW3O,KAAK6N,MAAQ7N,KAAK6M,KAAO,OAajDkB,EAAYnO,WACRkP,OAAQ,SAASC,GACb,QAASA,GAAO/O,KAAKmJ,OAAS4F,EAAI5F,MAAQnJ,KAAKuL,QAAUwD,EAAIxD,QAGjEyD,QAAS,WACL,MAAO,gBAAkB9B,EAAYlN,KAAKmJ,MAAQ,IAAMnJ,KAAKuL,OAAS,MAG1EjL,SAAU,WACN,MAAON,MAAKgP,YAUpBhB,EAAapO,WACTqP,eAAgB,EAChBC,sBAAuB,EACvBC,mBAAoB,EACpBC,4BAA6B,EAC7BC,cAAe,EACfC,kBAAmB,EACnBC,kBAAmB,IAGvBvB,EAAapO,UAAUU,SAAW,WAC9B,MAAON,MAAKqE,SAGhBT,EAAIlD,KACAwJ,cAAeA,EACfhB,gBAAiBA,EACjBK,cAAeA,EACfG,aAAcA,EACdE,cAAeA,EACfC,kBAAmBA,EACnBM,aAAcA,EACdI,iBAAkBA,EAClBC,qBAAsBA,EACtBC,oBAAqBA,EACrBC,oBAAqBA,EACrBC,YAAaA,EACbK,cAAeA,EACfQ,YAAaA,EACbE,UAAWA,EACXO,gBAAiBA,EACjBJ,kBAAmBA,EACnB/I,QAAS8D,EAAK9D,QACdoJ,SAAUA,EACVC,mBAAoBA,EACpBG,iBAAkBA,EAClBC,cAAeA,EACfU,aAAcA,EACdC,YAAaA,EACboB,yBAA0BA,EAC1Bd,yBAA0BA,EAC1BM,eAAgBA,EAChBC,YAAaA,GAGjBnK,EAAIoK,aAAeA,IAEvB/E,MAAML,iBAAiB,YAAa,WAAY,SAAShF,GAsBrD,QAAS4L,GAA2BrG,EAAM1G,GACtC,MAAyB,IAAjB0G,EAAK3B,WACL+C,EAAiBpB,EAAM1G,EAAMgN,iBAAmBlF,EAAiBpB,EAAM1G,EAAMiN,eAGzF,QAASC,GAAiBlN,GACtB,MAAOA,GAAMmC,UAAY4G,EAAY/I,EAAMgN,gBAG/C,QAASG,GAAsBzG,GAC3B,MAAO,IAAI4E,GAAY5E,EAAKM,WAAYC,EAAaP,IAGzD,QAAS0G,GAAqB1G,GAC1B,MAAO,IAAI4E,GAAY5E,EAAKM,WAAYC,EAAaP,GAAQ,GAGjE,QAAS2G,GAAqB3G,EAAMa,EAAGrI,GACnC,GAAIoO,GAAqC,IAAjB5G,EAAK3B,SAAiB2B,EAAK6D,WAAa7D,CAYhE,OAXIsB,GAAoBT,GAChBrI,GAAKqI,EAAEzH,OACP7B,EAAIiK,YAAYxB,EAAMa,GAEtBA,EAAEP,WAAWsB,aAAa5B,EAAW,GAALxH,EAASqI,EAAIgB,EAAchB,EAAGrI,IAE3DA,GAAKqI,EAAEzC,WAAWhF,OACzByH,EAAE5C,YAAY+B,GAEda,EAAEe,aAAa5B,EAAMa,EAAEzC,WAAW5F,IAE/BoO,EAGX,QAASC,GAAgBC,EAAQC,EAAQC,GAIrC,GAHAC,EAAiBH,GACjBG,EAAiBF,GAEbP,EAAiBO,IAAWP,EAAiBM,GAC7C,KAAM,IAAIjC,GAAa,qBAG3B,IAAIqC,GAAkB9D,EAAc0D,EAAOR,eAAgBQ,EAAOK,YAAaJ,EAAOR,aAAcQ,EAAOK,WACvGC,EAAgBjE,EAAc0D,EAAOP,aAAcO,EAAOM,UAAWL,EAAOT,eAAgBS,EAAOI,YAEvG,OAAOH,GAA4C,GAAnBE,GAAwBG,GAAiB,EAAsB,EAAlBH,GAAuBG,EAAgB,EAGxH,QAASC,GAAaC,GAElB,IAAK,GADDC,GACKxH,EAAwEyH,EAAlEC,EAAOlB,EAAiBe,EAASjO,OAAOkL,yBAAuCxE,EAAOuH,EAAS7B,QAAU,CASpH,GARA8B,EAAoBD,EAASI,6BAC7B3H,EAAOA,EAAKiC,WAAWuF,GACnBA,IACAC,EAAcF,EAASK,qBACvB5H,EAAK/B,YAAYqJ,EAAaG,IAC9BA,EAAY5L,QAAO,IAGF,IAAjBmE,EAAK3B,SACL,KAAM,IAAIwG,GAAa,wBAE3B6C,GAAKzJ,YAAY+B,GAErB,MAAO0H,GAGX,QAASG,GAAeC,EAAeC,EAAMC,GACzC,GAAIC,GAAIpH,CACRmH,GAAgBA,IAAmBE,MAAM,EACzC,KAAK,GAAIlI,GAAMmI,EAAkBnI,EAAO8H,EAAcpC,QAClD,GAAIoC,EAAcH,6BAA8B,CAC5C,GAAII,EAAK/H,MAAU,EAEf,YADAgI,EAAcE,MAAO,EAQrB,IAHAC,EAAmBL,EAAcF,qBACjCC,EAAeM,EAAkBJ,EAAMC,GACvCG,EAAiBtM,QAAO,GACpBmM,EAAcE,KACd,WAOR,KADAD,EAAK1Q,EAAIoN,eAAe3E,GACfa,EAAIoH,EAAGvC,QACZ,GAAIqC,EAAKlH,MAAO,EAEZ,YADAmH,EAAcE,MAAO,GAQzC,QAASE,GAAcb,GAEnB,IADA,GAAIE,GACGF,EAAS7B,QACR6B,EAASI,8BACTF,EAAcF,EAASK,qBACvBQ,EAAcX,GACdA,EAAY5L,QAAO,IAEnB0L,EAASc,SAKrB,QAASC,GAAef,GACpB,IAAK,GAAIvH,GAAwEyH,EAAlEC,EAAOlB,EAAiBe,EAASjO,OAAOkL,yBAAuCxE,EAAOuH,EAAS7B,QAAU,CAUpH,GARI6B,EAASI,8BACT3H,EAAOA,EAAKiC,WAAU,GACtBwF,EAAcF,EAASK,qBACvB5H,EAAK/B,YAAYqK,EAAeb,IAChCA,EAAY5L,QAAO,IAEnB0L,EAASc,SAEQ,IAAjBrI,EAAK3B,SACL,KAAM,IAAIwG,GAAa,wBAE3B6C,GAAKzJ,YAAY+B,GAErB,MAAO0H,GAGX,QAASa,GAAgBjP,EAAOkP,EAAWC,GACvC,GAAyDC,GAArDC,KAAqBH,IAAaA,EAAUpP,QAC5CwP,IAAiBH,CACjBE,KACAD,EAAQ,GAAIG,QAAO,KAAOL,EAAUM,KAAK,KAAO,MAGpD,IAAIC,KAsBJ,OArBAlB,GAAe,GAAImB,GAAc1P,GAAO,GAAQ,SAAS0G,GACrD,KAAI2I,IAAoBD,EAAMO,KAAKjJ,EAAK3B,WAGpCuK,IAAiBH,EAAOzI,IAA5B,CAKA,GAAIkJ,GAAK5P,EAAMgN,cACf,IAAItG,GAAQkJ,IAAM5H,EAAoB4H,IAAO5P,EAAM6N,aAAe+B,EAAG9P,OAArE,CAIA,GAAI+P,GAAK7P,EAAMiN,YACXvG,IAAQmJ,GAAM7H,EAAoB6H,IAA0B,GAAnB7P,EAAM8N,WAInD2B,EAAMhK,KAAKiB,OAER+I,EAGX,QAASlD,GAAQvM,GACb,GAAIsD,GAAgC,mBAAjBtD,GAAM8P,QAA0B,QAAU9P,EAAM8P,SACnE,OAAO,IAAMxM,EAAO,IAAMrF,EAAIwM,YAAYzK,EAAMgN,gBAAkB,IAAMhN,EAAM6N,YAAc,KACpF5P,EAAIwM,YAAYzK,EAAMiN,cAAgB,IAAMjN,EAAM8N,UAAY,KAO1E,QAAS4B,GAAc1P,EAAO+P,GAK1B,GAJAxS,KAAKyC,MAAQA,EACbzC,KAAKwS,gCAAkCA,GAGlC/P,EAAMgQ,UAAW,CAClBzS,KAAKqS,GAAK5P,EAAMgN,eAChBzP,KAAK0S,GAAKjQ,EAAM6N,YAChBtQ,KAAKsS,GAAK7P,EAAMiN,aAChB1P,KAAK2S,GAAKlQ,EAAM8N,SAChB,IAAI1D,GAAOpK,EAAMmQ,uBAEb5S,MAAKqS,KAAOrS,KAAKsS,IAAM7H,EAAoBzK,KAAKqS,KAChDrS,KAAK6S,2BAA4B,EACjC7S,KAAK8S,OAAS9S,KAAK+S,MAAQ/S,KAAK6N,MAAQ7N,KAAKqS,KAE7CrS,KAAK8S,OAAS9S,KAAK6N,MAAS7N,KAAKqS,KAAOxF,GAASpC,EAAoBzK,KAAKqS,IACxC7H,EAAqBxK,KAAKqS,GAAIxF,GAAM,GAAlE7M,KAAKqS,GAAG9K,WAAWvH,KAAK0S,IAC5B1S,KAAK+S,MAAS/S,KAAKsS,KAAOzF,GAASpC,EAAoBzK,KAAKsS,IACtB9H,EAAqBxK,KAAKsS,GAAIzF,GAAM,GAAtE7M,KAAKsS,GAAG/K,WAAWvH,KAAK2S,GAAK,KAoG7C,QAASK,GAAe/E,GACpBjO,KAAKkO,KAAOlO,KAAKiO,GACjBjO,KAAKiO,SAAWA,EAChBjO,KAAKqE,QAAU,mBAAqBrE,KAAKiO,SAoB7C,QAASgF,GAAqBtB,GAC1B,MAAO,UAASxI,EAAMmB,GAElB,IADA,GAAIzI,GAAGmI,EAAIM,EAAiBnB,EAAOA,EAAKM,WACjCO,GAAG,CAEN,GADAnI,EAAImI,EAAExC,SACF0C,EAAcyH,EAAW9P,GACzB,MAAOmI,EAEXA,GAAIA,EAAEP,WAEV,MAAO,OAQf,QAASyJ,GAAsC/J,EAAMgK,GACjD,GAAIC,GAAiCjK,EAAMgK,GACvC,KAAM,IAAIH,GAAe,yBAIjC,QAASK,GAAkB5Q,GACvB,IAAKA,EAAMgN,eACP,KAAM,IAAIzB,GAAa,qBAI/B,QAASsF,GAAoBnK,EAAMoK,GAC/B,IAAKrJ,EAAcqJ,EAAcpK,EAAK3B,UAClC,KAAM,IAAIwL,GAAe,yBAIjC,QAASQ,GAAkBrK,EAAMoC,GAC7B,GAAa,EAATA,GAAcA,GAAUd,EAAoBtB,GAAQA,EAAK5G,OAAS4G,EAAK5B,WAAWhF,QAClF,KAAM,IAAIyL,GAAa,kBAI/B,QAASyF,GAA6B3J,EAAOC,GACzC,GAAI2J,GAA+B5J,GAAO,KAAU4J,GAA+B3J,GAAO,GACtF,KAAM,IAAIiE,GAAa,sBAI/B,QAAS2F,GAAsBxK,GAC3B,GAAIyK,GAAoBzK,GAAM,GAC1B,KAAM,IAAI6E,GAAa,+BAI/B,QAAS6F,GAAW1K,EAAM8E,GACtB,IAAK9E,EACD,KAAM,IAAI6E,GAAaC,GAI/B,QAAS6F,GAAS3K,GACd,MAAQgE,IAAmBzM,EAAIuM,aAAa9D,KACvCe,EAAc6J,EAAwB5K,EAAK3B,YAAckM,GAA+BvK,GAAM,GAGvG,QAAS6K,GAAc7K,EAAMoC,GACzB,MAAOA,KAAWd,EAAoBtB,GAAQA,EAAK5G,OAAS4G,EAAK5B,WAAWhF,QAGhF,QAAS0R,GAAaxR,GAClB,QAAUA,EAAMgN,kBAAoBhN,EAAMiN,eAC9BoE,EAASrR,EAAMgN,kBACfqE,EAASrR,EAAMiN,eAChBsE,EAAcvR,EAAMgN,eAAgBhN,EAAM6N,cAC1C0D,EAAcvR,EAAMiN,aAAcjN,EAAM8N,WAGvD,QAASH,GAAiB3N,GAEtB,GADA4Q,EAAkB5Q,IACbwR,EAAaxR,GACd,KAAM,IAAI6F,OAAM,6DAA+D7F,EAAMuM,UAAY,KA0FzG,QAASkF,GAAqBzR,EAAOyI,GACjCkF,EAAiB3N,EAEjB,IAAI4P,GAAK5P,EAAMgN,eAAgBiD,EAAKjQ,EAAM6N,YAAagC,EAAK7P,EAAMiN,aAAciD,EAAKlQ,EAAM8N,UACvF4D,EAAgB9B,IAAOC,CAEvB7H,GAAoB6H,IAAOK,EAAK,GAAKA,EAAKL,EAAG/P,QAC7CyI,EAAcsH,EAAIK,EAAIzH,GAGtBT,EAAoB4H,IAAOK,EAAK,GAAKA,EAAKL,EAAG9P,SAC7C8P,EAAKrH,EAAcqH,EAAIK,EAAIxH,GACvBiJ,GACAxB,GAAMD,EACNJ,EAAKD,GACEC,GAAMD,EAAG5I,YAAckJ,GAAMjJ,EAAa2I,IACjDM,IAEJD,EAAK,GAETjQ,EAAM2R,eAAe/B,EAAIK,EAAIJ,EAAIK,GAoXrC,QAAS0B,GAAgCrN,GACrCA,EAAIsN,eAAiBC,GACrBvN,EAAIwN,aAAeC,GACnBzN,EAAI0N,WAAaC,GACjB3N,EAAI4N,aAAeC,GAEnB7N,EAAI8N,YAAcC,GAClB/N,EAAIgO,WAAaC,GACjBjO,EAAIkO,sBAAwBC,GAC5BnO,EAAIoO,YAAcC,GAGtB,QAASC,GAAwBC,GAC7BlB,EAAgCkB,GAChClB,EAAgCkB,EAAY3V,WAGhD,QAAS4V,GAA0BC,EAASC,GACxC,MAAO,YACHtF,EAAiBpQ,KAEjB,IAKImJ,GAAMwM,EALNtD,EAAKrS,KAAKyP,eAAgBiD,EAAK1S,KAAKsQ,YAAazD,EAAO7M,KAAK4S,wBAE7DlC,EAAW,GAAIyB,GAAcnS,MAAM,EAInCqS,KAAOxF,IACP1D,EAAOqB,EAAqB6H,EAAIxF,GAAM,GACtC8I,EAAW9F,EAAqB1G,GAChCkJ,EAAKsD,EAASxM,KACduJ,EAAKiD,EAASpK,QAIlByF,EAAeN,EAAUiD,GAEzBjD,EAASkF,OAGT,IAAIC,GAAcJ,EAAQ/E,EAM1B,OALAA,GAAS1L,SAGT0Q,EAAgB1V,KAAMqS,EAAIK,EAAIL,EAAIK,GAE3BmD,GAIf,QAASC,GAAqBP,EAAaG,EAAiBK,GACxD,QAASC,GAA4BC,EAAUC,GAC3C,MAAO,UAAS/M,GACZkK,EAAkBrT,MAClBsT,EAAoBnK,EAAMgN,GAC1B7C,EAAoBhH,EAAiBnD,GAAO4K,EAE5C,IAAI4B,IAAYM,EAAWrG,EAAwBC,GAAsB1G,IACxE+M,EAAUE,EAAgBC,GAAarW,KAAM2V,EAASxM,KAAMwM,EAASpK,SAI9E,QAAS6K,GAAc3T,EAAO0G,EAAMoC,GAChC,GAAI+G,GAAK7P,EAAMiN,aAAciD,EAAKlQ,EAAM8N,WACpCpH,IAAS1G,EAAMgN,gBAAkBlE,IAAW9I,EAAM6N,gBAG9ChE,EAAiBnD,IAASmD,EAAiBgG,IAA8C,GAAvC/F,EAAcpD,EAAMoC,EAAQ+G,EAAIK,MAClFL,EAAKnJ,EACLwJ,EAAKpH,GAETmK,EAAgBjT,EAAO0G,EAAMoC,EAAQ+G,EAAIK,IAIjD,QAAS0D,GAAY5T,EAAO0G,EAAMoC,GAC9B,GAAI8G,GAAK5P,EAAMgN,eAAgBiD,EAAKjQ,EAAM6N,aACtCnH,IAAS1G,EAAMiN,cAAgBnE,IAAW9I,EAAM8N,cAG5CjE,EAAiBnD,IAASmD,EAAiB+F,IAA8C,IAAvC9F,EAAcpD,EAAMoC,EAAQ8G,EAAIK,MAClFL,EAAKlJ,EACLuJ,EAAKnH,GAETmK,EAAgBjT,EAAO4P,EAAIK,EAAIvJ,EAAMoC,IAK7C,GAAI+K,GAAI,YACRA,GAAE1W,UAAYgE,EAAIiF,eAClB0M,EAAY3V,UAAY,GAAI0W,GAE5B1P,EAAKG,OAAOwO,EAAY3V,WACpB2W,SAAU,SAASpN,EAAMoC,GACrB8H,EAAkBrT,MAClBkT,EAAsC/J,GAAM,GAC5CqK,EAAkBrK,EAAMoC,GAExB6K,EAAcpW,KAAMmJ,EAAMoC,IAG9BiL,OAAQ,SAASrN,EAAMoC,GACnB8H,EAAkBrT,MAClBkT,EAAsC/J,GAAM,GAC5CqK,EAAkBrK,EAAMoC,GAExB8K,EAAYrW,KAAMmJ,EAAMoC,IAW5B6I,eAAgB,WACZf,EAAkBrT,KAElB,IAAIyW,GAAO9N,UACP0J,EAAKoE,EAAK,GAAI/D,EAAK+D,EAAK,GAAInE,EAAKD,EAAIM,EAAKD,CAE9C,QAAQ+D,EAAKlU,QACT,IAAK,GACDoQ,EAAK8D,EAAK,EACV,MACJ,KAAK,GACDnE,EAAKmE,EAAK,GACV9D,EAAK8D,EAAK,GAIlBf,EAAgB1V,KAAMqS,EAAIK,EAAIJ,EAAIK,IAGtC+D,YAAa,SAASvN,EAAMoC,EAAQ2K,GAChClW,KAAK,OAASkW,EAAU,QAAU,QAAQ/M,EAAMoC,IAGpDoL,eAAgBX,GAA4B,GAAM,GAClDY,cAAeZ,GAA4B,GAAO,GAClDa,aAAcb,GAA4B,GAAM,GAChDc,YAAad,GAA4B,GAAO,GAEhDe,SAAU,SAASb,GACf9F,EAAiBpQ,MACbkW,EACAR,EAAgB1V,KAAMA,KAAKyP,eAAgBzP,KAAKsQ,YAAatQ,KAAKyP,eAAgBzP,KAAKsQ,aAEvFoF,EAAgB1V,KAAMA,KAAK0P,aAAc1P,KAAKuQ,UAAWvQ,KAAK0P,aAAc1P,KAAKuQ,YAIzFyG,mBAAoB,SAAS7N,GACzBkK,EAAkBrT,MAClBkT,EAAsC/J,GAAM,GAE5CuM,EAAgB1V,KAAMmJ,EAAM,EAAGA,EAAMS,EAAcT,KAGvD8N,WAAY,SAAS9N,GACjBkK,EAAkBrT,MAClBkT,EAAsC/J,GAAM,GAC5CmK,EAAoBnK,EAAMgN,EAE1B,IAAIe,GAAQtH,EAAsBzG,GAAOgO,EAAMtH,EAAqB1G,EACpEuM,GAAgB1V,KAAMkX,EAAM/N,KAAM+N,EAAM3L,OAAQ4L,EAAIhO,KAAMgO,EAAI5L,SAGlE6L,gBAAiB5B,EAA0B/D,EAAgBiE,GAE3D2B,eAAgB7B,EAA0BjE,EAAemE,GAEzD4B,oBAAqB,WACjBlH,EAAiBpQ,MACjB2T,EAAsB3T,KAAKyP,gBAC3BkE,EAAsB3T,KAAK0P,aAI3B,IAAIgB,GAAW,GAAIyB,GAAcnS,MAAM,GACnCuX,EAAqB7G,EAASoC,QAAWtD,EAA2BkB,EAASoC,OAAQ9S,OAChF0Q,EAASqC,OAASvD,EAA2BkB,EAASqC,MAAO/S,KAEtE,OADA0Q,GAAS1L,UACDuS,GAGZvS,OAAQ,WACJ+Q,EAAS/V,OAGbwX,gBAAiB,WACbtD,EAAqBlU,OAGzByX,mCAAoC,SAASvM,GACzCgJ,EAAqBlU,KAAMkL,IAG/BwM,oBAAqB,WACjBtH,EAAiBpQ,KAEjB,IAAIqS,GAAKrS,KAAKyP,eAAgBiD,EAAK1S,KAAKsQ,YAAagC,EAAKtS,KAAK0P,aAAciD,EAAK3S,KAAKuQ,UAEnFoH,EAAe,SAASxO,GACxB,GAAIyO,GAAUzO,EAAK2B,WACf8M,IAAWA,EAAQpQ,UAAY2B,EAAK3B,WACpC8K,EAAKnJ,EACLwJ,EAAKxJ,EAAK5G,OACV4G,EAAK0O,WAAWD,EAAQxK,MACxBwK,EAAQnO,WAAWqO,YAAYF,KAInCG,EAAgB,SAAS5O,GACzB,GAAIyO,GAAUzO,EAAKQ,eACnB,IAAIiO,GAAWA,EAAQpQ,UAAY2B,EAAK3B,SAAU,CAC9C6K,EAAKlJ,CACL,IAAI6O,GAAa7O,EAAK5G,MAItB,IAHAmQ,EAAKkF,EAAQrV,OACb4G,EAAK8O,WAAW,EAAGL,EAAQxK,MAC3BwK,EAAQnO,WAAWqO,YAAYF,GAC3BvF,GAAMC,EACNK,GAAMD,EACNJ,EAAKD,MACF,IAAIC,GAAMnJ,EAAKM,WAAY,CAC9B,GAAIyO,GAAYxO,EAAaP,EACzBwJ,IAAMuF,GACN5F,EAAKnJ,EACLwJ,EAAKqF,GACErF,EAAKuF,GACZvF,OAMZwF,GAAiB,CAErB,IAAI1N,EAAoB6H,GAChBA,EAAG/P,QAAUoQ,GACbgF,EAAarF,OAEd,CACH,GAAIK,EAAK,EAAG,CACR,GAAIyF,GAAU9F,EAAG/K,WAAWoL,EAAK,EAC7ByF,IAAW3N,EAAoB2N,IAC/BT,EAAaS,GAGrBD,GAAkBnY,KAAKyS,UAG3B,GAAI0F,GACA,GAAI1N,EAAoB4H,GACV,GAANK,GACAqF,EAAc1F,OAGlB,IAAIK,EAAKL,EAAG9K,WAAWhF,OAAQ,CAC3B,GAAI8V,GAAYhG,EAAG9K,WAAWmL,EAC1B2F,IAAa5N,EAAoB4N,IACjCN,EAAcM,QAK1BhG,GAAKC,EACLI,EAAKC,CAGT+C,GAAgB1V,KAAMqS,EAAIK,EAAIJ,EAAIK,IAGtC2F,gBAAiB,SAASnP,EAAMoC,GAC5B8H,EAAkBrT,MAClBkT,EAAsC/J,GAAM,GAC5CqK,EAAkBrK,EAAMoC,GACxBvL,KAAKoU,eAAejL,EAAMoC,MAIlC+J,EAAwBC,GAM5B,QAASgD,GAAiC9V,GACtCA,EAAMgQ,UAAahQ,EAAMgN,iBAAmBhN,EAAMiN,cAAgBjN,EAAM6N,cAAgB7N,EAAM8N,UAC9F9N,EAAMmQ,wBAA0BnQ,EAAMgQ,UAClChQ,EAAMgN,eAAiB/O,EAAImJ,kBAAkBpH,EAAMgN,eAAgBhN,EAAMiN,cAGjF,QAAS8I,GAAiB/V,EAAOgN,EAAgBa,EAAaZ,EAAca,GACxE9N,EAAMgN,eAAiBA,EACvBhN,EAAM6N,YAAcA,EACpB7N,EAAMiN,aAAeA,EACrBjN,EAAM8N,UAAYA,EAClB9N,EAAMmC,SAAWlE,EAAI8K,YAAYiE,GAEjC8I,EAAiC9V,GAGrC,QAASuC,GAAOvC,GACZ4Q,EAAkB5Q,GAClBA,EAAMgN,eAAiBhN,EAAM6N,YAAc7N,EAAMiN,aAAejN,EAAM8N,UAAY9N,EAAMmC,SAAW,KACnGnC,EAAMgQ,UAAYhQ,EAAMmQ,wBAA0B,KAGtD,QAAS6F,GAAM1V,GACX/C,KAAKyP,eAAiB1M,EACtB/C,KAAKsQ,YAAc,EACnBtQ,KAAK0P,aAAe3M,EACpB/C,KAAKuQ,UAAY,EACjBvQ,KAAK4E,SAAW7B,EAChBwV,EAAiCvY,MA/rCrC,GAAIU,GAAMkD,EAAIlD,IACVkG,EAAOhD,EAAIgD,KACXmH,EAAcrN,EAAIqN,YAClBC,EAAepK,EAAIoK,aAEnBvD,EAAsB/J,EAAI+J,oBAC1Bf,EAAehJ,EAAIgJ,aACnBa,EAAmB7J,EAAI6J,iBACvBiB,EAAc9K,EAAI8K,YAClBe,EAAgB7L,EAAI6L,cACpBvB,EAAgBtK,EAAIsK,cACpBR,EAAuB9J,EAAI8J,qBAC3BZ,EAAgBlJ,EAAIkJ,cACpBM,EAAgBxJ,EAAIwJ,cACpBoC,EAAmB5L,EAAI4L,iBACvBa,EAAkBvJ,EAAIwB,SAAS+H,eA0MnCgF,GAAcvS,WACV+O,SAAU,KACVd,MAAO,KACPiF,OAAQ,KACRC,MAAO,KACPF,2BAA2B,EAE3B+C,MAAO,WACH5V,KAAK2O,SAAW,KAChB3O,KAAK6N,MAAQ7N,KAAK8S,QAGtBlE,QAAS,WACL,QAAS5O,KAAK6N,OAGlBgB,KAAM,WAEF,GAAI6J,GAAU1Y,KAAK2O,SAAW3O,KAAK6N,KAenC,OAdI6K,KACA1Y,KAAK6N,MAAS6K,IAAY1Y,KAAK+S,MAAS2F,EAAQ5N,YAAc,KAG1DL,EAAoBiO,IAAY1Y,KAAKwS,kCACjCkG,IAAY1Y,KAAKsS,KAChBoG,EAAUA,EAAQtN,WAAU,IAAOC,WAAWrL,KAAK2S,GAAI+F,EAAQnW,OAASvC,KAAK2S,IAE9E3S,KAAK2O,WAAa3O,KAAKqS,KACtBqG,EAAUA,EAAQtN,WAAU,IAAOC,WAAW,EAAGrL,KAAK0S,MAK5DgG,GAGXlH,OAAQ,WACJ,GAA6B0F,GAAOC,EAAhCuB,EAAU1Y,KAAK2O,UAEflE,EAAoBiO,IAAaA,IAAY1Y,KAAKqS,IAAMqG,IAAY1Y,KAAKsS,GAOrEoG,EAAQjP,YACRiP,EAAQjP,WAAWqO,YAAYY,IAPnCxB,EAASwB,IAAY1Y,KAAKqS,GAAMrS,KAAK0S,GAAK,EAC1CyE,EAAOuB,IAAY1Y,KAAKsS,GAAMtS,KAAK2S,GAAK+F,EAAQnW,OAC5C2U,GAASC,GACTuB,EAAQrN,WAAW6L,EAAOC,EAAMD,KAW5CpG,2BAA4B,WACxB,GAAI4H,GAAU1Y,KAAK2O,QACnB,OAAOa,GAA2BkJ,EAAS1Y,KAAKyC,QAGpDsO,mBAAoB,WAChB,GAAI4H,EACJ,IAAI3Y,KAAK6S,0BACL8F,EAAW3Y,KAAKyC,MAAMmW,aACtBD,EAAS5B,UAAS,OACf,CACH4B,EAAW,GAAIF,GAAM9I,EAAiB3P,KAAKyC,OAC3C,IAAIiW,GAAU1Y,KAAK2O,SACfc,EAAiBiJ,EAASpI,EAAc,EAAGZ,EAAegJ,EAASnI,EAAY3G,EAAc8O,EAE7FnO,GAAiBmO,EAAS1Y,KAAKqS,MAC/B5C,EAAiBzP,KAAKqS,GACtB/B,EAActQ,KAAK0S,IAEnBnI,EAAiBmO,EAAS1Y,KAAKsS,MAC/B5C,EAAe1P,KAAKsS,GACpB/B,EAAYvQ,KAAK2S,IAGrB6F,EAAiBG,EAAUlJ,EAAgBa,EAAaZ,EAAca,GAE1E,MAAO,IAAI4B,GAAcwG,EAAU3Y,KAAKwS,kCAG5CxN,OAAQ,SAAS6T,GACTA,GACA7Y,KAAKyC,MAAMuC,SAEfhF,KAAKyC,MAAQzC,KAAK2O,SAAW3O,KAAK6N,MAAQ7N,KAAK8S,OAAS9S,KAAK+S,MAAQ/S,KAAKqS,GAAKrS,KAAK0S,GAAK1S,KAAKsS,GAAKtS,KAAK2S,GAAK,OAcrHK,EAAepT,WACXkZ,uBAAwB,EACxBC,sBAAuB,GAG3B/F,EAAepT,UAAUU,SAAW,WAChC,MAAON,MAAKqE,QAKhB,IAAI8R,IAAwB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC1CpC,GAA0B,EAAG,EAAG,IAChCiF,GAAqB,EAAG,EAAG,GAAI,IAC/BC,IAAuB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7CC,IAAqB,EAAG,EAAG,EAAG,EAAG,EAAG,GAgBpCxF,GAAiCT,GAAuB,EAAG,KAC3DW,GAAsBX,EAAqB+F,GAC3C5F,GAAmCH,GAAuB,EAAG,GAAI,KAuEjEkG,GAAUvU,SAASuC,cAAc,SACjCiS,IAAsB,CAC1B,KACID,GAAQ5L,UAAY,WACpB6L,GAAsD,GAA/BD,GAAQnM,WAAWxF,SAC5C,MAAOE,KAIT9D,EAAIwB,SAASgU,oBAAsBA,EAEnC,IAAIC,IAA2BD,GAM3B,SAASE,GAEL,GAAInQ,GAAOnJ,KAAKyP,eACZ1M,EAAMyI,EAAYrC,EAItB,KAAKA,EACD,KAAM,IAAI6E,GAAa,oBAK3B,IAAI9G,GAAK,IAuCT,OApCqB,IAAjBiC,EAAK3B,SACLN,EAAKiC,EAGEsB,EAAoBtB,KAC3BjC,EAAKxG,EAAI6I,cAAcJ,IAcvBjC,EARO,OAAPA,GACe,QAAfA,EAAGjC,UACAvE,EAAIwI,gBAAgBsC,EAAYtE,GAAIuH,kBACpC/N,EAAIwI,gBAAgBhC,GAKlBnE,EAAIoE,cAAc,QAElBD,EAAGkE,WAAU,GAOtBlE,EAAGqG,UAAY+L,EAQR5Y,EAAI8M,yBAAyBtG,IAKxC,SAASoS,GACLjG,EAAkBrT,KAClB,IAAI+C,GAAM4M,EAAiB3P,MACvBkH,EAAKnE,EAAIoE,cAAc,OAG3B,OAFAD,GAAGqG,UAAY+L,EAER5Y,EAAI8M,yBAAyBtG,IA4BxCqS,IAAmB,iBAAkB,cAAe,eAAgB,YAAa,YACjF,2BAEAhF,GAAM,EAAGE,GAAM,EAAGE,GAAM,EAAGE,GAAM,EACjCE,GAAM,EAAGE,GAAM,EAAGE,GAAQ,EAAGE,GAAM,CAEvCzO,GAAKG,OAAOnD,EAAIiF,gBACZ2Q,sBAAuB,SAASC,EAAKhX,GACjC2N,EAAiBpQ,MACjByT,EAA6BzT,KAAKyP,eAAgBhN,EAAMgN,eAExD,IAAIjD,GAAOC,EAASC,EAAOC,EACvB+M,EAAWD,GAAO5E,IAAO4E,GAAOlF,GAAO,QAAU,MACjDoF,EAAWF,GAAOhF,IAAOgF,GAAOlF,GAAO,QAAU,KAKrD,OAJA/H,GAAQxM,KAAK0Z,EAAU,aACvBjN,EAAUzM,KAAK0Z,EAAU,UACzBhN,EAAQjK,EAAMkX,EAAU,aACxBhN,EAAUlK,EAAMkX,EAAU,UACnBpN,EAAcC,EAAOC,EAASC,EAAOC,IAGhDiN,WAAY,SAASzQ,GAKjB,GAJAiH,EAAiBpQ,MACjBsT,EAAoBnK,EAAM8P,IAC1BtF,EAAsB3T,KAAKyP,gBAEvBlF,EAAiBpB,EAAMnJ,KAAKyP,gBAC5B,KAAM,IAAIzB,GAAa,wBAO3B,IAAI+B,GAAoBD,EAAqB3G,EAAMnJ,KAAKyP,eAAgBzP,KAAKsQ,YAC7EtQ,MAAK2W,eAAe5G,IAGxB8J,cAAe,WACXzJ,EAAiBpQ,KAEjB,IAAI8Z,GAAOjJ,CACX,IAAI7Q,KAAKyS,UACL,MAAO9C,GAAiB3P,MAAM2N,wBAE9B,IAAI3N,KAAKyP,iBAAmBzP,KAAK0P,cAAgBjF,EAAoBzK,KAAKyP,gBAKtE,MAJAqK,GAAQ9Z,KAAKyP,eAAerE,WAAU,GACtC0O,EAAM1M,KAAO0M,EAAM1M,KAAK9F,MAAMtH,KAAKsQ,YAAatQ,KAAKuQ,WACrDM,EAAOlB,EAAiB3P,MAAM2N,yBAC9BkD,EAAKzJ,YAAY0S,GACVjJ,CAEP,IAAIH,GAAW,GAAIyB,GAAcnS,MAAM,EAI3C,OAHI8Z,GAAQrJ,EAAaC,GACrBA,EAAS1L,SAEN8U,GAIfxC,oBAAqB,WACjBlH,EAAiBpQ,MACjB2T,EAAsB3T,KAAKyP,gBAC3BkE,EAAsB3T,KAAK0P,aAI3B,IAAIgB,GAAW,GAAIyB,GAAcnS,MAAM,GACnCuX,EAAqB7G,EAASoC,QAAWtD,EAA2BkB,EAASoC,OAAQ9S,OAChF0Q,EAASqC,OAASvD,EAA2BkB,EAASqC,MAAO/S,KAEtE,OADA0Q,GAAS1L,UACDuS,GAGZwC,iBAAkB,SAAS5Q,GAGvB,GAFAmK,EAAoBnK,EAAM+P,KAErBlZ,KAAKsX,sBACN,KAAM,IAAItE,GAAe,yBAI7B,IAAIgH,GAAUha,KAAKoX,iBAGnB,IAAIjO,EAAK8Q,gBACL,KAAO9Q,EAAK+Q,WACR/Q,EAAK2O,YAAY3O,EAAK+Q,UAK9BpK,GAAqB3G,EAAMnJ,KAAKyP,eAAgBzP,KAAKsQ,aACrDnH,EAAK/B,YAAY4S,GAEjBha,KAAKiX,WAAW9N,IAGpByP,WAAY,WACRxI,EAAiBpQ,KAGjB,KAFA,GACgCma,GAD5B1X,EAAQ,GAAIgW,GAAM9I,EAAiB3P,OACnCsC,EAAIiX,GAAgBhX,OACjBD,KACH6X,EAAOZ,GAAgBjX,GACvBG,EAAM0X,GAAQna,KAAKma,EAEvB,OAAO1X,IAGXnC,SAAU,WACN8P,EAAiBpQ,KACjB,IAAIqS,GAAKrS,KAAKyP,cACd,IAAI4C,IAAOrS,KAAK0P,cAAgBjF,EAAoB4H,GAChD,MAAuB,IAAfA,EAAG7K,UAAgC,GAAf6K,EAAG7K,SAAiB6K,EAAGjF,KAAK9F,MAAMtH,KAAKsQ,YAAatQ,KAAKuQ,WAAa,EAElG,IAAI6J,MAAgB1J,EAAW,GAAIyB,GAAcnS,MAAM,EAQvD,OAPAgR,GAAeN,EAAU,SAASvH,IAET,GAAjBA,EAAK3B,UAAkC,GAAjB2B,EAAK3B,WAC3B4S,EAAUlS,KAAKiB,EAAKiE,QAG5BsD,EAAS1L,SACFoV,EAAUnI,KAAK,KAO9BoI,YAAa,SAASlR,GAClBiH,EAAiBpQ,KAEjB,IAAIwJ,GAASL,EAAKM,WACdyO,EAAYxO,EAAaP,EAE7B,KAAKK,EACD,KAAM,IAAIwE,GAAa,gBAG3B,IAAIqC,GAAkBrQ,KAAKsa,aAAa9Q,EAAQ0O,GAC5C1H,EAAgBxQ,KAAKsa,aAAa9Q,EAAQ0O,EAAY,EAE1D,OAAsB,GAAlB7H,EACQG,EAAgB,EAAK2E,GAAQJ,GAE7BvE,EAAgB,EAAKyE,GAAMI,IAI3CiF,aAAc,SAASnR,EAAMoC,GAKzB,MAJA6E,GAAiBpQ,MACjB6T,EAAW1K,EAAM,yBACjBsK,EAA6BtK,EAAMnJ,KAAKyP,gBAEpClD,EAAcpD,EAAMoC,EAAQvL,KAAKyP,eAAgBzP,KAAKsQ,aAAe,EAC9D,GACA/D,EAAcpD,EAAMoC,EAAQvL,KAAK0P,aAAc1P,KAAKuQ,WAAa,EACjE,EAEJ,GAGX8I,yBAA0BA,GAE1BkB,OAAQ,WACJnK,EAAiBpQ,KACjB,IAAIwa,GAAYxa,KAAK4S,wBAAwBnJ,WAAW2B,WAAU,EAElE,OADAoP,GAAUpT,YAAYpH,KAAK6Z,iBACpBW,EAAUjN,WAKrBkN,eAAgB,SAAStR,EAAMgH,GAG3B,GAFAC,EAAiBpQ,MACjB6T,EAAW1K,EAAM,iBACbqC,EAAYrC,KAAUwG,EAAiB3P,MACvC,OAAO,CAGX,IAAIwJ,GAASL,EAAKM,WAAY8B,EAAS7B,EAAaP,EACpD0K,GAAWrK,EAAQ,gBAEnB,IAAI6G,GAAkB9D,EAAc/C,EAAQ+B,EAAQvL,KAAK0P,aAAc1P,KAAKuQ,WACxEC,EAAgBjE,EAAc/C,EAAQ+B,EAAS,EAAGvL,KAAKyP,eAAgBzP,KAAKsQ,YAEhF,OAAOH,GAA4C,GAAnBE,GAAwBG,GAAiB,EAAsB,EAAlBH,GAAuBG,EAAgB,GAGxHkK,eAAgB,SAASvR,EAAMoC,GAK3B,MAJA6E,GAAiBpQ,MACjB6T,EAAW1K,EAAM,yBACjBsK,EAA6BtK,EAAMnJ,KAAKyP,gBAEhClD,EAAcpD,EAAMoC,EAAQvL,KAAKyP,eAAgBzP,KAAKsQ,cAAgB,GACtE/D,EAAcpD,EAAMoC,EAAQvL,KAAK0P,aAAc1P,KAAKuQ,YAAc,GAM9EoK,gBAAiB,SAASlY,GACtB,MAAOuN,GAAgBhQ,KAAMyC,GAAO,IAIxCmY,yBAA0B,SAASnY,GAC/B,MAAOuN,GAAgBhQ,KAAMyC,GAAO,IAGxCoY,aAAc,SAASpY,GACnB,GAAIzC,KAAK2a,gBAAgBlY,GAAQ,CAC7B,GAAI4N,GAAkB9D,EAAcvM,KAAKyP,eAAgBzP,KAAKsQ,YAAa7N,EAAMgN,eAAgBhN,EAAM6N,aACnGE,EAAgBjE,EAAcvM,KAAK0P,aAAc1P,KAAKuQ,UAAW9N,EAAMiN,aAAcjN,EAAM8N,WAE3FuK,EAAoB9a,KAAK4Y,YAO7B,OANuB,IAAnBvI,GACAyK,EAAkBvE,SAAS9T,EAAMgN,eAAgBhN,EAAM6N,aAEtC,GAAjBE,GACAsK,EAAkBtE,OAAO/T,EAAMiN,aAAcjN,EAAM8N,WAEhDuK,EAEX,MAAO,OAGXC,MAAO,SAAStY,GACZ,GAAIzC,KAAK4a,yBAAyBnY,GAAQ,CACtC,GAAIuY,GAAahb,KAAK4Y,YAOtB,OANqG,IAAjGrM,EAAc9J,EAAMgN,eAAgBhN,EAAM6N,YAAatQ,KAAKyP,eAAgBzP,KAAKsQ,cACjF0K,EAAWzE,SAAS9T,EAAMgN,eAAgBhN,EAAM6N,aAEyC,GAAzF/D,EAAc9J,EAAMiN,aAAcjN,EAAM8N,UAAWvQ,KAAK0P,aAAc1P,KAAKuQ,YAC3EyK,EAAWxE,OAAO/T,EAAMiN,aAAcjN,EAAM8N,WAEzCyK,EAEP,KAAM,IAAIhI,GAAe,4BAIjCiI,aAAc,SAAS9R,EAAM+R,GACzB,MAAIA,GACOlb,KAAKya,eAAetR,GAAM,GAE1BnJ,KAAKqa,YAAYlR,IAASkM,IAIzC8F,qBAAsB,SAAShS,GAC3B,MAAOnJ,MAAKsa,aAAanR,EAAM,IAAM,GAAKnJ,KAAKsa,aAAanR,EAAMS,EAAcT,KAAU,GAG9FiS,cAAe,SAAS3Y,GACpB,GAAIoY,GAAe7a,KAAK6a,aAAapY,EACrC,OAAwB,QAAjBoY,GAAyBpY,EAAMqM,OAAO+L,IAGjDQ,iBAAkB,SAASlS,GACvB,GAAImS,GAAYtb,KAAK4Y,YACrB0C,GAAUrE,WAAW9N,EACrB,IAAIoS,GAAYD,EAAUE,UAAU,GACpC,IAAID,EAAUhZ,OAAS,EAAG,CACtB+Y,EAAU/E,SAASgF,EAAU,GAAI,EACjC,IAAIE,GAAeF,EAAUG,KAC7BJ,GAAU9E,OAAOiF,EAAcA,EAAalZ,OAC5C,IAAIoZ,GAAW3b,KAAKob,cAAcE,EAElC,OADAA,GAAUtW,SACH2W,EAEP,MAAO3b,MAAKmb,qBAAqBhS,IAIzCqS,SAAU,SAAS7J,EAAWC,GAE1B,MADAxB,GAAiBpQ,MACV0R,EAAgB1R,KAAM2R,EAAWC,IAG5CpG,YAAa,WACT,MAAOmE,GAAiB3P,OAG5B4b,eAAgB,SAASzS,GACrBkK,EAAkBrT,MAElBA,KAAK6W,aAAa1N,GAClBnJ,KAAK+W,UAAS,IAGlB8E,cAAe,SAAS1S,GACpBkK,EAAkBrT,MAElBA,KAAK4W,cAAczN,GACnBnJ,KAAK+W,UAAS,IAGlB+E,YAAa,SAASC,GAClB,GAAIhZ,GAAM4M,EAAiB3P,MACvBgc,EAAoBpY,EAAIiB,YAAY9B,EACxCgZ,GAAgBA,GAAiBrb,EAAIoC,QAAQC,GAC7CiZ,EAAkBhF,mBAAmB+E,EACrC,IAAItZ,GAAQzC,KAAK6a,aAAamB,GAC1B9E,EAAQ,EAAGC,EAAM,CAQrB,OAPI1U,KACAuZ,EAAkBxF,OAAO/T,EAAMgN,eAAgBhN,EAAM6N,aACrD4G,EAAQ8E,EAAkB1b,WAAWiC,OACrC4U,EAAMD,EAAQzU,EAAMnC,WAAWiC,OAC/ByZ,EAAkBhX,WAIlBkS,MAAOA,EACPC,IAAKA,EACL4E,cAAeA,IAIvBE,eAAgB,SAASC,GACrB,GAAIH,GAAgBG,EAASH,cACzBI,EAAY,CAChBnc,MAAKuW,SAASwF,EAAe,GAC7B/b,KAAK+W,UAAS,EAId,KAHA,GAAiC5N,GAC7BiT,EAAe9Z,EAAGiF,EADlB8U,GAAaN,GAAsBO,GAAa,EAAOjL,GAAO,GAG1DA,IAASlI,EAAOkT,EAAUX,QAC9B,GAAqB,GAAjBvS,EAAK3B,SACL4U,EAAgBD,EAAYhT,EAAK5G,QAC5B+Z,GAAcJ,EAAShF,OAASiF,GAAaD,EAAShF,OAASkF,IAChEpc,KAAKuW,SAASpN,EAAM+S,EAAShF,MAAQiF,GACrCG,GAAa,GAEbA,GAAcJ,EAAS/E,KAAOgF,GAAaD,EAAS/E,KAAOiF,IAC3Dpc,KAAKwW,OAAOrN,EAAM+S,EAAS/E,IAAMgF,GACjC9K,GAAO,GAEX8K,EAAYC,MAIZ,KAFA7U,EAAa4B,EAAK5B,WAClBjF,EAAIiF,EAAWhF,OACRD,KACH+Z,EAAUnU,KAAKX,EAAWjF,KAM1CiQ,QAAS,WACL,MAAO,YAGXzD,OAAQ,SAASrM,GACb,MAAOgW,GAAM8D,YAAYvc,KAAMyC,IAGnC+Z,QAAS,WACL,MAAOvI,GAAajU,OAGxBgP,QAAS,WACL,MAAOA,GAAQhP,SAqUvB8V,EAAqB2C,EAAOD,EAAkBxT,GAE9C4B,EAAKG,OAAO0R,GACRc,gBAAiBA,GACjBpH,cAAeA,EACfmD,wBAAyBA,EACzBQ,qBAAsBA,EACtB9G,QAASA,EACTW,iBAAkBA,EAClB4M,YAAa,SAASE,EAAIC,GACtB,MAAOD,GAAGhN,iBAAmBiN,EAAGjN,gBAC5BgN,EAAGnM,cAAgBoM,EAAGpM,aACtBmM,EAAG/M,eAAiBgN,EAAGhN,cACvB+M,EAAGlM,YAAcmM,EAAGnM,aAIhC3M,EAAI+Y,SAAWlE,EACf7U,EAAIoP,eAAiBA,IAEzB/J,MAAML,iBAAiB,gBAAiB,YAAa,SAAShF,EAAKyB,GAC/D,GAAIuX,GAAcC,EACdnc,EAAMkD,EAAIlD,IACVkG,EAAOhD,EAAIgD,KACXmH,EAAcrN,EAAIqN,YAClB4O,EAAW/Y,EAAI+Y,SACf7Z,EAAUpC,EAAIoC,QACdqJ,EAAqBzL,EAAIyL,mBACzB1B,EAAsB/J,EAAI+J,mBA6Q9B,IAxQI7G,EAAIwB,SAASV,qBAKb,WAII,QAASoY,GAAsBra,GAE3B,IADA,GAAgC0X,GAA5B7X,EAAIiX,EAAgBhX,OACjBD,KACH6X,EAAOZ,EAAgBjX,GACvBG,EAAM0X,GAAQ1X,EAAMsa,YAAY5C,EAGpC1X,GAAMgQ,UAAahQ,EAAMgN,iBAAmBhN,EAAMiN,cAAgBjN,EAAM6N,cAAgB7N,EAAM8N,UAGlG,QAASyM,GAAkBva,EAAOgN,EAAgBa,EAAaZ,EAAca,GACzE,GAAI0M,GAAcxa,EAAMgN,iBAAmBA,GAAkBhN,EAAM6N,aAAeA,EAC9E4M,EAAYza,EAAMiN,eAAiBA,GAAgBjN,EAAM8N,WAAaA,EACtE4M,GAAwB1a,EAAMqM,OAAOrM,EAAMsa,cAG3CE,GAAcC,GAAYC,KAC1B1a,EAAM+T,OAAO9G,EAAca,GAC3B9N,EAAM8T,SAAS9G,EAAgBa,IAIvC,QAAStL,GAAOvC,GACZA,EAAMsa,YAAY/X,SAClBvC,EAAM2a,UAAW,CAEjB,KADA,GAAI9a,GAAIiX,EAAgBhX,OACjBD,KACHG,EAAO8W,EAAgBjX,IAAO,KA9BtC,GAAI+a,GAkCArH,EAjCAuD,EAAkBoD,EAASpD,eAmC/BqD,GAAe,SAASna,GACpB,IAAKA,EACD,KAAM4C,GAAOqD,YAAY,wCAE7B1I,MAAK+c,YAActa,EACnBqa,EAAsB9c,OAG1B2c,EAAS7G,qBAAqB8G,EAAcI,EAAmBhY,GAE/DqY,EAAaT,EAAahd,UAE1Byd,EAAWpG,WAAa,SAAS9N,GAC7BnJ,KAAK+c,YAAY9F,WAAW9N,GAC5B2T,EAAsB9c,OAG1Bqd,EAAWxD,cAAgB,WACvB,MAAO7Z,MAAK+c,YAAYlD,iBAM5BwD,EAAWtD,iBAAmB,SAAS5Q,GACnCnJ,KAAK+c,YAAYhD,iBAAiB5Q,GAClC2T,EAAsB9c,OAG1Bqd,EAAWtG,SAAW,SAASb,GAC3BlW,KAAK+c,YAAYhG,SAASb,GAC1B4G,EAAsB9c,OAG1Bqd,EAAWzE,WAAa,WACpB,MAAO,IAAIgE,GAAa5c,KAAK+c,YAAYnE,eAG7CyE,EAAWC,QAAU,WACjBR,EAAsB9c,OAG1Bqd,EAAW/c,SAAW,WAClB,MAAON,MAAK+c,YAAYzc,WAK5B,IAAIid,GAAe3Y,SAASwJ,eAAe,OAC3CtL,GAAQ8B,UAAUwC,YAAYmW,EAC9B,IAAI9a,GAAQmC,SAASC,aAOrBpC,GAAM8T,SAASgH,EAAc,GAC7B9a,EAAM+T,OAAO+G,EAAc,EAE3B,KACI9a,EAAM8T,SAASgH,EAAc,GAE7BF,EAAW9G,SAAW,SAASpN,EAAMoC,GACjCvL,KAAK+c,YAAYxG,SAASpN,EAAMoC,GAChCuR,EAAsB9c,OAG1Bqd,EAAW7G,OAAS,SAASrN,EAAMoC,GAC/BvL,KAAK+c,YAAYvG,OAAOrN,EAAMoC,GAC9BuR,EAAsB9c,OAG1BgW,EAA8B,SAASjQ,GACnC,MAAO,UAASoD,GACZnJ,KAAK+c,YAAYhX,GAAMoD,GACvB2T,EAAsB9c,QAIhC,MAAMoE,GAEJiZ,EAAW9G,SAAW,SAASpN,EAAMoC,GACjC,IACIvL,KAAK+c,YAAYxG,SAASpN,EAAMoC,GAClC,MAAOnH,GACLpE,KAAK+c,YAAYvG,OAAOrN,EAAMoC,GAC9BvL,KAAK+c,YAAYxG,SAASpN,EAAMoC,GAEpCuR,EAAsB9c,OAG1Bqd,EAAW7G,OAAS,SAASrN,EAAMoC,GAC/B,IACIvL,KAAK+c,YAAYvG,OAAOrN,EAAMoC,GAChC,MAAOnH,GACLpE,KAAK+c,YAAYxG,SAASpN,EAAMoC,GAChCvL,KAAK+c,YAAYvG,OAAOrN,EAAMoC,GAElCuR,EAAsB9c,OAG1BgW,EAA8B,SAASjQ,EAAMyX,GACzC,MAAO,UAASrU,GACZ,IACInJ,KAAK+c,YAAYhX,GAAMoD,GACzB,MAAO/E,GACLpE,KAAK+c,YAAYS,GAAcrU,GAC/BnJ,KAAK+c,YAAYhX,GAAMoD,GAE3B2T,EAAsB9c,QAKlCqd,EAAW1G,eAAiBX,EAA4B,iBAAkB,gBAC1EqH,EAAWzG,cAAgBZ,EAA4B,gBAAiB,eACxEqH,EAAWxG,aAAeb,EAA4B,eAAgB,kBACtEqH,EAAWvG,YAAcd,EAA4B,cAAe,iBAMpEqH,EAAWrG,mBAAqB,SAAS7N,GACrCnJ,KAAKoU,eAAejL,EAAM,EAAGzI,EAAIkJ,cAAcT,KAQnD1G,EAAMuU,mBAAmBuG,GACzB9a,EAAM+T,OAAO+G,EAAc,EAE3B,IAAIE,GAAS7Y,SAASC,aACtB4Y,GAAOzG,mBAAmBuG,GAC1BE,EAAOjH,OAAO+G,EAAc,GAC5BE,EAAOlH,SAASgH,EAAc,GAM1BF,EAAW7D,sBAJgD,IAA3D/W,EAAM+W,sBAAsB/W,EAAM+R,aAAciJ,IACe,GAA3Dhb,EAAM+W,sBAAsB/W,EAAMmS,aAAc6I,GAGjB,SAASC,EAAMjb,GAO9C,MANAA,GAAQA,EAAMsa,aAAeta,EACzBib,GAAQjb,EAAM+R,aACdkJ,EAAOjb,EAAMmS,aACN8I,GAAQjb,EAAMmS,eACrB8I,EAAOjb,EAAM+R,cAEVxU,KAAK+c,YAAYvD,sBAAsBkE,EAAMjb,IAGrB,SAASib,EAAMjb,GAC9C,MAAOzC,MAAK+c,YAAYvD,sBAAsBkE,EAAMjb,EAAMsa,aAAeta,GAQjF,IAAIyE,GAAKtC,SAASuC,cAAc,MAChCD,GAAGqG,UAAY,KACf,IAAIY,GAAWjH,EAAG8F,WACdhK,EAAOF,EAAQ8B,SACnB5B,GAAKoE,YAAYF,GAEjBzE,EAAM8T,SAASpI,EAAU,GACzB1L,EAAM+T,OAAOrI,EAAU,GACvB1L,EAAM4U,iBAEe,MAAjBlJ,EAASf,OAGTiQ,EAAWhG,eAAiB,WACxBrX,KAAK+c,YAAY1F,iBACjByF,EAAsB9c,OAG1Bqd,EAAWjG,gBAAkB,WACzB,GAAIvG,GAAO7Q,KAAK+c,YAAY3F,iBAE5B,OADA0F,GAAsB9c,MACf6Q,IAKf7N,EAAK8U,YAAY5Q,GACjBlE,EAAO,KAKH4D,EAAKlF,aAAae,EAAO,8BACzB4a,EAAWhE,yBAA2B,SAASC,GAC3C,MAAOtZ,MAAK+c,YAAY1D,yBAAyBC,KAOzDxW,EAAQ8B,UAAUkT,YAAYyF,GAC9B9a,EAAMuC,SACNyY,EAAOzY,SAEPqY,EAAW9K,QAAU,WACjB,MAAO,gBAGX3O,EAAIgZ,aAAeA,EAEnBhZ,EAAI+Z,kBAAoB,SAAS5a,GAE7B,MADAA,GAAMoJ,EAAmBpJ,EAAKsC,EAAQ,qBAC/BtC,EAAI8B,kBAKnBjB,EAAIwB,SAAST,oBAAqB,CAelC,GAAIiZ,GAA+B,SAASC,GACxC,GAAIC,GAAWD,EAAUtU,gBACrB9G,EAAQob,EAAUE,WACtBtb,GAAMsU,UAAS,EACf,IAAIiH,GAAUvb,EAAM8G,eACpB9G,GAAQob,EAAUE,YAClBtb,EAAMsU,UAAS,EACf,IAAIkH,GAAQxb,EAAM8G,gBACd2U,EAAqBF,GAAWC,EAASD,EAAUtd,EAAImJ,kBAAkBmU,EAASC,EAEtF,OAAOC,IAAqBJ,EAAWI,EAAoBxd,EAAImJ,kBAAkBiU,EAAUI,IAG3FC,EAAuB,SAASN,GAChC,MAA8D,IAAvDA,EAAUO,iBAAiB,aAAcP,IAOhDQ,EAA+B,SAASR,EAAWS,EAA4BpI,EAASqI,EAAaC,GACrG,GAAIC,GAAeZ,EAAUE,WAC7BU,GAAa1H,SAASb,EACtB,IAAIwI,GAAmBD,EAAalV,eAWpC,IAPK7I,EAAI6J,iBAAiB+T,EAA4BI,KAClDA,EAAmBJ,IAMlBI,EAAiBC,YAAa,CAC/B,GAAI5P,GAAM,GAAIhB,GAAY2Q,EAAiBjV,WAAY/I,EAAIgJ,aAAagV,GACxE,QACIE,iBAAkB7P,EAClB8P,UACI3G,UAAWnJ,EAAIxD,OACfmT,iBAAkB3P,EAAI5F,OAKlC,GAAI2V,GAAcpe,EAAI8K,YAAYkT,GAAkBvX,cAAc,OAI9D2X,GAAYrV,YACZqV,EAAYrV,WAAWqO,YAAYgH,EAavC,KAVA,GAAIC,GACAC,EAAcnU,EAAU+T,EAAkBK,EAD9BC,EAAwBhJ,EAAU,eAAiB,aAE/DgB,EAASsH,GAAaA,EAAUE,kBAAoBA,EAAoBF,EAAUtG,UAAY,EAC9FiH,EAAiBT,EAAiBnX,WAAWhF,OAC7C4U,EAAMgI,EAINjH,EAAYf,IAEH,CAQT,GAPIe,GAAaiH,EACbT,EAAiBtX,YAAY0X,GAE7BJ,EAAiB3T,aAAa+T,EAAaJ,EAAiBnX,WAAW2Q,IAE3EuG,EAAaW,kBAAkBN,GAC/BC,EAAaN,EAAaL,iBAAiBc,EAAuBrB,GAChD,GAAdkB,GAAmB7H,GAASC,EAC5B,KACG,IAAkB,IAAd4H,EAAkB,CACzB,GAAI5H,GAAOD,EAAQ,EAEf,KAEAA,GAAQgB,MAGZf,GAAOA,GAAOD,EAAQ,EAAKA,EAAQgB,CAEvCA,GAAYmH,KAAKC,OAAOpI,EAAQC,GAAO,GACvCuH,EAAiB5G,YAAYgH,GAQjC,GAFAG,EAAeH,EAAYhU,YAET,IAAdiU,GAAoBE,GAAgBxU,EAAoBwU,GAAe,CAIvER,EAAac,YAAYrJ,EAAU,aAAe,WAAY2H,EAE9D,IAAItS,EAEJ,IAAI,SAAS6G,KAAK6M,EAAa7R,MAAO,CA+BlC,GAAIoS,GAAYf,EAAaV,YACzB0B,EAAcD,EAAUE,KAAKC,QAAQ,QAAS,MAAMpd,MAGxD,KADAgJ,EAASiU,EAAUI,UAAU,YAAaH,GACoC,KAArEV,EAAaS,EAAUpB,iBAAiB,aAAcoB,KAC3DjU,IACAiU,EAAUI,UAAU,YAAa,OAGrCrU,GAASkT,EAAaiB,KAAKnd,MAE/Bqc,GAAmB,GAAI7Q,GAAYkR,EAAc1T,OAKjDyT,IAAgBT,IAAgBrI,IAAY4I,EAAYnV,gBACxDkB,GAAY0T,GAAerI,IAAY4I,EAAYhU,YAE/C8T,EADA/T,GAAYJ,EAAoBI,GACb,GAAIkD,GAAYlD,EAAU,GACtCmU,GAAgBvU,EAAoBuU,GACxB,GAAIjR,GAAYiR,EAAcA,EAAa5R,KAAK7K,QAEhD,GAAIwL,GAAY2Q,EAAkBhe,EAAIgJ,aAAaoV,GAO9E,OAFAA,GAAYrV,WAAWqO,YAAYgH,IAG/BF,iBAAkBA,EAClBC,UACI3G,UAAWA,EACXwG,iBAAkBA;EAQ1BmB,EAA0B,SAASjB,EAAkB1I,GACrD,GAAI+I,GAAca,EAEdhB,EAAavX,EAFiBwY,EAAiBnB,EAAiBrT,OAChExI,EAAMrC,EAAI8K,YAAYoT,EAAiBzV,MACdsV,EAAe3b,EAAQC,GAAKoC,kBACrD6a,EAAiBvV,EAAoBmU,EAAiBzV,KAqC1D,OAnCI6W,IACAf,EAAeL,EAAiBzV,KAChC2W,EAAiBb,EAAaxV,aAE9BlC,EAAaqX,EAAiBzV,KAAK5B,WACnC0X,EAAgBc,EAAiBxY,EAAWhF,OAAUgF,EAAWwY,GAAkB,KACnFD,EAAiBlB,EAAiBzV,MAItC2V,EAAc/b,EAAIoE,cAAc,QAIhC2X,EAAYvR,UAAY,UAIpB0R,EACAa,EAAe/U,aAAa+T,EAAaG,GAEzCa,EAAe1Y,YAAY0X,GAG/BL,EAAaW,kBAAkBN,GAC/BL,EAAa1H,UAAUb,GAGvB4J,EAAehI,YAAYgH,GAGvBkB,GACAvB,EAAavI,EAAU,YAAc,WAAW,YAAa6J,GAG1DtB,EA8DX,IAtDA5B,EAAmB,SAASgB,GACxB7d,KAAK6d,UAAYA,EACjB7d,KAAKsd,WAGTT,EAAiBjd,UAAY,GAAI+c,GAAS/X,UAE1CiY,EAAiBjd,UAAU0d,QAAU,WACjC,GAAIpG,GAAOC,EAAK8I,EAGZC,EAAwBtC,EAA6B5d,KAAK6d,UAE1DM,GAAqBne,KAAK6d,WAC1B1G,EAAMD,EAAQmH,EAA6Bre,KAAK6d,UAAWqC,GAAuB,GAC9E,GAAMtB,kBAEVqB,EAAgB5B,EAA6Bre,KAAK6d,UAAWqC,GAAuB,GAAM,GAC1FhJ,EAAQ+I,EAAcrB,iBAKtBzH,EAAMkH,EAA6Bre,KAAK6d,UAAWqC,GAAuB,GAAO,EAC7ED,EAAcpB,UAAUD,kBAGhC5e,KAAKuW,SAASW,EAAM/N,KAAM+N,EAAM3L,QAChCvL,KAAKwW,OAAOW,EAAIhO,KAAMgO,EAAI5L,SAG9BsR,EAAiBjd,UAAU2S,QAAU,WACjC,MAAO,oBAGXoK,EAASrH,wBAAwBuH,GAEjCA,EAAiBsD,iBAAmB,SAAS1d,GACzC,GAAIA,EAAMgQ,UACN,MAAOoN,GAAwB,GAAI9R,GAAYtL,EAAMgN,eAAgBhN,EAAM6N,cAAc,EAEzF,IAAI8P,GAAaP,EAAwB,GAAI9R,GAAYtL,EAAMgN,eAAgBhN,EAAM6N,cAAc,GAC/F+P,EAAWR,EAAwB,GAAI9R,GAAYtL,EAAMiN,aAAcjN,EAAM8N,YAAY,GACzFsN,EAAY/a,EAAS6Z,EAAShN,iBAAiBlN,IAAS0C,iBAG5D,OAFA0Y,GAAU0B,YAAY,eAAgBa,GACtCvC,EAAU0B,YAAY,WAAYc,GAC3BxC,GAIfja,EAAIiZ,iBAAmBA,GAIlBjZ,EAAIwB,SAASV,oBAAsBd,EAAIG,OAAO8C,gBAAiB,CAEhE,GAAIyZ,GAAY,WAAc,MAAOtgB,QACP,oBAAnBsgB,GAAU7H,QACjB6H,EAAU7H,MAAQoE,GAGtBjZ,EAAI+Z,kBAAoB,SAAS5a,GAE7B,MADAA,GAAMoJ,EAAmBpJ,EAAKsC,EAAQ,qBAC/BvC,EAAQC,GAAKoC,mBAGxBvB,EAAIgZ,aAAeC,GAI3BjZ,EAAIiB,YAAc,SAAS9B,GAEvB,MADAA,GAAMoJ,EAAmBpJ,EAAKsC,EAAQ,eAC/B,GAAIzB,GAAIgZ,aAAahZ,EAAI+Z,kBAAkB5a,KAGtDa,EAAI2c,iBAAmB,SAASxd,GAE5B,MADAA,GAAMoJ,EAAmBpJ,EAAKsC,EAAQ,oBAC/B,GAAIsX,GAAS5Z,IAGxBa,EAAI4c,kBAAoB,SAAS1U,GAE7B,MADAzG,GAAOkD,kBAAkB,sBAAuB,yBACzC3E,EAAIiB,YAAYiH,IAG3BlI,EAAI6c,uBAAyB,SAAS3U,GAElC,MADAzG,GAAOkD,kBAAkB,2BAA4B,8BAC9C3E,EAAI2c,iBAAiBzU,IAGhClI,EAAIuE,kCAAkC,SAAStC,GAC3C,GAAI9C,GAAM8C,EAAIjB,QACgB,oBAAnB7B,GAAI8B,cACX9B,EAAI8B,YAAc,WACd,MAAOjB,GAAIiB,YAAY9B,KAG/BA,EAAM8C,EAAM,SAKpBoD,MAAML,iBAAiB,oBAAqB,WAAY,gBAAiB,SAAShF,EAAKyB,GAuBnF,QAASqb,GAAoBC,GACzB,MAAsB,gBAAPA,GAAmB,kBAAkBvO,KAAKuO,KAASA,EAGtE,QAASjV,GAAU7F,EAAKuG,GACpB,GAAKvG,EAEE,CAAA,GAAInF,EAAIwL,SAASrG,GACpB,MAAOA,EACJ,IAAIA,YAAe+a,GACtB,MAAO/a,GAAIA,GAEX,IAAI9C,GAAMrC,EAAIyL,mBAAmBtG,EAAKR,EAAQ+G,EAC9C,OAAO1L,GAAIgL,UAAU3I,GAPrB,MAAOK,QAWf,QAASyd,GAAgBC,GACrB,MAAOpV,GAAUoV,EAAU,mBAAmBC,eAGlD,QAASC,GAAgBF,GACrB,MAAOpV,GAAUoV,EAAU,mBAAmBlc,SAAS9D,UAG3D,QAASmgB,GAAuBC,GAC5B,GAAIC,IAAW,CAIf,OAHID,GAAIE,aACJD,EAAmG,GAAvFzgB,EAAI6L,cAAc2U,EAAIE,WAAYF,EAAIG,aAAcH,EAAII,UAAWJ,EAAIK,cAEhFJ,EA8JX,QAASK,GAA8BN,EAAKze,EAAO0e,GAC/C,GAAIM,GAAeN,EAAW,MAAQ,QAASO,EAAcP,EAAW,QAAU,KAClFD,GAAIE,WAAa3e,EAAMgf,EAAe,aACtCP,EAAIG,aAAe5e,EAAMgf,EAAe,UACxCP,EAAII,UAAY7e,EAAMif,EAAc,aACpCR,EAAIK,YAAc9e,EAAMif,EAAc,UAG1C,QAASC,GAAwCT,GAC7C,GAAIU,GAAYV,EAAIW,eACpBX,GAAIE,WAAaQ,EAAUR,WAC3BF,EAAIG,aAAeO,EAAUP,aAC7BH,EAAII,UAAYM,EAAUN,UAC1BJ,EAAIK,YAAcK,EAAUL,YAGhC,QAASO,GAAqBZ,GAC1BA,EAAIE,WAAaF,EAAII,UAAY,KACjCJ,EAAIG,aAAeH,EAAIK,YAAc,EACrCL,EAAIa,WAAa,EACjBb,EAAI3C,aAAc,EAClB2C,EAAIc,QAAQzf,OAAS,EAGzB,QAAS0f,GAAexf,GACpB,GAAIsa,EAUJ,OATIta,aAAiBka,IACjBI,EAAcnZ,EAAI+Z,kBAAkBlb,EAAM+I,eAC1CuR,EAAYvG,OAAO/T,EAAMiN,aAAcjN,EAAM8N,WAC7CwM,EAAYxG,SAAS9T,EAAMgN,eAAgBhN,EAAM6N,cAC1C7N,YAAiBma,GACxBG,EAActa,EAAMsa,YACb3X,EAASV,oBAAuBjC,YAAiB/B,GAAIgL,UAAUjJ,EAAMgN,gBAAgBgJ,QAC5FsE,EAActa,GAEXsa,EAGX,QAASmF,GAA2BC,GAChC,IAAKA,EAAW5f,QAAoC,GAA1B4f,EAAW,GAAG3a,SACpC,OAAO,CAEX,KAAK,GAAIlF,GAAI,EAAGoD,EAAMyc,EAAW5f,OAAYmD,EAAJpD,IAAWA,EAChD,IAAK5B,EAAIyJ,aAAagY,EAAW,GAAIA,EAAW7f,IAC5C,OAAO,CAGf,QAAO,EAGX,QAAS8f,GAA0B3f,GAC/B,GAAIyP,GAAQzP,EAAM+Y,UAClB,KAAK0G,EAA2BhQ,GAC5B,KAAM7M,GAAOqD,YAAY,oCAAsCjG,EAAMuM,UAAY,uCAErF,OAAOkD,GAAM,GAIjB,QAAS1P,GAAYC,GACjB,QAASA,GAA8B,mBAAdA,GAAMid,KAGnC,QAAS2C,GAAoBnB,EAAKze,GAE9B,GAAI6f,GAAe,GAAI1F,GAAana,EACpCye,GAAIc,SAAWM,GAEfd,EAA8BN,EAAKoB,GAAc,GACjDpB,EAAIa,WAAa,EACjBb,EAAI3C,YAAc+D,EAAa7P,UAGnC,QAAS8P,GAAuBrB,GAG5B,GADAA,EAAIc,QAAQzf,OAAS,EACQ,QAAzB2e,EAAIsB,aAAa9E,KACjBoE,EAAqBZ,OAClB,CACH,GAAIuB,GAAevB,EAAIsB,aAAa3d,aACpC,IAAIrC,EAAYigB,GAIZJ,EAAoBnB,EAAKuB,OACtB,CACHvB,EAAIa,WAAaU,EAAalgB,MAE9B,KAAK,GADDE,GAAOM,EAAMyI,EAAYiX,EAAaC,KAAK,IACtCpgB,EAAI,EAAGA,EAAI4e,EAAIa,aAAczf,EAClCG,EAAQmB,EAAIiB,YAAY9B,GACxBN,EAAMwU,WAAWwL,EAAaC,KAAKpgB,IACnC4e,EAAIc,QAAQ9Z,KAAKzF,EAErBye,GAAI3C,YAAgC,GAAlB2C,EAAIa,YAAmBb,EAAIc,QAAQ,GAAGvP,UACxD+O,EAA8BN,EAAKA,EAAIc,QAAQd,EAAIa,WAAa,IAAI,KAKhF,QAASY,GAA2BzB,EAAKze,GAQrC,IAAK,GAPDggB,GAAevB,EAAIsB,aAAa3d,cAChC+d,EAAeR,EAA0B3f,GAIzCM,EAAMyI,EAAYiX,EAAaC,KAAK,IACpCG,EAAkB/f,EAAQC,GAAK+f,qBAC1BxgB,EAAI,EAAGoD,EAAM+c,EAAalgB,OAAYmD,EAAJpD,IAAWA,EAClDugB,EAAgBE,IAAIN,EAAaC,KAAKpgB,GAE1C,KACIugB,EAAgBE,IAAIH,GACtB,MAAOxe,GACL,KAAMiB,GAAOqD,YAAY,iHAE7Bma,EAAgBG,SAGhBT,EAAuBrB,GAgC3B,QAASN,GAAiB9f,EAAW0hB,EAAc3c,GAC/C7F,KAAK6hB,gBAAkB/gB,EACvBd,KAAKwiB,aAAeA,EACpBxiB,KAAKgiB,WACLhiB,KAAK6F,IAAMA,EACX7F,KAAKsd,UAKT,QAAS2F,GAAiB/B,GACtBA,EAAIrb,IAAMqb,EAAIE,WAAaF,EAAII,UAAYJ,EAAIc,QAAU,KACzDd,EAAIa,WAAab,EAAIG,aAAeH,EAAIK,YAAc,EACtDL,EAAI9D,UAAW,EAKnB,QAAS8F,GAAqBrd,EAAKsd,GAE/B,IADA,GAAsCC,GAAQlC,EAA1C5e,EAAI+gB,GAAsB9gB,OACvBD,KAGH,GAFA8gB,EAASC,GAAsB/gB,GAC/B4e,EAAMkC,EAAOtiB,UACC,aAAVqiB,EACAF,EAAiB/B,OACd,IAAIkC,EAAOvd,KAAOA,EACrB,MAAc,UAAVsd,GACAE,GAAsBC,OAAOhhB,EAAG,IACzB,GAEA4e,CAOnB,OAHc,aAAViC,IACAE,GAAsB9gB,OAAS,GAE5B,KAkCX,QAASghB,GAAuBrC,EAAKsC,GAIjC,IAAK,GAAWtc,GAFZnE,EAAMyI,EAAYgY,EAAO,GAAG/T,gBAC5BgT,EAAe3f,EAAQC,GAAK+f,qBACvBxgB,EAAI,EAAOoD,EAAM8d,EAAOjhB,OAAYmD,EAAJpD,IAAWA,EAAG,CACnD4E,EAAKkb,EAA0BoB,EAAOlhB,GACtC,KACImgB,EAAaM,IAAI7b,GACnB,MAAO9C,GACL,KAAMiB,GAAOqD,YAAY,2HAGjC+Z,EAAaO,SAGbT,EAAuBrB,GAiT3B,QAASuC,GAAyBvC,EAAK/X,GACnC,GAAI+X,EAAIrb,IAAIjB,UAAY4G,EAAYrC,GAChC,KAAM,IAAI6E,GAAa,sBA+F/B,QAAS0V,GAAuBxN,GAC5B,MAAO,UAAS/M,EAAMoC,GAClB,GAAI9I,EACAzC,MAAK+hB,YACLtf,EAAQzC,KAAK2jB,WAAW,GACxBlhB,EAAM,OAASyT,EAAU,QAAU,QAAQ/M,EAAMoC,KAEjD9I,EAAQmB,EAAIiB,YAAY7E,KAAK6F,IAAIjB,UACjCnC,EAAM2R,eAAejL,EAAMoC,IAE/BvL,KAAK4jB,eAAenhB,EAAOzC,KAAK6jB,eA4DxC,QAAS7U,GAAQkS,GACb,GAAI4C,MACAC,EAAS,GAAIhW,GAAYmT,EAAIE,WAAYF,EAAIG,cAC7C2C,EAAQ,GAAIjW,GAAYmT,EAAII,UAAWJ,EAAIK,aAC3Cxb,EAA8B,kBAAfmb,GAAI3O,QAAyB2O,EAAI3O,UAAY,WAEhE,IAA6B,mBAAlB2O,GAAIa,WACX,IAAK,GAAIzf,GAAI,EAAGoD,EAAMwb,EAAIa,WAAgBrc,EAAJpD,IAAWA,EAC7CwhB,EAAcxhB,GAAKqa,EAAS3N,QAAQkS,EAAIyC,WAAWrhB,GAG3D,OAAO,IAAMyD,EAAO,YAAc+d,EAAc7R,KAAK,MAC7C,aAAe8R,EAAO/U,UAAY,YAAcgV,EAAMhV,UAAY,IAl6B9EpL,EAAIG,OAAOkgB,sBAAuB,CAElC,IASIC,GACAC,EAVAC,EAAU,UACVC,EAAS,SACT3jB,EAAMkD,EAAIlD,IACVkG,EAAOhD,EAAIgD,KACXlF,EAAekF,EAAKlF,aACpBib,EAAW/Y,EAAI+Y,SACfC,EAAehZ,EAAIgZ,aACnB5O,EAAepK,EAAIoK,aACnBD,EAAcrN,EAAIqN,YAGlB3I,EAAWxB,EAAIwB,SACfkf,EAAU,UACV9Y,EAAc9K,EAAI8K,YAClB1I,EAAUpC,EAAIoC,QACdyZ,EAAcI,EAASJ,YAwCvBgI,EAA4B7iB,EAAa0B,OAAQ,gBACjDohB,EAAyB5d,EAAK5E,aAAa4C,SAAU,YAEzDQ,GAASmf,0BAA4BA,EACrCnf,EAASof,uBAAyBA,CAElC,IAAIC,GAAuBD,KAA4BD,GAA6B3gB,EAAIG,OAAO8C,gBAE3F4d,IACAP,EAAqBlD,EACrBpd,EAAI8gB,iBAAmB,SAAS5D,GAC5B,GAAI/d,GAAM2I,EAAUoV,EAAU,oBAAoBlc,SAAUgd,EAAY7e,EAAIjC,SAG5E,OAA0B,QAAlB8gB,EAAUlE,MAAkBlS,EAAYoW,EAAU/c,cAAc0E,kBAAoBxG,IAEzFwhB,GACPL,EAAqBrD,EACrBjd,EAAI8gB,iBAAmB,WACnB,OAAO,IAGXrf,EAAO3B,KAAK,iEAGhBE,EAAIsgB,mBAAqBA,CAEzB,IAAIS,GAAgBT,IAChBzf,EAAYb,EAAI+Z,kBAAkB/Y,UAClC5B,EAAOF,EAAQ8B,UAGfggB,EAA6Bhe,EAAKhE,kBAAkB+hB,GACnD,aAAc,YAAa,eAAgB,eAEhDvf,GAASwf,2BAA6BA,CAGtC,IAAIC,GAAqBnjB,EAAaijB,EAAe,SACrDvf,GAASyf,mBAAqBA,CAG9B,IAAIC,SAAiCH,GAAc5C,YAAcsC,CACjEjf,GAAS0f,uBAAyBA,CAElC,IAAIC,IAAkC,EAClCC,GAA0C,EAE1CC,EAA2BJ,EAC3B,SAAShD,EAAiBpf,GACtB,GAAIM,GAAM4Z,EAAShN,iBAAiBlN,GAChC4d,EAAWzc,EAAIiB,YAAY9B,EAC/Bsd,GAAS/H,gBAAgB7V,EAAMiN,aAAcjN,EAAM8N,WACnDsR,EAAgBqD,SAASjD,EAAe5B,IACxCwB,EAAgB9a,OAAOtE,EAAMgN,eAAgBhN,EAAM6N,cACnD,IAEJ1J,GAAKlE,eAAeiiB,GAAgB,WAAY,aAAc,2BACnDA,GAAc5C,YAAcsC,GAAUjf,EAASV,qBAE1D,WAQI,GAAIwc,GAAM9d,OAAO2d,cACjB,IAAIG,EAAK,CAML,IAAK,GAJDiE,GAA8BjE,EAAIa,WAClCqD,EAA8BD,EAA8B,EAC5DE,KACAC,EAA4BrE,EAAuBC,GAC9C5e,EAAI,EAAO6iB,EAAJ7iB,IAAmCA,EAC/C+iB,EAAwB/iB,GAAK4e,EAAIyC,WAAWrhB,EAIhD,IAAIU,GAAOF,EAAQ8B,UACf2gB,EAASviB,EAAKoE,YAAaxC,SAASuC,cAAc,OACtDoe,GAAOC,gBAAkB,OACzB,IAAIrX,GAAWoX,EAAOne,YAAaxC,SAASwJ,eAAe,QAGvDqO,EAAK7X,SAASC,aASlB,IAPA4X,EAAGlG,SAASpI,EAAU,GACtBsO,EAAG1F,UAAS,GACZmK,EAAIgE,SAASzI,GACbuI,EAA6D,GAAlB9D,EAAIa,WAC/Cb,EAAIuE,mBAGCL,EAA4B,CAC7B,GAAI1I,GAAKD,EAAG7D,YACZ6D,GAAGlG,SAASpI,EAAU,GACtBuO,EAAGlG,OAAOrI,EAAU,GACpBuO,EAAGnG,SAASpI,EAAU,GACtB+S,EAAIgE,SAASzI,GACbyE,EAAIgE,SAASxI,GAEbqI,EAAqD,GAAlB7D,EAAIa,WACvCrF,EAAG1X,SAQP,IAJAhC,EAAK8U,YAAYyN,GACjBrE,EAAIuE,kBACJhJ,EAAGzX,SAEE1C,EAAI,EAAO6iB,EAAJ7iB,IAAmCA,EAClC,GAALA,GAAUgjB,EACNL,EACAA,EAAyB/D,EAAKmE,EAAwB/iB,KAEtDsB,EAAIK,KAAK,qJACTid,EAAIgE,SAASG,EAAwB/iB,KAGzC4e,EAAIgE,SAASG,EAAwB/iB,QAOzD8C,EAAS2f,gCAAkCA,EAC3C3f,EAAS4f,wCAA0CA,CAGnD,IAAoCU,GAAhCC,GAAyB,CAEzB3iB,IAAQtB,EAAasB,EAAM,wBAC3B0iB,EAAmB1iB,EAAK8f,qBACpBlc,EAAKhE,kBAAkB8iB,GAAmB,OAAQ,UAClDC,GAAyB,IAGjCvgB,EAASugB,uBAAyBA,EAI9BxB,EADAS,EACuB,SAAS1D,GAC5B,MAAOA,GAAIE,aAAeF,EAAII,WAAaJ,EAAIG,eAAiBH,EAAIK,aAGjD,SAASL,GAC5B,MAAOA,GAAIa,WAAab,EAAIyC,WAAWzC,EAAIa,WAAa,GAAGtP,WAAY,EA6H/E,IAAImT,GAEAlkB,GAAaijB,EAAe,cAI5BiB,GAAsB,SAAS1E,EAAKjW,GAChC,IACI,MAAOiW,GAAIyC,WAAW1Y,GACxB,MAAO7G,GACL,MAAO,QAGRwgB,IACPgB,GAAsB,SAAS1E,GAC3B,GAAIne,GAAMyI,EAAY0V,EAAIE,YACtB3e,EAAQmB,EAAIiB,YAAY9B,EAS5B,OARAN,GAAM2R,eAAe8M,EAAIE,WAAYF,EAAIG,aAAcH,EAAII,UAAWJ,EAAIK,aAItE9e,EAAMgQ,YAAczS,KAAKue,aACzB9b,EAAM2R,eAAe8M,EAAII,UAAWJ,EAAIK,YAAaL,EAAIE,WAAYF,EAAIG,cAGtE5e,IAYfme,EAAiBhhB,UAAYgE,EAAIkF,kBAQjC,IAAIua,OAwBAtC,GAAe,SAASlb,GAExB,GAAIA,GAAOA,YAAe+a,GAEtB,MADA/a,GAAIyX,UACGzX,CAGXA,GAAM6F,EAAU7F,EAAK,qBAErB,IAAIqb,GAAMgC,EAAqBrd,GAC3B+b,EAAYsC,EAAmBre,GAAMggB,EAASrB,EAAyBxD,EAAgBnb,GAAO,IASlG,OARIqb,IACAA,EAAIW,gBAAkBD,EACtBV,EAAIsB,aAAeqD,EACnB3E,EAAI5D,YAEJ4D,EAAM,GAAIN,GAAiBgB,EAAWiE,EAAQhgB,GAC9Cwd,GAAsBnb,MAAQrC,IAAKA,EAAK/E,UAAWogB,KAEhDA,EAGXtd,GAAImd,aAAeA,GAEnBnd,EAAIkiB,mBAAqB,SAASha,GAE9B,MADAzG,GAAOkD,kBAAkB,uBAAwB,0BAC1C3E,EAAImd,aAAargB,EAAIuL,gBAAgBH,IAGhD,IAAIia,IAAWnF,EAAiBhhB,SAqBhC,KAAK6kB,GAAwBG,GAA8Bhe,EAAKlE,eAAeiiB,GAAgB,kBAAmB,aAAc,CAC5HoB,GAASN,gBAAkB,WACvBzlB,KAAK6hB,gBAAgB4D,kBACrB3D,EAAqB9hB,MAGzB,IAAIgmB,IAAmB,SAAS9E,EAAKze,GACjCwiB,EAAyB/D,EAAIW,gBAAiBpf,GAC9Cye,EAAI5D,UAIJyI,IAASb,SADTJ,EACoB,SAASriB,EAAOwjB,GAChC,GAAIN,GAA0BnB,GAA0BxkB,KAAKwiB,aAAa9E,MAAQ4G,EAC9E3B,EAA2B3iB,KAAMyC,OAEjC,IAAIie,EAAoBuF,IAAcpB,EAClCmB,GAAiBhmB,KAAMyC,OACpB,CACH,GAAIyjB,EAeJ,IAdInB,EACAmB,EAAqBlmB,KAAK+hB,YAE1B/hB,KAAKylB,kBACLS,EAAqB,GAKzBlmB,KAAK6hB,gBAAgBqD,SAASjD,EAAexf,GAAOmW,cAGpD5Y,KAAK+hB,WAAa/hB,KAAK6hB,gBAAgBE,WAEnC/hB,KAAK+hB,YAAcmE,EAAqB,EAAG,CAK3C,GAAItiB,EAAIG,OAAOkgB,qBAAsB,CACjC,GAAIlH,GAAc6I,GAAoB5lB,KAAK6hB,gBAAiB7hB,KAAK+hB,WAAa,EAC1EhF,KAAgBR,EAAYQ,EAAata,KAEzCA,EAAQ,GAAIma,GAAaG,IAGjC/c,KAAKgiB,QAAQhiB,KAAK+hB,WAAa,GAAKtf,EACpC+e,EAA8BxhB,KAAMyC,EAAO0jB,GAAoBnmB,KAAK6hB,kBACpE7hB,KAAKue,YAAc4F,EAAqBnkB,UAGxCA,MAAKsd,YAMD,SAAS7a,EAAOwjB,GAC5BvF,EAAoBuF,IAAcpB,EAClCmB,GAAiBhmB,KAAMyC,IAEvBzC,KAAK6hB,gBAAgBqD,SAASjD,EAAexf,IAC7CzC,KAAKsd,YAKjByI,GAASK,UAAY,SAAS5C,GAC1B,GAAImC,GAA0BnC,EAAOjhB,OAAS,EAC1CghB,EAAuBvjB,KAAMwjB,OAC1B,CACHxjB,KAAKylB,iBACL,KAAK,GAAInjB,GAAI,EAAGoD,EAAM8d,EAAOjhB,OAAYmD,EAAJpD,IAAWA,EAC5CtC,KAAKklB,SAAS1B,EAAOlhB,UAI9B,CAAA,KAAIZ,EAAaijB,EAAe,UAAYjjB,EAAa+C,EAAW,WAChEkhB,GAA0BlB,GAqDjC,MADApf,GAAO3B,KAAK,yDACL,CAnDPqiB,IAASN,gBAAkB,WAEvB,IAII,GAHAzlB,KAAKwiB,aAAa6D,QAGY,QAA1BrmB,KAAKwiB,aAAa9E,KAAgB,CAGlC,GAAI3a,EACJ,IAAI/C,KAAKohB,WACLre,EAAMyI,EAAYxL,KAAKohB,gBACpB,IAAIphB,KAAKwiB,aAAa9E,MAAQ4G,EAAS,CAC1C,GAAI7B,GAAeziB,KAAKwiB,aAAa3d,aACjC4d,GAAalgB,SACbQ,EAAMyI,EAAaiX,EAAaC,KAAK,KAG7C,GAAI3f,EAAK,CACL,GAAI8a,GAAY/a,EAAQC,GAAKoC,iBAC7B0Y,GAAUmF,SACVhjB,KAAKwiB,aAAa6D,UAG5B,MAAMjiB,IACR0d,EAAqB9hB,OAGzB+lB,GAASb,SAAW,SAASziB,GACrBzC,KAAKwiB,aAAa9E,MAAQ4G,EAC1B3B,EAA2B3iB,KAAMyC,IAEjCmB,EAAIiZ,iBAAiBsD,iBAAiB1d,GAAOugB,SAC7ChjB,KAAKgiB,QAAQ,GAAKvf,EAClBzC,KAAK+hB,WAAa,EAClB/hB,KAAKue,YAAcve,KAAKgiB,QAAQ,GAAGvP,UACnC+O,EAA8BxhB,KAAMyC,GAAO,KAInDsjB,GAASK,UAAY,SAAS5C,GAC1BxjB,KAAKylB,iBACL,IAAI1D,GAAayB,EAAOjhB,MACpBwf,GAAa,EACbwB,EAAuBvjB,KAAMwjB,GACtBzB,GACP/hB,KAAKklB,SAAS1B,EAAO,KAQjCuC,GAASpC,WAAa,SAAS1Y,GAC3B,GAAY,EAARA,GAAaA,GAASjL,KAAK+hB,WAC3B,KAAM,IAAI/T,GAAa,iBAGvB,OAAOhO,MAAKgiB,QAAQ/W,GAAO2N,aAInC,IAAI0N,GAEJ,IAAI7B,EACA6B,GAAmB,SAASpF,GACxB,GAAIze,EACAmB,GAAI8gB,iBAAiBxD,EAAIrb,KACzBpD,EAAQye,EAAIsB,aAAa3d,eAEzBpC,EAAQK,EAAQoe,EAAIrb,IAAIjB,UAAUO,kBAClC1C,EAAMsU,UAAS,IAGfmK,EAAIsB,aAAa9E,MAAQ4G,EACzB/B,EAAuBrB,GAChB1e,EAAYC,GACnB4f,EAAoBnB,EAAKze,GAEzBqf,EAAqBZ,QAG1B,IAAIxf,EAAaijB,EAAe,qBAAwBA,GAAc5C,YAAcsC,EACvFiC,GAAmB,SAASpF,GACxB,GAAIyE,GAA0BnB,GAA0BtD,EAAIsB,aAAa9E,MAAQ4G,EAC7E/B,EAAuBrB,OAGvB,IADAA,EAAIc,QAAQzf,OAAS2e,EAAIa,WAAab,EAAIW,gBAAgBE,WACtDb,EAAIa,WAAY,CAChB,IAAK,GAAIzf,GAAI,EAAGoD,EAAMwb,EAAIa,WAAgBrc,EAAJpD,IAAWA,EAC7C4e,EAAIc,QAAQ1f,GAAK,GAAIsB,GAAIgZ,aAAasE,EAAIW,gBAAgB8B,WAAWrhB,GAEzEkf,GAA8BN,EAAKA,EAAIc,QAAQd,EAAIa,WAAa,GAAIoE,GAAoBjF,EAAIW,kBAC5FX,EAAI3C,YAAc4F,EAAqBjD,OAEvCY,GAAqBZ,QAI9B,CAAA,IAAI0D,SAAqCD,GAAcpG,aAAe6F,SAAkB3f,GAAUgO,WAAa2R,IAAWhf,EAASV,mBAetI,MADAW,GAAO3B,KAAK,mFACL,CAdP4iB,IAAmB,SAASpF,GACxB,GAAIze,GAAOmf,EAAYV,EAAIW,eACvBD,GAAUR,YACV3e,EAAQmjB,GAAoBhE,EAAW,GACvCV,EAAIc,SAAWvf,GACfye,EAAIa,WAAa,EACjBJ,EAAwCT,GACxCA,EAAI3C,YAAc4F,EAAqBjD,IAEvCY,EAAqBZ,IAQjC6E,GAASzI,QAAU,SAASiJ,GACxB,GAAIC,GAAYD,EAAkBvmB,KAAKgiB,QAAQ1a,MAAM,GAAK,KACtDmf,EAAgBzmB,KAAKohB,WAAYsF,EAAkB1mB,KAAKqhB,YAG5D,IADAiF,GAAiBtmB,MACbumB,EAAiB,CAEjB,GAAIjkB,GAAIkkB,EAAUjkB,MAClB,IAAID,GAAKtC,KAAKgiB,QAAQzf,OAClB,OAAO,CAKX,IAAIvC,KAAKohB,YAAcqF,GAAiBzmB,KAAKqhB,cAAgBqF,EACzD,OAAO,CAIX,MAAOpkB,KACH,IAAKia,EAAYiK,EAAUlkB,GAAItC,KAAKgiB,QAAQ1f,IACxC,OAAO,CAGf,QAAO,GAKf,IAAIqkB,IAAsB,SAASzF,EAAKze,GACpC,GAAI+gB,GAAStC,EAAI0F,cACjB1F,GAAIuE,iBACJ,KAAK,GAAInjB,GAAI,EAAGoD,EAAM8d,EAAOjhB,OAAYmD,EAAJpD,IAAWA,EACvCia,EAAY9Z,EAAO+gB,EAAOlhB,KAC3B4e,EAAIgE,SAAS1B,EAAOlhB,GAGvB4e,GAAIa,YACLD,EAAqBZ,GAKzB6E,IAASc,YADTlB,EACuB,SAASljB,GAC5B,GAAIzC,KAAKwiB,aAAa9E,MAAQ4G,EAAS,CASnC,IAAK,GADDpd,GAPAub,EAAeziB,KAAKwiB,aAAa3d,cACjC+d,EAAeR,EAA0B3f,GAIzCM,EAAMyI,EAAYiX,EAAaC,KAAK,IACpCG,EAAkB/f,EAAQC,GAAK+f,qBAC3BgE,GAAU,EACTxkB,EAAI,EAAGoD,EAAM+c,EAAalgB,OAAYmD,EAAJpD,IAAWA,EAClD4E,EAAKub,EAAaC,KAAKpgB,GACnB4E,IAAO0b,GAAgBkE,EACvBjE,EAAgBE,IAAIN,EAAaC,KAAKpgB,IAEtCwkB,GAAU,CAGlBjE,GAAgBG,SAGhBT,EAAuBviB,UAEvB2mB,IAAoB3mB,KAAMyC,IAIX,SAASA,GAC5BkkB,GAAoB3mB,KAAMyC,GAKlC,IAAI0jB,KACC1B,GAAwBG,GAA8Bxf,EAASV,oBAChEyhB,GAAsBlF,EAEtB8E,GAASlC,WAAa,WAClB,MAAOsC,IAAoBnmB,QAG/BmmB,GAAsBJ,GAASlC,WAAa,WACxC,OAAO,GAKfkC,GAASgB,YAAchB,GAASlC,WAKhCkC,GAASzlB,SAAW,WAEhB,IAAK,GADD0mB,MACK1kB,EAAI,EAAGoD,EAAM1F,KAAK+hB,WAAgBrc,EAAJpD,IAAWA,EAC9C0kB,EAAW1kB,GAAK,GAAKtC,KAAKgiB,QAAQ1f,EAEtC,OAAO0kB,GAAW/U,KAAK,KAU3B8T,GAAShP,SAAW,SAAS5N,EAAMoC,GAC/BkY,EAAyBzjB,KAAMmJ,EAC/B,IAAI1G,GAAQmB,EAAIiB,YAAYsE,EAC5B1G,GAAM6V,gBAAgBnP,EAAMoC,GAC5BvL,KAAK4jB,eAAenhB,GACpBzC,KAAKue,aAAc,GAGvBwH,GAASkB,gBAAkB,WACvB,IAAIjnB,KAAK+hB,WAIL,KAAM,IAAI/T,GAAa,oBAHvB,IAAIvL,GAAQzC,KAAKgiB,QAAQ,EACzBhiB,MAAK+W,SAAStU,EAAMgN,eAAgBhN,EAAM6N,cAMlDyV,GAASmB,cAAgB,WACrB,IAAIlnB,KAAK+hB,WAIL,KAAM,IAAI/T,GAAa,oBAHvB,IAAIvL,GAAQzC,KAAKgiB,QAAQhiB,KAAK+hB,WAAa,EAC3C/hB,MAAK+W,SAAStU,EAAMiN,aAAcjN,EAAM8N,YAQhDwV,GAASoB,kBAAoB,SAAShe,GAClCsa,EAAyBzjB,KAAMmJ,EAC/B,IAAI1G,GAAQmB,EAAIiB,YAAYsE,EAC5B1G,GAAMuU,mBAAmB7N,GACzBnJ,KAAK4jB,eAAenhB,IAGxBsjB,GAASqB,mBAAqB,WAE1B,GAAIzB,GAA0BnB,GAA0BxkB,KAAKwiB,aAAa9E,MAAQ4G,EAAS,CAGvF,IAFA,GACI+C,GADA5E,EAAeziB,KAAKwiB,aAAa3d,cAE9B4d,EAAalgB,QAChB8kB,EAAU5E,EAAaC,KAAK,GAC5BD,EAAajR,OAAO6V,GACpBA,EAAQ5d,WAAWqO,YAAYuP,EAEnCrnB,MAAKsd,cACF,IAAItd,KAAK+hB,WAAY,CACxB,GAAIyB,GAASxjB,KAAK4mB,cAClB,IAAIpD,EAAOjhB,OAAQ,CACfvC,KAAKylB,iBACL,KAAK,GAAInjB,GAAI,EAAGoD,EAAM8d,EAAOjhB,OAAYmD,EAAJpD,IAAWA,EAC5CkhB,EAAOlhB,GAAG+U,gBAIdrX,MAAKklB,SAAS1B,EAAO9d,EAAM,OAMvCqgB,GAASuB,UAAY,SAASpW,EAAM2E,GAChC,IAAK,GAAIvT,GAAI,EAAGoD,EAAM1F,KAAKgiB,QAAQzf,OAAYmD,EAAJpD,IAAWA,EAClD,GAAK4O,EAAMlR,KAAK2jB,WAAWrhB,IACvB,MAAOuT,IAKnBkQ,GAASa,aAAe,WACpB,GAAIpD,KAIJ,OAHAxjB,MAAKsnB,UAAU,SAAS7kB,GACpB+gB,EAAOtb,KAAKzF,KAET+gB,GAGXuC,GAASnC,eAAiB,SAASnhB,EAAOwjB,GACtCjmB,KAAKylB,kBACLzlB,KAAKklB,SAASziB,EAAOwjB,IAGzBF,GAASwB,sBAAwB,SAASnb,EAAYob,GAClD,GAAIC,KAIJ,OAHAznB,MAAKsnB,UAAW,SAAS7kB,GACrBglB,EAAQvf,KAAMzF,EAAM2J,GAAYsb,MAAMjlB,EAAO+kB,MAE1CC,GAiBX1B,GAASxP,SAAWmN,GAAuB,GAC3CqC,GAASvP,OAASkN,GAAuB,GAGzC9f,EAAIiF,eAAema,OAAS,SAASiD,GACjClF,GAAc/gB,KAAKwL,eAAgBoY,eAAe5jB,KAAMimB,IAG5DF,GAAS4B,gBAAkB,SAASzW,GAChC,GAAIsS,MACArC,EAAWnhB,KAAK6jB,YAEpB7jB,MAAKsnB,UAAU,SAAS7kB,GACpByO,EAAKzO,GACL+gB,EAAOtb,KAAKzF,KAGhBzC,KAAKylB,kBACDtE,GAA6B,GAAjBqC,EAAOjhB,OACnBvC,KAAKklB,SAAS1B,EAAO,GAAI,YAEzBxjB,KAAKomB,UAAU5C,IAIvBuC,GAAS9K,aAAe,SAAS9R,EAAM+R,GACnC,MAAOlb,MAAKsnB,UAAW,SAAS7kB,GAC5B,MAAOA,GAAMwY,aAAa9R,EAAM+R,KACjC,IAGP6K,GAASjK,YAAc,SAASC,GAC5B,OACIoF,SAAUnhB,KAAK6jB,aACf+D,eAAgB5nB,KAAKunB,sBAAsB,eAAgBxL,MAInEgK,GAAS9J,eAAiB,SAASC,GAE/B,IAAK,GAAW2L,GAAeplB,EAD3BqlB,KACKxlB,EAAI,EAAyBulB,EAAgB3L,EAAS0L,eAAetlB,MAC1EG,EAAQmB,EAAIiB,YAAY7E,KAAK6F,KAC7BpD,EAAMwZ,eAAe4L,GACrBC,EAAU5f,KAAKzF,EAEfyZ,GAASiF,SACTnhB,KAAK4jB,eAAekE,EAAU,GAAI,YAElC9nB,KAAKomB,UAAU0B,IAIvB/B,GAASxL,OAAS,WACd,MAAOva,MAAKunB,sBAAsB,UAAUtV,KAAK,KAkBrD8T,GAASxT,QAAU,WACf,MAAO,oBAGXwT,GAAS/W,QAAU,WACf,MAAOA,GAAQhP,OAGnB+lB,GAAS/gB,OAAS,WACdke,EAAqBljB,KAAK6F,IAAK,UAC/Bod,EAAiBjjB,OAGrB4gB,EAAiBmH,UAAY,WACzB7E,EAAqB,KAAM,cAG/BtC,EAAiB5R,QAAUA,EAC3B4R,EAAiBF,oBAAsBA,EAEvC9c,EAAIokB,UAAYpH,EAEhBhd,EAAIkF,mBAAqBid,GAEzBniB,EAAIuE,kCAAkC,SAAStC,GACZ,mBAApBA,GAAIkb,eACXlb,EAAIkb,aAAe,WACf,MAAOA,IAAalb,KAG5BA,EAAM,SAiBdoD,MAAM/C,aAAa,eAAgB,gBAAiB,SAAStC,EAAKyB,GAK9D,QAAS4iB,GAAK3a,EAAIvK,GACd,OAAQA,GAAO6B,UAAUsjB,eAAe5a,GAG5C,QAAS6a,GAA0B1lB,EAAO2lB,GACtC,GACIC,GADAC,EAAW,uBAAyB,GAAIC,MAAU,KAAO,GAAKlJ,KAAKmJ,UAAUlhB,MAAM,GAEnFvE,EAAMrC,EAAI8K,YAAY/I,EAAMgN,gBAG5BgZ,EAAgBhmB,EAAMmW,YAa1B,OAZA6P,GAAc1R,SAASqR,GAGvBC,EAAWtlB,EAAIoE,cAAc,QAC7BkhB,EAAS/a,GAAKgb,EACdD,EAASK,MAAMC,WAAa,IAC5BN,EAASK,MAAME,QAAU,OACzBP,EAASQ,UAAY,yBACrBR,EAASjhB,YAAYrE,EAAIqL,eAAe0a,IAExCL,EAAc7O,WAAWyO,GACzBI,EAAczjB,SACPqjB,EAGX,QAASU,GAAiBhmB,EAAKN,EAAO6lB,EAAUF,GAC5C,GAAIC,GAAWJ,EAAKK,EAAUvlB,EAC1BslB,IACA5lB,EAAM2lB,EAAU,iBAAmB,gBAAgBC,GACnDA,EAAS5e,WAAWqO,YAAYuQ,IAEhChjB,EAAOpB,KAAK,8DAIpB,QAAS+kB,GAAcvM,EAAIC,GACvB,MAAOA,GAAGlD,sBAAsBiD,EAAGnI,eAAgBmI,GAGvD,QAASwM,GAAUxmB,EAAO0e,GACtB,GAAInD,GAASC,EAAOlb,EAAMa,EAAI+Y,SAAShN,iBAAiBlN,GAAQid,EAAOjd,EAAMnC,UAE7E,OAAImC,GAAMgQ,WACNwL,EAAQkK,EAA0B1lB,GAAO,IAErCmC,SAAU7B,EACVulB,SAAUrK,EAAM3Q,GAChBmF,WAAW,KAGfwL,EAAQkK,EAA0B1lB,GAAO,GACzCub,EAAUmK,EAA0B1lB,GAAO,IAGvCmC,SAAU7B,EACVmmB,cAAelL,EAAQ1Q,GACvB6b,YAAalL,EAAM3Q,GACnBmF,WAAW,EACX0O,SAAUA,EACV7gB,SAAU,WACN,MAAO,mBAAqBof,EAAO,iBAAmBjd,EAAMnC,WAAa,OAMzF,QAAS8oB,GAAaC,EAAWC,GAC7B,GAAIvmB,GAAMsmB,EAAUzkB,QACI,oBAAb0kB,KACPA,GAAY,EAEhB,IAAI7mB,GAAQmB,EAAIiB,YAAY9B,EAC5B,IAAIsmB,EAAU5W,UAAW,CACrB,GAAI4V,GAAWJ,EAAKoB,EAAUf,SAAUvlB,EACxC,IAAIslB,EAAU,CACVA,EAASK,MAAME,QAAU,QACzB,IAAI5J,GAAeqJ,EAAS1e,eAGxBqV,IAAyC,GAAzBA,EAAaxX,UAC7B6gB,EAAS5e,WAAWqO,YAAYuQ,GAChC5lB,EAAM6V,gBAAgB0G,EAAcA,EAAazc,UAEjDE,EAAMmZ,eAAeyM,GACrBA,EAAS5e,WAAWqO,YAAYuQ,QAGpChjB,GAAOpB,KAAK,kEAGhB8kB,GAAiBhmB,EAAKN,EAAO4mB,EAAUH,eAAe,GACtDH,EAAiBhmB,EAAKN,EAAO4mB,EAAUF,aAAa,EAOxD,OAJIG,IACA7mB,EAAMiV,sBAGHjV,EAGX,QAAS8mB,GAAW/F,EAAQrC,GACxB,GAAqB1e,GAAOM,EAAxBymB,IAGJhG,GAASA,EAAOlc,MAAM,GACtBkc,EAAOiG,KAAKT,EAEZ,KAAK,GAAI1mB,GAAI,EAAGoD,EAAM8d,EAAOjhB,OAAYmD,EAAJpD,IAAWA,EAC5CknB,EAAWlnB,GAAK2mB,EAAUzF,EAAOlhB,GAAI6e,EAKzC,KAAK7e,EAAIoD,EAAM,EAAGpD,GAAK,IAAKA,EACxBG,EAAQ+gB,EAAOlhB,GACfS,EAAMa,EAAI+Y,SAAShN,iBAAiBlN,GAChCA,EAAMgQ,UACNhQ,EAAMoZ,cAAcoM,EAAKuB,EAAWlnB,GAAGgmB,SAAUvlB,KAEjDN,EAAMoU,aAAaoR,EAAKuB,EAAWlnB,GAAG6mB,YAAapmB,IACnDN,EAAMmU,cAAcqR,EAAKuB,EAAWlnB,GAAG4mB,cAAenmB,IAI9D,OAAOymB,GAGX,QAASE,GAAc7jB,GACnB,IAAKjC,EAAI8gB,iBAAiB7e,GAEtB,MADAR,GAAOpB,KAAK,0HACL,IAEX,IAAIid,GAAMtd,EAAImd,aAAalb,GACvB2d,EAAStC,EAAI0F,eACbzF,EAA6B,GAAjBqC,EAAOjhB,QAAe2e,EAAI2C,aAEtC2F,EAAaD,EAAW/F,EAAQrC,EASpC,OANIA,GACAD,EAAI0C,eAAeJ,EAAO,GAAI,YAE9BtC,EAAIkF,UAAU5C,IAId3d,IAAKA,EACL2jB,WAAYA,EACZG,UAAU,GAIlB,QAASC,GAAcJ,GAOnB,IAAK,GANDhG,MAIAzB,EAAayH,EAAWjnB,OAEnBD,EAAIyf,EAAa,EAAGzf,GAAK,EAAGA,IACjCkhB,EAAOlhB,GAAK8mB,EAAaI,EAAWlnB,IAAI,EAG5C,OAAOkhB,GAGX,QAASqG,GAAiBC,EAAgBC,GACtC,IAAKD,EAAeH,SAAU,CAC1B,GAAIH,GAAaM,EAAeN,WAC5BtI,EAAMtd,EAAImd,aAAa+I,EAAejkB,KACtC2d,EAASoG,EAAcJ,GAAazH,EAAayH,EAAWjnB,MAE9C,IAAdwf,GAAmBgI,GAAqBnmB,EAAIwB,SAASyf,oBAAsB2E,EAAW,GAAGrI,UACzFD,EAAIuE,kBACJvE,EAAIgE,SAAS1B,EAAO,IAAI,IAExBtC,EAAIkF,UAAU5C,GAGlBsG,EAAeH,UAAW,GAIlC,QAASK,GAAoBjnB,EAAKulB,GAC9B,GAAID,GAAWJ,EAAKK,EAAUvlB,EAC1BslB,IACAA,EAAS5e,WAAWqO,YAAYuQ,GAIxC,QAAS4B,GAAcH,GAEnB,IAAK,GAAoCT,GADrCG,EAAaM,EAAeN,WACvBlnB,EAAI,EAAGoD,EAAM8jB,EAAWjnB,OAAuBmD,EAAJpD,IAAWA,EAC3D+mB,EAAYG,EAAWlnB,GACnB+mB,EAAU5W,UACVuX,EAAoBF,EAAe/mB,IAAKsmB,EAAUf,WAElD0B,EAAoBF,EAAe/mB,IAAKsmB,EAAUH,eAClDc,EAAoBF,EAAe/mB,IAAKsmB,EAAUF,cA5M9D,GAAIzoB,GAAMkD,EAAIlD,IAEVooB,EAAiB,GA+MrBllB,GAAIgD,KAAKG,OAAOnD,GACZqlB,UAAWA,EACXG,aAAcA,EACdG,WAAYA,EACZK,cAAeA,EACfF,cAAeA,EACfG,iBAAkBA,EAClBG,oBAAqBA,EACrBC,cAAeA,KASvB,IAAIC,MAAO,YAIXA,MAAKnjB,OAAS,SAASojB,EAAWC,GACjC,GAAIrjB,GAASmjB,KAAKtqB,UAAUmH,MAG5BmjB,MAAKG,cAAe,CACpB,IAAIC,GAAQ,GAAItqB,KAChB+G,GAAOhH,KAAKuqB,EAAOH,GAClBG,EAAMC,KAAO,mBAGPL,MAAKG,YAIZ,IAAI9U,GAAc+U,EAAM/U,YACpBiV,EAAQF,EAAM/U,YAAc,WAC/B,IAAK2U,KAAKG,aACT,GAAIrqB,KAAKyqB,eAAiBzqB,KAAKuV,aAAeiV,EAC7CxqB,KAAKyqB,eAAgB,EACrBlV,EAAYmS,MAAM1nB,KAAM2I,iBACjB3I,MAAKyqB,kBACN,IAAoB,MAAhB9hB,UAAU,GACpB,OAAQA,UAAU,GAAG5B,QAAUA,GAAQhH,KAAK4I,UAAU,GAAI2hB,GAmB7D,OAbAE,GAAMpgB,SAAWpK,KACjBwqB,EAAMzjB,OAAS/G,KAAK+G,OACpByjB,EAAME,QAAU1qB,KAAK0qB,QACrBF,EAAMG,UAAY3qB,KAAK2qB,UACvBH,EAAM5qB,UAAY0qB,EAClBE,EAAMlqB,SAAWN,KAAKM,SACtBkqB,EAAMI,QAAU,SAASlN,GAExB,MAAgB,UAARA,EAAoB8M,EAAQjV,EAAYqV,WAEjD7jB,EAAOhH,KAAKyqB,EAAOJ,GAEM,kBAAdI,GAAMhmB,MAAoBgmB,EAAMhmB,OACpCgmB,GAGRN,KAAKtqB,WACJmH,OAAQ,SAAS8jB,EAAQC,GACxB,GAAIniB,UAAUpG,OAAS,EAAG,CACzB,GAAI6H,GAAWpK,KAAK6qB,EACpB,IAAIzgB,GAA6B,kBAAT0gB,MAErB1gB,EAASwgB,SAAWxgB,EAASwgB,WAAaE,EAAMF,YAClD,WAAWxY,KAAK0Y,GAAQ,CAExB,GAAIC,GAASD,EAAMF,SAEnBE,GAAQ,WACP,GAAIE,GAAWhrB,KAAKuqB,MAAQL,KAAKtqB,UAAU2qB,IAC3CvqB,MAAKuqB,KAAOngB,CACZ,IAAIyL,GAAckV,EAAOrD,MAAM1nB,KAAM2I,UAErC,OADA3I,MAAKuqB,KAAOS,EACLnV,GAGRiV,EAAMF,QAAU,SAASlN,GACxB,MAAgB,UAARA,EAAoBoN,EAAQC,GAErCD,EAAMxqB,SAAW4pB,KAAK5pB,SAEvBN,KAAK6qB,GAAUC,MACT,IAAID,EAAQ,CAClB,GAAI9jB,GAASmjB,KAAKtqB,UAAUmH,MAEvBmjB,MAAKG,cAA+B,kBAARrqB,QAChC+G,EAAS/G,KAAK+G,QAAUA,EAOzB,KALA,GAAIujB,IAASW,SAAU,MAEnBC,GAAU,cAAe,WAAY,WAErC5oB,EAAI4nB,KAAKG,aAAe,EAAI,EACzBc,EAAMD,EAAO5oB,MACfuoB,EAAOM,IAAQb,EAAMa,IACxBpkB,EAAOhH,KAAKC,KAAMmrB,EAAKN,EAAOM,GAKhC,KAAK,GAAIA,KAAON,GACVP,EAAMa,IAAMpkB,EAAOhH,KAAKC,KAAMmrB,EAAKN,EAAOM,IAGjD,MAAOnrB,QAKTkqB,KAAOA,KAAKnjB,QACXwO,YAAa,WACZvV,KAAK+G,OAAO4B,UAAU,OAGvByB,SAAU5K,OACVgB,QAAS,MAETkqB,QAAS,SAASU,EAAQC,EAAOC,GAChC,IAAK,GAAIH,KAAOC,GACaG,SAAxBvrB,KAAKJ,UAAUurB,IAClBE,EAAMtrB,KAAKurB,EAASF,EAAOD,GAAMA,EAAKC,IAKzCT,UAAW,WACV,IAAK,GAAIroB,GAAI,EAAGA,EAAIqG,UAAUpG,OAAQD,IACV,kBAAhBqG,WAAUrG,GAEpBqG,UAAUrG,GAAGtC,KAAKJ,WAGlBI,KAAKJ,UAAUmH,OAAO4B,UAAUrG,GAGlC,OAAOtC,OAGRM,SAAU,WACT,MAAOiE,QAAOvE,KAAK4qB,cAKrBrqB,UAAUirB,QAAU,WAUlB,QAASC,GAAWC,GAClB,QAAU,mBAAmBtZ,KAAKsZ,IAAcA,EAAUC,MAAM,gCAAmCJ,OAAW,IAAI,GAGpH,QAASK,GAAeF,GACtB,QAASA,EAAUC,MAAM,mBAAqBJ,OAAW,IAAI,GAd/D,GAAIG,GAAcG,UAAUH,UACxBI,EAAclnB,SAASuC,cAAc,OAErC4kB,EAAoD,KAAtCL,EAAUM,QAAQ,SAAyD,KAA/BN,EAAUM,QAAQ,SAC5EC,EAAoD,KAAtCP,EAAUM,QAAQ,UAAyD,KAA/BN,EAAUM,QAAQ,SAC5EE,EAAoD,KAAtCR,EAAUM,QAAQ,gBAChCG,EAAoD,KAAtCT,EAAUM,QAAQ,WAChCI,EAAoD,KAAtCV,EAAUM,QAAQ,SAUpC,QAEEK,WAAYX,EAUZ5nB,UAAW,WACT,GAAI4nB,GAA8B1rB,KAAKqsB,WAAWnnB,cAE9ConB,EAA8B,mBAAqBR,GAEnDS,EAA8B3nB,SAAS4nB,aAAe5nB,SAAS6nB,uBAAyB7nB,SAAS8nB,kBAEjGC,EAA8B/nB,SAASgoB,eAAiBhoB,SAASioB,iBAEjEC,EAA+B9sB,KAAK+sB,SAAWtB,EAAWC,GAAa,GAAO1rB,KAAKgtB,aAAepB,EAAeF,GAAa,GAA0C,KAApCA,EAAUM,QAAQ,eAAwD,KAAhCN,EAAUM,QAAQ,SACpM,OAAOM,IACFC,GACAI,IACCG,GAGRG,cAAe,WACb,MAAOjtB,MAAKktB,cAAc,cAG5BH,MAAO,WACL,MAAO,oBAAsB3a,KAAKpS,KAAKqsB,aAGzCW,UAAW,WACT,MAA8C,KAAvChtB,KAAKqsB,WAAWL,QAAQ,YAYjCmB,yBAA0B,WACxB,MAAOpB,IAQTqB,8CAA+C,WAC7C,QAAS,iBAAmBxoB,YAO9ByoB,6CAA8C,WAC5C,MAAOtB,IAQTuB,wBAAyB,WACvB,MAAO,gBAAkBxB,IAM3ByB,gBAAiB,WACf,MAAOtB,IAA+C,QAApCJ,UAAU2B,SAASC,OAAO,EAAG,IAMjDC,0BAA2B,WACzB,MAAOzB,IAGT0B,+BAAgC,SAAStG,GACvC,MAAO,eAAiBA,IAG1B6F,cAAe,SAASU,GACtB,MAAO,KAAOA,IAAa9B,IAAe,WAExC,MADAA,GAAY+B,aAAa,KAAOD,EAAW,WACM,kBAAnC9B,GAAY,KAAO8B,OAOrCE,gCAAiC,WAC/B,OAAQ1B,GAWV2B,kBAAmB,SAASzC,GAC1B,GAAIjE,GAAUiE,EAAQnkB,cAAc,OAChC6mB,EAAU,wBAEd,OADA3G,GAAQ9Z,UAAYygB,EACb3G,EAAQ9Z,UAAUrI,gBAAkB8oB,GAe7CC,gBAAiB,WAEf,GAAIC,IAEFC,YAAwBpC,EAIxBqC,oBAAwBrC,GAAQG,EAChCmC,kBAAwBtC,GAAQG,GAI9BpoB,GACFwqB,WAAcrC,EAGhB,OAAO,UAASlpB,EAAKwrB,GACnB,GAAIC,GAAUN,EAAcK,EAC5B,KAAKC,EAAS,CAEZ,IACE,MAAOzrB,GAAI0pB,sBAAsB8B,GACjC,MAAME,IAER,IACE,MAAO1rB,GAAI2rB,oBAAoBH,GAC/B,MAAMI,GACN,QAAS7qB,EAAUyqB,IAGvB,OAAO,MAcXK,iCAAkC,WAChC,MAAO7C,IAOT8C,sBAAuB,WACrB,MAAO7uB,MAAKiuB,gBAAgBrpB,SAAU,kBAOxCkqB,+BAAgC,WAC9B,MAAO7C,IAAWG,GAAWF,GAM/B6C,8BAA+B,WAC7B,GAAIC,GAAKpqB,SAASuC,cAAc,KAChC,OAAqC,KAA9B6nB,EAAGC,aAAa,YAOzBC,iCAAkC,WAChC,MAAOjD,IAAWF,GAAQK,GAM5B+C,mBAAoB,WAClB,OAAQjD,GAMVkD,uBAAwB,WACtB,GACIvZ,GACAtI,EAFA8hB,EAAoBvD,EAAY1gB,WAAU,EAW9C,OAPAikB,GAAkB9hB,UAAY,iBAC9BA,EAA8B8hB,EAAkB9hB,UAAUrI,cAC1D2Q,EAA4C,uBAAdtI,GAAoD,uBAAdA,EAGpEvN,KAAKovB,uBAAyB,WAAa,MAAOvZ,IAE3CA,GAMTyZ,qCAAsC,WACpC,MAA4E,KAArE/qB,OAAOK,SAAS2qB,wBAAwBvD,QAAQ,kBAOzDwD,wBAAyB,WACvB,MAAO,gBAAkBpsB,SAAU,UAAYA,QAAO2d,gBAMxD0O,yBAA0B,WACxB,MAAOrD,IAaTsD,oBAAqB,SAASC,GAC5B,GAAIC,GAAgBlE,EAAUC,MAAM,mBAAqBJ,OAAW,EACpE,OAAOqE,GAAc,IAAM,KAAO,wBAA0BD,IAAS,UAAYA,KAQnFE,0BAA2B,SAASC,GAClC,MAAO/D,KAAsB,mBAAb+D,GAA8C,mBAAbA,IAMnDC,eAAgB,WACd,MAAOhE,IAMTiE,gCAAiC,WAC/B,MAAOjE,IAGTkE,qBAAsB,WACpB,MAAOhE,IAAWE,GAAYC,GAShC8D,mBAAoB,WAClB,MAAO9D,IAMT+D,oBAAqB,WACnB,MAAOpE,IAWTqE,qCAAsC,WACpC,MAAOlE,IAGTmE,uBAAwB,WACpB,MAAQ,iBAAmBjtB,aAIlC7C,UAAUM,KAAKyvB,MAAQ,SAAS3oB,GAC/B,OAUEgU,SAAU,SAAS4U,GACjB,GAAIpwB,MAAMC,QAAQmwB,GAAS,CACzB,IAAK,GAAIjuB,GAAIiuB,EAAOhuB,OAAQD,KAC1B,GAAqD,KAAjD/B,UAAUM,KAAKyvB,MAAM3oB,GAAKqkB,QAAQuE,EAAOjuB,IAC3C,OAAO,CAGX,QAAO,EAEP,MAAqD,KAA9C/B,UAAUM,KAAKyvB,MAAM3oB,GAAKqkB,QAAQuE,IAY7CvE,QAAS,SAASuE,GACd,GAAI5oB,EAAIqkB,QACN,MAAOrkB,GAAIqkB,QAAQuE,EAEnB,KAAK,GAAIjuB,GAAE,EAAGC,EAAOoF,EAAIpF,OAAUA,EAAFD,EAAUA,IACzC,GAAIqF,EAAIrF,KAAOiuB,EAAU,MAAOjuB,EAElC,OAAO,IAWbkuB,QAAS,SAASC,GAChBA,EAAmBlwB,UAAUM,KAAKyvB,MAAMG,EAIxC,KAHA,GAAIC,MACApuB,EAAU,EACVC,EAAUoF,EAAIpF,OACTA,EAAFD,EAAUA,IACVmuB,EAAiB9U,SAAShU,EAAIrF,KACjCouB,EAAOxoB,KAAKP,EAAIrF,GAGpB,OAAOouB,IAUT7wB,IAAK,WAIH,IAHA,GAAIyC,GAAW,EACXC,EAAWoF,EAAIpF,OACfouB,KACKpuB,EAAFD,EAAUA,IACfquB,EAASzoB,KAAKP,EAAIrF,GAEpB,OAAOquB,IAaTC,IAAK,SAASC,EAAUC,GACtB,GAAI3wB,MAAMP,UAAUgxB,IAClB,MAAOjpB,GAAIipB,IAAIC,EAAUC,EAKzB,KAHA,GAAIprB,GAAMiC,EAAIpF,SAAW,EACrBwuB,EAAI,GAAI5wB,OAAMuF,GACdpD,EAAI,EACGoD,EAAJpD,EAASA,IACbyuB,EAAEzuB,GAAKuuB,EAAS9wB,KAAK+wB,EAASnpB,EAAIrF,GAAIA,EAAGqF,EAE5C,OAAOopB,IAUXC,OAAQ,WAKN,IAJA,GAAIC,MACAC,EAAMvpB,EAAIpF,OACV4uB,EAAM,EAEGD,EAANC,GACA5wB,UAAUM,KAAKyvB,MAAMW,GAAMtV,SAAShU,EAAIwpB,KAC3CF,EAAK/oB,KAAKP,EAAIwpB,IAEhBA,GAEF,OAAOF,MAKZ1wB,UAAUM,KAAKuwB,WAAalH,KAAKnjB,QAEhCsqB,GAAI,SAASzD,EAAW0D,GAItB,MAHAtxB,MAAKuxB,OAASvxB,KAAKuxB,WACnBvxB,KAAKuxB,OAAO3D,GAAa5tB,KAAKuxB,OAAO3D,OACrC5tB,KAAKuxB,OAAO3D,GAAW1lB,KAAKopB,GACrBtxB,MAGTwxB,IAAK,SAAS5D,EAAW0D,GACvBtxB,KAAKuxB,OAASvxB,KAAKuxB,UACnB,IACIE,GACAC,EAFApvB,EAAI,CAGR,IAAIsrB,EAAW,CAGb,IAFA6D,EAAczxB,KAAKuxB,OAAO3D,OAC1B8D,KACOpvB,EAAEmvB,EAASlvB,OAAQD,IACpBmvB,EAASnvB,KAAOgvB,GAAWA,GAC7BI,EAAYxpB,KAAKupB,EAASnvB,GAG9BtC,MAAKuxB,OAAO3D,GAAa8D,MAGzB1xB,MAAKuxB,SAEP,OAAOvxB,OAGT2xB,KAAM,SAAS/D,EAAWgE,GACxB5xB,KAAKuxB,OAASvxB,KAAKuxB,UAGnB,KAFA,GAAIE,GAAWzxB,KAAKuxB,OAAO3D,OACvBtrB,EAAW,EACRA,EAAEmvB,EAASlvB,OAAQD,IACxBmvB,EAASnvB,GAAGvC,KAAKC,KAAM4xB,EAEzB,OAAO5xB,OAIT6xB,QAAS,WACP,MAAO7xB,MAAKqxB,GAAG3J,MAAM1nB,KAAM2I,YAI7BmpB,cAAe,WACb,MAAO9xB,MAAKwxB,IAAI9J,MAAM1nB,KAAM2I,cAG/BpI,UAAUM,KAAKuqB,OAAS,SAASpkB,GAChC,OAME+qB,MAAO,SAASC,GACd,IAAK,GAAI1vB,KAAK0vB,GACZhrB,EAAI1E,GAAK0vB,EAAS1vB,EAEpB,OAAOtC,OAGTH,IAAK,WACH,MAAOmH,IAQT8S,MAAO,WACL,GACIxX,GADA2vB,IAEJ,KAAK3vB,IAAK0E,GACRirB,EAAO3vB,GAAK0E,EAAI1E,EAElB,OAAO2vB,IAQT7xB,QAAS,WACP,MAA+C,mBAAxCZ,OAAOI,UAAUU,SAASP,KAAKiH,MAI3C,WACC,GAAIkrB,GAAoB,OACpBC,EAAoB,OACpBC,EAAoB,UACpBC,GACEC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SAEXlyB,WAAUM,KAAK6xB,OAAS,SAASC,GAE/B,MADAA,GAAMpuB,OAAOouB,IAOXC,KAAM,WACJ,MAAOD,GAAIhT,QAAQuS,EAAmB,IAAIvS,QAAQwS,EAAiB,KAQrEU,YAAa,SAASC,GACpB,IAAK,GAAIxwB,KAAKwwB,GACZH,EAAM3yB,KAAK2f,QAAQ,KAAOrd,EAAI,KAAKywB,GAAGD,EAAKxwB,GAE7C,OAAOqwB,IAQThT,QAAS,SAASqT,GAChB,OACED,GAAI,SAASpT,GACX,MAAOgT,GAAIM,MAAMD,GAAQ/gB,KAAK0N,MAUpCuT,WAAY,WACV,MAAOP,GAAIhT,QAAQyS,EAAgB,SAASe,GAAK,MAAOd,GAAWc,WAe3E,SAAU5yB,GAoBR,QAAS6yB,GAAS/L,EAASgM,GACzB,MAAIC,GAA8BjM,EAASgM,GAClChM,GAGLA,IAAYA,EAAQ5b,cAAcgD,kBACpC4Y,EAAUA,EAAQ5b,cAAczI,MAG3BuwB,EAAWlM,EAASgM,IAO7B,QAASG,GAAoBb,GAC3B,MAAOA,GAAIhT,QAAQ8T,EAAa,SAAS9H,EAAO+H,GAC9C,GAAIC,IAAeD,EAAI/H,MAAMiI,QAA8B,IAAM,GAC7DC,EAAcC,EAASH,EAC3BD,GAAMA,EAAI/T,QAAQiU,EAAuB,IAErCF,EAAIT,MAAMY,GAAStxB,OAASmxB,EAAIT,MAAMU,GAAapxB,SACrDmxB,GAAYC,EACZA,EAAc,GAEhB,IAAII,GAAaL,EACbM,EAAaN,CASjB,OARIA,GAAInxB,OAAS0xB,IACfD,EAAaA,EAAWvG,OAAO,EAAGwG,GAAsB,OAG7B,SAAzBF,EAAQtG,OAAO,EAAG,KACpBsG,EAAU,UAAYA,GAGjB,YAAcA,EAAU,KAAOC,EAAa,OAASL,IAQhE,QAASO,GAAgB5I,GACvB,GAAI6I,GAAc7I,EAAQ8I,sBAI1B,OAHKD,KACHA,EAAc7I,EAAQ8I,uBAAyB9I,EAAQnkB,cAAc,QAEhEgtB,EAMT,QAASE,GAAmBlmB,GAC1B,GAAI1E,GAAc0E,EAAS1E,WACvB6qB,EAAc/zB,EAAUM,KAAK6xB,OAAOvkB,EAASf,MAAM8lB,aACnDiB,EAAcD,EAAgBzqB,EAAWgC,cAO7C,KAHA0oB,EAAY5mB,UAAY,gBAAkBimB,EAAoBc,GAC9DH,EAAYrc,YAAYqc,EAAYnnB,YAE7BmnB,EAAYnnB,YAEjBvD,EAAWsB,aAAaopB,EAAYnnB,WAAYmB,EAElD1E,GAAWqO,YAAY3J,GAGzB,QAASmlB,GAA8BnqB,EAAMkqB,GAE3C,IADA,GAAIpuB,GACGkE,EAAKM,YAAY,CAGtB,GAFAN,EAAOA,EAAKM,WACZxE,EAAWkE,EAAKlE,SACZkE,EAAK0f,WAAatoB,EAAUM,KAAKyvB,MAAMnnB,EAAK0f,UAAUoK,MAAM,MAAMtX,SAAS0X,GAC7E,OAAO,CAET,IAAIkB,EAAe5Y,SAAS1W,GAC1B,OAAO,CACF,IAAiB,SAAbA,EACT,OAAO,EAGX,OAAO,EAGT,QAASsuB,GAAWlM,EAASgM,GAC3B,KAAIkB,EAAe5Y,SAAS0L,EAAQpiB,WAIhCoiB,EAAQwB,WAAatoB,EAAUM,KAAKyvB,MAAMjJ,EAAQwB,UAAUoK,MAAM,MAAMtX,SAAS0X,IAArF,CAIA,GAAIhM,EAAQ7f,WAAajH,EAAUY,WAAakmB,EAAQja,KAAKue,MAAM8H,GAGjE,MAFApwB,SAAQC,IAAI+jB,OACZgN,GAAmBhN,EAQrB,KAJA,GAAI9f,GAAoBhH,EAAUM,KAAKyvB,MAAMjJ,EAAQ9f,YAAY1H,MAC7D20B,EAAoBjtB,EAAWhF,OAC/BD,EAAoB,EAEfkyB,EAAFlyB,EAAoBA,IACzBixB,EAAWhsB,EAAWjF,GAAI+wB,EAG5B,OAAOhM,IAnIT,GAGIkN,GAAwBh0B,EAAUM,KAAKyvB,OAAO,OAAQ,MAAO,IAAK,SAAU,OAAQ,QAAS,UAW7FmD,EAAwB,oCACxBG,EAAwB,oBACxBK,EAAwB,IACxBH,GAA0BW,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAqHvDp0B,GAAUG,IAAI0yB,SAAWA,EAGzB7yB,EAAUG,IAAI0yB,SAASK,YAAcA,GACpClzB,WACF,SAAUA,GACT,GAAIqD,GAAMrD,EAAUG,GAEpBkD,GAAIgxB,SAAW,SAASvN,EAASwB,GAC/B,GAAIgM,GAAYxN,EAAQwN,SACxB,OAAIA,GACKA,EAAU9R,IAAI8F,QAEnBjlB,EAAIkxB,SAASzN,EAASwB,KAG1BxB,EAAQwB,WAAa,IAAMA,KAG7BjlB,EAAImxB,YAAc,SAAS1N,EAASwB,GAClC,GAAIgM,GAAYxN,EAAQwN,SACxB,OAAIA,GACKA,EAAUrjB,OAAOqX,QAG1BxB,EAAQwB,UAAYxB,EAAQwB,UAAUlJ,QAAQ,GAAI3N,QAAO,WAAa6W,EAAY,YAAa,OAGjGjlB,EAAIkxB,SAAW,SAASzN,EAASwB,GAC/B,GAAIgM,GAAYxN,EAAQwN,SACxB,IAAIA,EACF,MAAOA,GAAUlZ,SAASkN,EAG5B,IAAImM,GAAmB3N,EAAQwB,SAC/B,OAAQmM,GAAiBzyB,OAAS,IAAMyyB,GAAoBnM,GAAa,GAAI7W,QAAO,UAAY6W,EAAY,WAAWzW,KAAK4iB,MAE7Hz0B,WACFA,UAAUG,IAAIib,SAAW,WACxB,GAAIlN,GAAkB7J,SAAS6J,eAC/B,OAAIA,GAAgBkN,SACX,SAASnB,EAAW6M,GAIzB,MAHIA,GAAQ7f,WAAajH,UAAUW,eACjCmmB,EAAUA,EAAQ5d,YAEb+Q,IAAc6M,GAAW7M,EAAUmB,SAAS0L,IAE5C5Y,EAAgBwmB,wBAClB,SAASza,EAAW6M,GAEzB,SAAuD,GAA7C7M,EAAUya,wBAAwB5N,KAHzC,UAiCT9mB,UAAUG,IAAIw0B,cAAgB,WAC5B,QAASC,GAAgBpyB,EAAKqyB,GAC5B,GAAIC,GAAWtyB,EAAIoE,cAAc,KAEjC,OADAiuB,GAAKhuB,YAAYiuB,GACVA,EAGT,QAASC,GAAYvyB,EAAK2a,GACxB,MAAO3a,GAAIoE,cAAcuW,GAG3B,QAASwX,GAAc7N,EAASkO,EAAUC,GACxC,GAAyB,OAArBnO,EAAQpiB,UAA0C,OAArBoiB,EAAQpiB,UAA0C,SAArBoiB,EAAQpiB,SAEpE,MAAOoiB,EAGT,IAII9f,GACAitB,EACAiB,EACAC,EACAjsB,EACAksB,EACAC,EACAC,EACAvzB,EAZAS,EAAoBskB,EAAQ5b,cAC5B2pB,EAAoBE,EAAYvyB,EAAKwyB,GACrCO,EAAoBzO,EAAQwF,iBAAiB,MAC7CkJ,EAAoBD,EAAWvzB,MAYnC,KAAKD,EAAE,EAAKyzB,EAAFzzB,EAAoBA,IAE5B,IADAozB,EAAYI,EAAWxzB,IACfmH,EAAaisB,EAAUjsB,aAAeA,IAAe4d,GAAW5d,EAAWyQ,YAAcwb,GAAW,CAC1G,GAA2D,UAAvDn1B,UAAUG,IAAIs1B,SAAS,WAAWC,KAAKxsB,GAAyB,CAClEA,EAAWqO,YAAY4d,EACvB,OAEFn1B,UAAUG,IAAIw1B,OAAOR,GAAWS,MAAMT,EAAUjsB,YAOpD,IAHAlC,EAAoBhH,UAAUM,KAAKyvB,MAAMjJ,EAAQ9f,YAAY1H,MAC7D20B,EAAoBjtB,EAAWhF,OAE1BD,EAAE,EAAKkyB,EAAFlyB,EAAoBA,IAC5BuzB,EAAoBA,GAAmBV,EAAgBpyB,EAAKqyB,GAC5DK,EAAoBluB,EAAWjF,GAC/BqzB,EAA0E,UAAtDp1B,UAAUG,IAAIs1B,SAAS,WAAWC,KAAKR,GAC3DG,EAA2C,OAAvBH,EAAUxwB,UAG1B0wB,GAAoBH,GAAoBj1B,UAAUG,IAAIo0B,SAASW,EAAWD,GAQ1EI,EAEFC,EAAkBA,EAAgB7oB,WAAa,KAAO6oB,EAIxDA,EAAgBzuB,YAAYquB,IAZ1BI,EAAkBA,EAAgB7oB,WAAamoB,EAAgBpyB,EAAKqyB,GAAQS,EAC5EA,EAAgBzuB,YAAYquB,GAC5BI,EAAkB,KAkBtB,OAL0B,KAAtBtuB,EAAWhF,QACb4yB,EAAgBpyB,EAAKqyB,GAGvB/N,EAAQ5d,WAAW2sB,aAAahB,EAAM/N,GAC/B+N,EAGT,MAAOF,MAiBT30B,UAAUG,IAAI21B,eAAiB,SAASC,GACtC,OACEL,KAAM,SAASM,GACb,OACEC,GAAI,SAASC,GAIX,IAHA,GAAIC,GACAp0B,EAAY,EACZC,EAAY+zB,EAAiB/zB,OACxBA,EAAFD,EAAUA,IACfo0B,EAAYJ,EAAiBh0B,GACgB,mBAAlCi0B,GAAkBG,IAAgE,KAAjCH,EAAkBG,KAC5ED,EAAgBC,GAAaH,EAAkBG,GAGnD,QAASC,MAAOhuB,UAAUiuB,aAyBpC,SAAUl2B,GASR,GAAIm2B,IAAyB,qBAAsB,kBAAmB,iBAAkB,cAEpFC,EAAiC,SAASzP,GAC5C,MAAI0P,GAAsB1P,GAChB2P,SAASt2B,EAAIs1B,SAAS,SAASC,KAAK5O,GAAU,IAAMA,EAAQ4P,aAE/D,GAGLF,EAAwB,SAAS1P,GAGnC,IAFA,GAAI/kB,GAAU,EACVC,EAAUs0B,EAAsBt0B,OAC3BA,EAAFD,EAAUA,IACf,GAA6D,eAAzD5B,EAAIs1B,SAASa,EAAsBv0B,IAAI2zB,KAAK5O,GAC9C,MAAOwP,GAAsBv0B,GAKnC5B,GAAIw2B,WAAa,SAASC,GACxB,OACElB,KAAM,SAAS5O,GACTyP,EAA+BzP,KACjC8P,EAAe52B,UAAUM,KAAKyvB,MAAM6G,GAAc3G,QAAQqG,GAO5D,KAJA,GAGI/G,GAHAsH,EAAU,GACV70B,EAAU40B,EAAa50B,OACvBD,EAAU,EAELC,EAAFD,EAAUA,IACfwtB,EAAWqH,EAAa70B,GACxB80B,GAAWtH,EAAW,IAAMpvB,EAAIs1B,SAASlG,GAAUmG,KAAK5O,GAAW,GAGrE,QACEmP,GAAI,SAASnP,GAEX,MADA3mB,GAAI22B,UAAUD,GAAS/F,GAAGhK,IACjBsP,MAAOhuB,UAAUiuB,cAMnCr2B,UAAUG,KASb,SAAUH,GAERA,EAAUG,IAAI42B,SAAW,SAAS9c,EAAW+c,EAAU3J,EAAW0D,GAChE,MAAO/wB,GAAUG,IAAImxB,QAAQrX,EAAWoT,EAAW,SAAS4J,GAI1D,IAHA,GAAIC,GAAYD,EAAMC,OAClB9L,EAAYprB,EAAUM,KAAKyvB,MAAM9V,EAAUqS,iBAAiB0K,IAEzDE,GAAUA,IAAWjd,GAAW,CACrC,GAAImR,EAAMhQ,SAAS8b,GAAS,CAC1BnG,EAAQvxB,KAAK03B,EAAQD,EACrB,OAEFC,EAASA,EAAOhuB,gBAKrBlJ,WAaHA,UAAUG,IAAIg3B,SAAW,WAEvB,GAAIC,GAAiB,SAASC,EAAMtM,GAClC,GAAI6I,GAAc7I,EAAQnkB,cAAc,MACxCgtB,GAAYzL,MAAME,QAAU,OAC5B0C,EAAQtoB,KAAKoE,YAAY+sB,EAEzB,KAAMA,EAAY5mB,UAAYqqB,EAAQ,MAAMlwB,IAE5C,MADA4jB,GAAQtoB,KAAK8U,YAAYqc,GAClBA,GAML0D,EAA4B,SAASvM,GACvC,IAAIA,EAAQwM,6BAAZ,CAGA,IAAK,GAAIx1B,GAAE,EAAGC,EAAOw1B,EAAex1B,OAAUA,EAAFD,EAAUA,IACpDgpB,EAAQnkB,cAAc4wB,EAAez1B,GAEvCgpB,GAAQwM,8BAA+B,IAQrCC,GACF,OAAQ,UAAW,QAAS,QAAS,MAAO,SAAU,UAAW,WAAY,UAAW,aACxF,SAAU,SAAU,SAAU,SAAU,SAAU,OAAQ,QAAS,MAAO,SAAU,WACpF,KAAM,KAAM,OAAQ,MAAO,UAAW,SAAU,UAAW,OAAQ,QAAS,QAAS,MAGvF,OAAO,UAASH,EAAMtM,GACpBA,EAAUA,GAAW1mB,QACrB,IAAIuvB,EAWJ,OAVqB,gBAAX,IAAuByD,EAAKpwB,UACpC2sB,EAAc7I,EAAQnkB,cAAc,OACpCgtB,EAAY/sB,YAAYwwB,IACfr3B,UAAUirB,QAAQuC,kBAAkBzC,IAC7C6I,EAAc7I,EAAQnkB,cAAc,OACpCgtB,EAAY5mB,UAAYqqB,IAExBC,EAA0BvM,GAC1B6I,EAAcwD,EAAeC,EAAMtM,IAE9B6I,MAkBX5zB,UAAUG,IAAIs3B,iBAAmB,WAE/B,QAASC,GAAgBhzB,EAAUizB,GACjC,MAAKA,IAAqBA,EAAiB31B,OAIV,gBAAvB,GACD0C,IAAaizB,EAEb33B,UAAUM,KAAKyvB,MAAM4H,GAAkBvc,SAAS1W,IANhD,EAUX,QAASkzB,GAAWhvB,GAClB,MAAOA,GAAK3B,WAAajH,UAAUW,aAGrC,QAASk3B,GAAc/Q,EAASwB,EAAWwP,GACzC,GAAIC,IAAcjR,EAAQwB,WAAa,IAAI8C,MAAM0M,MACjD,OAAKxP,GAGEyP,EAAWA,EAAW/1B,OAAS,KAAOsmB,IAFlCyP,EAAW/1B,OAKxB,QAASg2B,GAAUlR,EAASmR,EAAUC,GACpC,GAAIC,IAAUrR,EAAQ4H,aAAa,UAAY,IAAItD,MAAM8M,MACzD,OAAKD,GAGEE,EAAOA,EAAOn2B,OAAS,KAAOi2B,IAF1BE,EAAOn2B,OAKpB,MAAO,UAAS4G,EAAMwvB,EAAaC,EAAQpe,GACzC,GAAIqe,GAAeF,EAAYH,UAAYG,EAAYF,YACnDK,EAAeH,EAAY9P,WAAa8P,EAAYN,WAIxD,KAFAO,EAASA,GAAU,GAEZA,KAAYzvB,GAA0B,SAAlBA,EAAKlE,YAAyBuV,GAAarR,IAASqR,IAAY,CACzF,GAAI2d,EAAWhvB,IAAS8uB,EAAgB9uB,EAAKlE,SAAU0zB,EAAY1zB,aAC7D4zB,GAAeN,EAAUpvB,EAAMwvB,EAAYH,SAAUG,EAAYF,iBACjEK,GAAeV,EAAcjvB,EAAMwvB,EAAY9P,UAAW8P,EAAYN,cAE1E,MAAOlvB,EAETA,GAAOA,EAAKM,WAEd,MAAO,UAGVlJ,UAAUG,IAAIq4B,eAAiB,SAAS5vB,GAEvC,IADA,GAAI2B,GAAc3B,EAAK2B,YACjBA,GAAuC,GAAxBA,EAAYtD,UAC/BsD,EAAcA,EAAYA,WAE5B,OAAOA,IACNvK,UAAUG,IAAIs4B,mBAAqB,SAAS7vB,GAE7C,IADA,GAAI2B,GAAc3B,EAAKQ,gBACjBmB,GAAuC,GAAxBA,EAAYtD,UAC/BsD,EAAcA,EAAYnB,eAE5B,OAAOmB,IAWTvK,UAAUG,IAAIs1B,SAAW,WAMvB,QAASiD,GAAStG,GAChB,MAAOA,GAAIhT,QAAQuZ,EAAkB,SAASvN,GAC5C,MAAOA,GAAMwN,OAAO,GAAGC,gBAP3B,GAAIC,IACEC,QAAU,cAAgB10B,UAASuC,cAAc,OAAOuhB,MAAS,aAAe,YAElFwQ,EAAmB,UAQvB,OAAO,UAASpJ,GACd,OACEmG,KAAM,SAAS5O,GACb,GAAIA,EAAQ7f,WAAajH,UAAUW,aAAnC,CAIA,GAAI6B,GAAoBskB,EAAQ5b,cAC5B8tB,EAAoBF,EAAqBvJ,IAAamJ,EAASnJ,GAC/DpH,EAAoBrB,EAAQqB,MAC5Bha,EAAoB2Y,EAAQ3Y,aAC5B8qB,EAAoB9Q,EAAM6Q,EAC9B,IAAIC,EACF,MAAOA,EAQT,IAAI9qB,EACF,IACE,MAAOA,GAAa6qB,GACpB,MAAM7xB,IAKV,GAEI+xB,GACA5jB,EAHAhQ,EAAsB9C,EAAI4I,aAAe5I,EAAI6I,aAC7C8tB,GAAoC,WAAb5J,GAAsC,UAAbA,IAA8C,aAArBzI,EAAQpiB,QAIrF,OAAIY,GAAI0I,kBAGFmrB,IACFD,EAAmB/Q,EAAMiR,SACzBjR,EAAMiR,SAAW,UAEnB9jB,EAAchQ,EAAI0I,iBAAiB8Y,EAAS,MAAMuS,iBAAiB9J,GAC/D4J,IACFhR,EAAMiR,SAAWF,GAAoB,IAEhC5jB,GAXT,cAiBPtV,UAAUG,IAAIm5B,aAAe,SAAS1wB,GACrC,GAAI2wB,KACJ,KAAK3wB,EAAKA,EAAK6D,WAAW7D,EAAKA,EAAKA,EAAK2B,YACpB,GAAf3B,EAAK3B,SACLsyB,EAAI5xB,KAAKiB,GAET2wB,EAAMA,EAAIC,OAAOx5B,UAAUG,IAAIm5B,aAAa1wB,GAGlD,OAAO2wB,IAWTv5B,UAAUG,IAAIs5B,sBAAwB,WAIpC,QAASC,GAAuBl3B,GAC9B,MAAOA,GAAIm3B,wBAA0Bn3B,EAAIm3B,sBAAwBC,KAJnE,GAAIC,MACAD,EAAsB,CAM1B,OAAO,UAASp3B,EAAKsJ,GACnB,GAAI8e,GAAc8O,EAAuBl3B,GAAO,IAAMsJ,EAClDguB,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAOpoB,EAAIE,qBAAqBoJ,IAGnDguB,EAAW93B,OAAS,MAa/B,SAAUhC,GAIR,QAAS05B,GAAuBl3B,GAC9B,MAAOA,GAAIm3B,wBAA0Bn3B,EAAIm3B,sBAAwBC;CAJnE,GAAIC,MACAD,EAAsB,CAM1B55B,GAAUG,IAAI45B,wBAA0B,SAASv3B,EAAK8lB,GAGpD,IAAKtoB,EAAUirB,QAAQ8D,uCACrB,QAASvsB,EAAI6pB,cAAc,IAAM/D,EAGnC,IAAIsC,GAAc8O,EAAuBl3B,GAAO,IAAM8lB,EAClDwR,EAAcD,EAAWjP,EAK7B,OAJKkP,KACHA,EAAaD,EAAWjP,GAAOpoB,EAAIwsB,uBAAuB1G,IAGrDwR,EAAW93B,OAAS,IAE5BhC,WACFA,UAAUG,IAAIw1B,OAAS,SAASqE,GAC/B,OACEpE,MAAO,SAAS9O,GACdA,EAAQ5d,WAAWsB,aAAawvB,EAAiBlT,EAAQvc,cAG3D0vB,OAAQ,SAASnT,GACfA,EAAQ5d,WAAWsB,aAAawvB,EAAiBlT,IAGnDoT,KAAM,SAASpT,GACbA,EAAQjgB,YAAYmzB,MAIzBh6B,UAAUG,IAAIg6B,UAAY,SAASC,GAGlC,MAFAA,GAAQA,EAAM1oB,KAAK,OAGjBwoB,KAAM,SAAS13B,GACb,GAAI63B,GAAe73B,EAAIoE,cAAc,QACrCyzB,GAAald,KAAO,WAEhBkd,EAAaC,WACfD,EAAaC,WAAWzD,QAAUuD,EAElCC,EAAaxzB,YAAYrE,EAAIqL,eAAeusB,GAG9C,IAAIG,GAAO/3B,EAAI6pB,cAAc,YAC7B,IAAIkO,EAEF,WADAA,GAAKrxB,WAAWsB,aAAa6vB,EAAcE,EAG3C,IAAIC,GAAOh4B,EAAI6pB,cAAc,OACzBmO,IACFA,EAAK3zB,YAAYwzB,MAY3Br6B,UAAUG,IAAImxB,QAAU,SAASxK,EAAS2T,EAAY1J,GACpD0J,EAAoC,gBAAjB,IAA6BA,GAAcA,CAO9D,KALA,GAAIC,GACArN,EACAtrB,EAAU,EACVC,EAAUy4B,EAAWz4B,OAEhBA,EAAFD,EAAUA,IACfsrB,EAAYoN,EAAW14B,GACnB+kB,EAAQtf,iBACVsf,EAAQtf,iBAAiB6lB,EAAW0D,GAAS,IAE7C2J,EAAiB,SAASzD,GAClB,UAAYA,KAChBA,EAAMC,OAASD,EAAM0D,YAEvB1D,EAAM2D,eAAiB3D,EAAM2D,gBAAkB,WAC7Cn7B,KAAK6V,aAAc,GAErB2hB,EAAM4D,gBAAkB5D,EAAM4D,iBAAmB,WAC/Cp7B,KAAKq7B,cAAe,GAEtB/J,EAAQvxB,KAAKsnB,EAASmQ,IAExBnQ,EAAQrf,YAAY,KAAO4lB,EAAWqN,GAI1C,QACE5pB,KAAM,WAIJ,IAHA,GAAIuc,GACAtrB,EAAU,EACVC,EAAUy4B,EAAWz4B,OAChBA,EAAFD,EAAUA,IACfsrB,EAAYoN,EAAW14B,GACnB+kB,EAAQiU,oBACVjU,EAAQiU,oBAAoB1N,EAAW0D,GAAS,GAEhDjK,EAAQkU,YAAY,KAAO3N,EAAWqN,MA0DhD16B,UAAUG,IAAI86B,MAAQ,WAwBnB,QAASA,GAAMC,EAAe13B,GAC7BxD,UAAUM,KAAKuqB,OAAOsQ,GAAc3J,MAAM4J,GAAc5J,MAAMhuB,EAAO42B,OAAO96B,KAE5E,IAGIwnB,GACAlc,EACA6B,EALAse,EAAgBvnB,EAAOunB,SAAWmQ,EAAchwB,eAAiB7G,SACjE8I,EAAgB4d,EAAQ3d,yBACxBiuB,EAA0C,gBAApB,EAe1B,KAVI73B,EAAOyxB,kBACTA,EAAkBzxB,EAAOyxB,iBAIzBnO,EADEuU,EACQr7B,UAAUG,IAAIg3B,SAAS+D,EAAenQ,GAEtCmQ,EAGLpU,EAAQra,YACbA,EAAaqa,EAAQra,WACrB7B,EAAU0wB,EAAS7uB,EAAYjJ,EAAO+3B,SACtCzU,EAAQvP,YAAY9K,GAChB7B,GACFuC,EAAStG,YAAY+D,EAUzB,OALAkc,GAAQ9Z,UAAY,GAGpB8Z,EAAQjgB,YAAYsG,GAEbkuB,EAAWr7B,UAAUI,OAAOo7B,oBAAoB1U,GAAWA,EAGpE,QAASwU,GAASG,EAASF,GACzB,GAKIpuB,GACAvC,EACA8wB,EAPAC,EAAkBF,EAAQx0B,SAC1B20B,EAAkBH,EAAQz0B,WAC1B60B,EAAkBD,EAAU55B,OAC5BwoB,EAAkBsR,EAAkBH,GACpC55B,EAAkB,CAKtB,IAAIkzB,GAAmC,IAAhB0G,GAAqB37B,UAAUG,IAAIo0B,SAASkH,EAASxG,GACxE,MAAOwG,EAKX,IAFA7wB,EAAU4f,GAAUA,EAAOiR,IAEtB7wB,EAAS,CACV,GAAIA,KAAY,EAAO,CAInB,IAFAuC,EAAWsuB,EAAQvwB,cAAckC,yBAE5BrL,EAAI85B,EAAiB95B,KACxB25B,EAAWJ,EAASM,EAAU75B,GAAIw5B,GAC9BG,GACFvuB,EAAS3C,aAAakxB,EAAUvuB,EAASV,WAsB7C,OAjBIzM,WAAUM,KAAKyvB,OACf,MAAO,MAAO,IACd,QAAS,KAAM,KACf,KAAM,KAAM,KACZ,KAAM,KACN,SAAU,SAAU,UACpB,KAAM,KAAM,KAAM,KAAM,KAAM,OAC/B3U,SAASqgB,EAAQ/2B,SAASC,gBAAkB82B,EAAQvyB,WAAWyQ,YAAc8hB,IAEvEA,EAAQlxB,aAAgD,IAAjCkxB,EAAQlxB,YAAYtD,UAAmB,MAAQ4K,KAAK4pB,EAAQlxB,YAAYwpB,YAClG5mB,EAAStG,YAAY40B,EAAQvwB,cAAc2C,eAAe,OAI5DV,EAAS4b,WACX5b,EAAS4b,YAEJ5b,EAEP,MAAO,MAIf,IAAKpL,EAAE,EAAK85B,EAAF95B,EAAmBA,IAC3B25B,EAAWJ,EAASM,EAAU75B,GAAIw5B,GAC9BG,GACF9wB,EAAQ/D,YAAY60B,EAKxB,IAAIH,GACA3wB,EAAQlG,SAASC,gBAAkBo3B,KACjCnxB,EAAQ5D,WAAWhF,QACnB,UAAY6P,KAAKjH,EAAQoC,YAAoC,gCAAtByuB,EAAQnT,WAAqE,2BAAtBmT,EAAQnT,YACtG1d,EAAQoxB,WAAWh6B,QACnB,CAEJ,IADAmL,EAAWvC,EAAQM,cAAckC,yBAC1BxC,EAAQ6B,YACbU,EAAStG,YAAY+D,EAAQ6B,WAK/B,OAHIU,GAAS4b,WACX5b,EAAS4b,YAEJ5b,EAMT,MAHIvC,GAAQme,WACVne,EAAQme,YAEHne,EAGT,QAASqxB,GAAeR,GACtB,GAAIS,GACAtxB,EACAuxB,EAAchB,EAAaiB,KAC3B13B,EAAc+2B,EAAQ/2B,SAASC,cAC/B03B,EAAcZ,EAAQY,SAM1B,IAAIZ,EAAQa,WACV,MAAO,KAIT,IAFAb,EAAQa,WAAa,EAEK,mBAAtBb,EAAQnT,UACV,MAAO,KAyBT,IAhBI+T,GAA0B,QAAbA,IACf33B,EAAW23B,EAAY,IAAM33B,GAO3B,aAAe+2B,KACZz7B,UAAUirB,QAAQ4D,0BACE,MAArB4M,EAAQ/2B,UACsC,SAA9C+2B,EAAQc,UAAUx1B,MAAM,IAAIpC,gBAC9BD,EAAW,QAIXA,IAAYy3B,GAAU,CAExB,GADAD,EAAOC,EAASz3B,IACXw3B,GAAQA,EAAKjrB,OAChB,MAAO,KACF,IAAIirB,EAAKM,OACd,OAAO,CAETN,GAAwB,gBAAX,IAAwBO,WAAYP,GAASA,MACrD,CAAA,IAAIT,EAAQhvB,WAIjB,MAAO,KAHPyvB,IAASO,WAAYV,GAUvB,MAJAnxB,GAAU6wB,EAAQvwB,cAActE,cAAcs1B,EAAKO,YAAc/3B,GACjEg4B,EAAkBjB,EAAS7wB,EAASsxB,GACpCS,EAAclB,EAAS7wB,EAASsxB,GAE5BA,EAAKU,cAAgBC,EAAWpB,EAASN,EAAce,EAAKU,aACtDV,EAAKY,eAAuC,UAAtBZ,EAAKY,eAA6B,EAAQ,MAG1ErB,EAAU,KAEN7wB,EAAQme,WAAane,EAAQme,YAC1Bne,GAGT,QAASiyB,GAAWpB,EAASrB,EAAO2C,GAClC,GAAIC,GAAY7f,CAGhB,IAAyB,SAArBse,EAAQ/2B,WAA8C,gCAAtB+2B,EAAQnT,WAAqE,2BAAtBmT,EAAQnT,WACjG,OAAO,CAGT,KAAKnL,IAAQ4f,GACX,GAAIA,EAAMx2B,eAAe4W,IAASid,EAAM6C,kBAAoB7C,EAAM6C,iBAAiB9f,KACjF6f,EAAa5C,EAAM6C,iBAAiB9f,GAChC+f,EAAUzB,EAASuB,IACrB,OAAO,CAIb,QAAO,EAaT,QAASE,GAAUzB,EAASuB,GAE1B,GAEIG,GAAex9B,EAAgBy9B,EAAGC,EAAoBC,EAFtDC,EAAc9B,EAAQ/M,aAAa,SACnC8O,EAAc/B,EAAQ/M,aAAa,QAIvC,IAAIsO,EAAWS,QACb,IAAK,GAAIC,KAAKV,GAAWS,QACvB,GAAIT,EAAWS,QAAQl3B,eAAem3B,IAAMC,EAAgBD,IAEtDC,EAAgBD,GAAGjC,GACrB,OAAO,CAOf,IAAI8B,GAAeP,EAAWY,QAAS,CACrCL,EAAcA,EAAYne,QAAQ,QAAS,IAAIA,QAAQ,QAAS,IAAIsT,MAAMmL,GAC1EV,EAAgBI,EAAYv7B,MAC5B,KAAK,GAAID,GAAI,EAAOo7B,EAAJp7B,EAAmBA,IACjC,GAAIi7B,EAAWY,QAAQL,EAAYx7B,IACjC,OAAO,EAMb,GAAIy7B,GAAcR,EAAW7E,OAAQ,CAEnCqF,EAAaA,EAAW9K,MAAM,IAC9B,KAAK/yB,IAAKq9B,GAAW7E,OACnB,GAAI6E,EAAW7E,OAAO5xB,eAAe5G,GACnC,IAAK,GAAIm+B,GAAKN,EAAWx7B,OAAQ87B,KAG/B,GAFAR,EAAYE,EAAWM,GAAIpL,MAAM,KAE7B4K,EAAU,GAAGle,QAAQ,MAAO,IAAIza,gBAAkBhF,IAChDq9B,EAAW7E,OAAOx4B,MAAO,GAAiC,IAAzBq9B,EAAW7E,OAAOx4B,IAAYK,UAAUM,KAAKyvB,MAAMiN,EAAW7E,OAAOx4B,IAAIyb,SAASkiB,EAAU,GAAGle,QAAQ,MAAO,IAAIza,gBACrJ,OAAO,EASnB,GAAIq4B,EAAWe,MACX,IAAKX,IAAKJ,GAAWe,MACjB,GAAIf,EAAWe,MAAMx3B,eAAe62B,KAChCC,EAAOW,EAAcvC,EAAS2B,GACT,gBAAX,IACFC,EAAK5K,OAAOuK,EAAWe,MAAMX,IAAM,IACnC,OAAO,CAM3B,QAAO,EAGT,QAAST,GAAclB,EAAS7wB,EAASsxB,GACvC,GAAIv8B,EACJ,IAAGu8B,GAAQA,EAAK+B,YACd,IAAKt+B,IAAKu8B,GAAK+B,YACT/B,EAAK+B,YAAY13B,eAAe5G,KACzB,SAALA,GAEE87B,EAAQtT,MAAM+V,aAChBtzB,EAAQud,MAAM+V,WAAazC,EAAQtT,MAAM+V,YAEvCzC,EAAQtT,MAAMgW,WAChBvzB,EAAQud,MAAMgW,SAAW1C,EAAQtT,MAAMgW,WAE/B1C,EAAQtT,MAAMxoB,KACvBiL,EAAQud,MAAMxoB,GAAK87B,EAAQtT,MAAMxoB,KAO5C,QAAS+8B,GAAkBjB,EAAS7wB,EAASsxB,GAC3C,GAYIiB,GAEAiB,EACAC,EACAC,EACAC,EACA/T,EAlBAwR,KACAwC,EAAsBtC,EAAKuC,UAC3BpK,EAAsB6H,EAAKwC,UAC3BC,EAAsBzC,EAAK0C,UAC3BC,EAAsB3C,EAAK4C,eAC3BC,EAAsB7C,EAAK8C,iBAC3BC,EAAsB9D,EAAayC,QACnC77B,EAAsB,EACtB67B,KACAzF,KACA+G,KACAC,IAaJ,IAJIN,IACF7C,EAAah8B,UAAUM,KAAKuqB,OAAOgU,GAAetlB,SAGhDwlB,EACF,IAAKT,IAAiBS,GACpBvU,EAAS4U,EAAsBL,EAAgBT,IAC1C9T,IAGL6U,aAAerB,EAAcvC,EAAS6C,IAClCe,cAAmC,QAAlBf,GAA+C,OAApB7C,EAAQ/2B,YACtD65B,EAAoB/T,EAAO6U,cACO,gBAAxB,KACRrD,EAAWsC,GAAiBC,IAUpC,IAJIC,GACFZ,EAAQj2B,KAAK62B,GAGXnK,EACF,IAAKiK,IAAiBjK,GACpB7J,EAAS8U,EAAgBjL,EAASiK,IAC7B9T,IAGL6T,EAAW7T,EAAOwT,EAAcvC,EAAS6C,IAChB,gBAAf,IACRV,EAAQj2B,KAAK02B,GAKnB,IAAIM,EACF,IAAKL,IAAiBK,GACpBnU,EAAS+U,EAAgBZ,EAASL,IAC7B9T,IAILgV,SAAWhV,EAAOwT,EAAcvC,EAAS6C,IAChB,gBAAf,WACRnG,EAAOxwB,KAAK63B,UAMlB,IAA+B,gBAArB,IAAoD,QAAnBP,GAA4BxD,EAAQ/M,aAAa,SAC1FsN,EAAW,SAAWP,EAAQ/M,aAAa,aACtC,CAWL,IATAuQ,EAAe,+BAAiC,EAChDA,EAAwC,wBAAI,EAG5CE,EAAa1D,EAAQ/M,aAAa,SAC9ByQ,IACFvB,EAAUA,EAAQpE,OAAO2F,EAAWzM,MAAMmL,KAE5CV,EAAgBS,EAAQ57B,OACfm7B,EAAFp7B,EAAiBA,IACtBq8B,EAAeR,EAAQ77B,GACnBk9B,EAAeb,IACjBc,EAAWv3B,KAAKy2B,EAIhBc,GAAWl9B,SACbg6B,EAAW,SAAWh8B,UAAUM,KAAKyvB,MAAMmP,GAAYzO,SAAS/e,KAAK,MAIrEymB,EAAOn2B,SACTg6B,EAAkB,MAAIh8B,UAAUM,KAAKyvB,MAAMoI,GAAQ1H,SAAS/e,KAAK,KAInE,KAAK4sB,IAAiBtC,GAIpB,IACEpxB,EAAQ0iB,aAAagR,EAAetC,EAAWsC,IAC/C,MAAMn3B,IAKN60B,EAAWyD,MACoB,mBAAtBzD,GAAgB,OACzBpxB,EAAQ0iB,aAAa,QAAS0O,EAAW0D,OAET,mBAAvB1D,GAAiB,QAC1BpxB,EAAQ0iB,aAAa,SAAU0O,EAAW2D,SAahD,QAAS3B,GAAcp1B,EAAM01B,GAC3BA,EAAgBA,EAAc35B,aAC9B,IAAID,GAAWkE,EAAKlE,QACpB,IAAgB,OAAZA,GAAsC,OAAjB45B,GAA0BsB,EAAeh3B,MAAU,EAK1E,MAAOA,GAAK62B,GACP,IAAII,GAAyB,aAAej3B,GAAM,CAEvD,GAAI2zB,GAAiB3zB,EAAK2zB,UAAU53B,cAEhCm7B,EAAkE,IAAjDvD,EAAU9Q,QAAQ,IAAM6S,EAAiB,IAE9D,OAAOwB,GAAel3B,EAAK8lB,aAAa4P,GAAiB,KAEzD,MAAO11B,GAAK8lB,aAAa4P,GAQ7B,QAASsB,GAAeh3B,GACtB,IACE,MAAOA,GAAKm3B,WAAan3B,EAAKo3B,mBAAmB,gBACjD,MAAM74B,GACN,GAAIyB,EAAKm3B,UAAgC,aAApBn3B,EAAKq3B,WACxB,OAAO,GAMb,QAASC,GAAYzE,GACnB,GAAIlxB,GAAckxB,EAAQlxB,WAC1B,KAAIA,GAAeA,EAAYtD,WAAajH,UAAUY,UAG/C,CAEL,GAAIiM,GAAO4uB,EAAQ5uB,KAAKuS,QAAQ+gB,EAAyB,GACzD,OAAO1E,GAAQvwB,cAAc2C,eAAehB,GAJ5CtC,EAAYsC,KAAO4uB,EAAQ5uB,KAAKuS,QAAQ+gB,EAAyB,IAAM51B,EAAYsC,KAAKuS,QAAQ+gB,EAAyB,IA5e7H,GAAIrE,IACEsE,EAAKnE,EACLoE,EAAKH,GAGPnE,EAAsB,OACtB8B,EAAsB,MACtBzC,GAAwBgB,QAAUwB,YAClCzC,KACAlG,GAAsB,EA0btB4K,GAAyB7/B,UAAUirB,QAAQuD,gCAoC3C2R,EAA0B,UAe1Bf,GACFjM,IAAK,WACH,GAAImN,GAAU,eACd,OAAO,UAASC,GACd,MAAKA,IAAmBA,EAAenV,MAAMkV,GAGtCC,EAAenhB,QAAQkhB,EAAS,SAASlV,GAC9C,MAAOA,GAAMzmB,gBAHN,SAQb86B,IAAK,WACH,GAAIa,GAAU,oBACd,OAAO,UAASC,GACd,MAAKA,IAAmBA,EAAenV,MAAMkV,GAGtCC,EAAenhB,QAAQkhB,EAAS,SAASlV,GAC9C,MAAOA,GAAMzmB,gBAHN,SAQb67B,KAAM,WACJ,GAAIF,GAAU,8BACd,OAAO,UAASC,GACd,MAAKA,IAAmBA,EAAenV,MAAMkV,GAGtCC,EAAenhB,QAAQkhB,EAAS,SAASlV,GAC9C,MAAOA,GAAMzmB,gBAHN,SAQb87B,IAAK,WACH,GAAIH,GAAU,iBACd,OAAO,UAASC,GACd,MAAKA,GAGEA,EAAenhB,QAAQkhB,EAAS,IAF9B,OAMbI,QAAS,WACP,GAAIJ,GAAU,KACd,OAAO,UAASC,GAEd,MADAA,IAAkBA,GAAkB,IAAInhB,QAAQkhB,EAAS,IAClDC,GAAkB,SAI7BI,IAAK,WACH,MAAO,UAASJ,GACd,MAAOA,QAMThB,GACFqB,WAAY,WACV,GAAIC,IACFC,KAAU,oBACVC,MAAU,qBACVC,OAAU,sBAEZ,OAAO,UAAST,GACd,MAAOM,GAAQ78B,OAAOu8B,GAAgB57B,oBAMxC26B,GACF2B,UAAW,WACT,GAAIJ,IACFC,KAAQ,qBACRC,MAAQ,sBAEV,OAAO,UAASR,GACd,MAAOM,GAAQ78B,OAAOu8B,GAAgB57B,mBAI1Ci8B,WAAY,WACV,GAAIC,IACFC,KAAU,0BACVC,MAAU,2BACVC,OAAU,4BACVE,QAAU,6BAEZ,OAAO,UAASX,GACd,MAAOM,GAAQ78B,OAAOu8B,GAAgB57B,mBAI1Cw8B,SAAU,WACR,GAAIN,IACFC,KAAQ,qBACRC,MAAQ,sBACRK,KAAQ,qBACR7H,IAAQ,qBAEV,OAAO,UAASgH,GACd,MAAOM,GAAQ78B,OAAOu8B,GAAgB57B,mBAI1C08B,UAAW,WACT,GAAIR,IACFT,EAAK,6BACLkB,EAAK,0BACLjB,EAAK,2BACLkB,EAAK,0BACLC,EAAK,4BACLC,EAAK,6BACLC,EAAK,6BACLC,IAAK,4BACLC,IAAK,2BAEP,OAAO,UAASrB,GACd,MAAOM,GAAQ78B,OAAOu8B,GAAgB3H,OAAO,SAM/C+E,GACFkE,mBAAoB,WAClB,GAAIC,GAEAC,GAAmB,MAAO,QAAS,UAAW,KAAM,SAAU,WAC3C,QAAS,QAAS,SAAU,SAAU,QAAS,QAC/C,MAAO,QAAS,SAAU,SAAS,WAAY,SAEtE,OAAO,UAASp7B,GAId,GADAm7B,GAAOn7B,EAAGpH,WAAaoH,EAAGq7B,aAAa5iB,QAAQ,MAAO,IAClD0iB,GAAOA,EAAI9/B,OAAS,EACtB,OAAO,CAIT,KAAK,GAAID,GAAIggC,EAAgB//B,OAAQD,KACnC,GAAI4E,EAAG0lB,cAAc0V,EAAgBhgC,IACnC,OAAO,CAKX,OAAI4E,GAAG+vB,aAAe/vB,EAAG+vB,YAAc,GAAK/vB,EAAGs7B,cAAgBt7B,EAAGs7B,aAAe,GACxE,GAGF,MAKb,OAAOhH,MASTj7B,UAAUG,IAAI+hC,qBAAuB,SAASt5B,GAK5C,IAJA,GAAIssB,GACAluB,EAAoBhH,UAAUM,KAAKyvB,MAAMnnB,EAAK5B,YAAY1H,MAC1D20B,EAAoBjtB,EAAWhF,OAC/BD,EAAoB,EACfkyB,EAAFlyB,EAAoBA,IACzBmzB,EAAYluB,EAAWjF,GACnBmzB,EAAUjuB,WAAajH,UAAUY,WAAgC,KAAnBs0B,EAAUroB,MAC1DqoB,EAAUhsB,WAAWqO,YAAY2d,IA6BvCl1B,UAAUG,IAAIgiC,cAAgB,SAASrb,EAASsb,GAG9C,IAFA,GACI31B,GADA41B,EAAavb,EAAQ5b,cAActE,cAAcw7B,GAE9C31B,EAAaqa,EAAQra,YAC1B41B,EAAWx7B,YAAY4F,EAIzB,OAFAzM,WAAUG,IAAI21B,gBAAgB,QAAS,cAAcJ,KAAK5O,GAASmP,GAAGoM,GACtEvb,EAAQ5d,WAAW2sB,aAAawM,EAAYvb,GACrCub,GAeTriC,UAAUG,IAAImiC,sBAAwB,SAAS15B,GAC7C,GAAKA,EAAKM,WAAV,CAIA,IAAKN,EAAK6D,WAER,WADA7D,GAAKM,WAAWqO,YAAY3O,EAK9B,KADA,GAAIuE,GAAWvE,EAAKsC,cAAckC,yBAC3BxE,EAAK6D,YACVU,EAAStG,YAAY+B,EAAK6D,WAE5B7D,GAAKM,WAAW2sB,aAAa1oB,EAAUvE,GACvCA,EAAOuE,EAAW,OAwBpB,SAAUhN,GACR,QAASoiC,GAAgB35B,GACvB,MAA8C,UAAvCzI,EAAIs1B,SAAS,WAAWC,KAAK9sB,GAGtC,QAAS45B,GAAa55B,GACpB,MAAyB,OAAlBA,EAAKlE,SAGd,QAAS+9B,GAAiB3b,GACxB,GAAIqO,GAAYrO,EAAQ5b,cAActE,cAAc,KACpDkgB,GAAQjgB,YAAYsuB,GAGtB,QAASuN,GAAY7N,EAAM8N,GACzB,GAAK9N,EAAKnwB,SAAS0mB,MAAM,kBAAzB,CAIA,GAGI3e,GACAkN,EACAipB,EACAC,EACAC,EACAhO,EARAtyB,EAAkBqyB,EAAK3pB,cACvBiC,EAAkB3K,EAAI4K,yBACtBhE,EAAkByrB,EAAKkO,wBAA0BlO,EAAKzrB,eAQ1D,IAAIu5B,EAMF,KAJIv5B,GAAoBm5B,EAAgBn5B,IAAqBo5B,EAAap5B,IACxEq5B,EAAiBt1B,GAGZ2nB,EAAYD,EAAKmO,mBAAqBnO,EAAKpoB,YAAa,CAE7D,IADAkN,EAAYmb,EAASnb,UACdlN,EAAaqoB,EAASroB,YAC3Bm2B,EAAwBn2B,IAAekN,EAEvCkpB,EAAwBD,IAAgBL,EAAgB91B,KAAgB+1B,EAAa/1B,GACrFU,EAAStG,YAAY4F,GACjBo2B,GACFJ,EAAiBt1B,EAIrB2nB,GAAS5rB,WAAWqO,YAAYud,OAGlC,MAAOA,EAAYD,EAAKmO,mBAAqBnO,EAAKpoB,YAAa,CAC7D,GAAIqoB,EAASzI,eAAiByI,EAASzI,cAAc,4DACnD,KAAO5f,EAAaqoB,EAASroB,YAC3BU,EAAStG,YAAY4F,OAElB,CAEL,IADAq2B,EAAYtgC,EAAIoE,cAAc,KACvB6F,EAAaqoB,EAASroB,YAC3Bq2B,EAAUj8B,YAAY4F,EAExBU,GAAStG,YAAYi8B,GAEvBhO,EAAS5rB,WAAWqO,YAAYud,GAIpCD,EAAK3rB,WAAW2sB,aAAa1oB,EAAU0nB,IAGzC10B,EAAIuiC,YAAcA,GACjB1iC,UAAUG,KAuBb,SAAUH,GACR,GAGIwC,GAAsB6B,SAItB4+B,GACE,SAAU,MAAO,SAAU,eAAgB,SAC3C,eAAgB,gBAAiB,iBAAkB,aAKrDC,GACE,OAAQ,QAAS,aAAc,kBAC/B,QAAS,UAAW,SACpB,eAAgB,cAChB,iBAAkB,kBAKpBC,GACE,WACA,QAAS,OAAQ,QAGvBnjC,GAAUG,IAAIijC,QAAUzZ,KAAKnjB,QAG3BwO,YAAa,SAASquB,EAAe7/B,GACnC/D,KAAK6wB,SAAW+S,GAAiBrjC,EAAUU,eAC3CjB,KAAK+D,OAAWxD,EAAUM,KAAKuqB,WAAW2G,MAAMhuB,GAAQlE,MACxDG,KAAK6jC,aAAiB7jC,KAAK8jC,iBAG7BC,WAAY,SAAS1c,GACK,gBAAd,KACRA,EAAUtkB,EAAImlB,eAAeb,IAG/BA,EAAQjgB,YAAYpH,KAAK6jC,eAG3BG,UAAW,WACT,MAAOhkC,MAAK6jC,cAGdn4B,UAAW,WACT1L,KAAKikC,eAGPz4B,YAAa,WACXxL,KAAKikC,eAGPC,QAAS,WACP,GAAIC,GAASnkC,KAAKgkC,WAClBG,GAAO16B,WAAWqO,YAAYqsB,IAGhCF,YAAa,WACX,KAAM,IAAI37B,OAAM,uDAsBlBw7B,cAAe,WACb,GAAIM,GAASpkC,KACTmkC,EAASphC,EAAIoE,cAAc,SA6B/B,OA5BAg9B,GAAOtb,UAAY,oBACnBtoB,EAAUG,IAAI0+B,eACZiF,SAAsB,aACtBC,kBAAsB,OACtBC,YAAsB,EACtBtE,MAAsB,EACtBC,OAAsB,EACtBsE,YAAsB,EACtBC,aAAsB,IACrBpT,GAAG8S,GAGF5jC,EAAUirB,QAAQ4B,kDACpB+W,EAAOnE,IAAM,8BAGfmE,EAAOO,OAAS,WACdP,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,IAGrBA,EAAOQ,mBAAqB,WACtB,kBAAkBvyB,KAAK+xB,EAAO3D,cAChC2D,EAAOQ,mBAAqBR,EAAOO,OAAS,KAC5CN,EAAKQ,cAAcT,KAIhBA,GAMTS,cAAe,SAAST,GAEtB,GAAK5jC,EAAUG,IAAIib,SAAS5Y,EAAI0L,gBAAiB01B,GAAjD,CAIA,GAAIC,GAAiBpkC,KACjB6kC,EAAiBV,EAAOn4B,cACxB84B,EAAiBX,EAAOn4B,cAAcpH,SACtCmgC,EAAiBhiC,EAAIiiC,cAAgBjiC,EAAIgiC,SAAW,QACpDE,EAAiBjlC,KAAKklC,UACpBH,QAAcA,EACdI,YAAcnlC,KAAK+D,OAAOohC,aAkBhC,IAdAL,EAAeM,KAAK,YAAa,WACjCN,EAAeO,MAAMJ,GACrBH,EAAeQ,QAEftlC,KAAK0L,UAAY,WAAa,MAAOy4B,GAAOn4B,eAC5ChM,KAAKwL,YAAc,WAAa,MAAO24B,GAAOn4B,cAAcpH,UAK5DigC,EAAaU,QAAU,SAASjgC,EAAckgC,EAAUC,GACtD,KAAM,IAAIn9B,OAAM,sBAAwBhD,EAAckgC,EAAUC,KAG7DllC,EAAUirB,QAAQ2B,2BAA4B,CAOjD,GAAI7qB,GAAGC,CACP,KAAKD,EAAE,EAAGC,EAAOihC,EAAiBjhC,OAAUA,EAAFD,EAAUA,IAClDtC,KAAK0lC,OAAOb,EAAcrB,EAAiBlhC,GAE7C,KAAKA,EAAE,EAAGC,EAAOkhC,EAAkBlhC,OAAUA,EAAFD,EAAUA,IACnDtC,KAAK0lC,OAAOb,EAAcpB,EAAkBnhC,GAAI/B,EAAUU,eAE5D,KAAKqB,EAAE,EAAGC,EAAOmhC,EAAmBnhC,OAAUA,EAAFD,EAAUA,IACpDtC,KAAK0lC,OAAOZ,EAAgBpB,EAAmBphC,GAIjDtC,MAAK0lC,OAAOZ,EAAgB,SAAU,IAAI,GAG5C9kC,KAAK2lC,QAAS,EAGdC,WAAW,WAAaxB,EAAKvT,SAASuT,IAAU,KAGlDc,SAAU,SAASW,GACjB,GAGItjC,GAHA4iC,EAAcU,EAAaV,YAC3BvN,EAAc,GACdt1B,EAAc,CAGlB,IADA6iC,EAAsC,gBAAlB,IAA8BA,GAAeA,EAG/D,IADA5iC,EAAS4iC,EAAY5iC,OACZA,EAAFD,EAAUA,IACfs1B,GAAQ,gCAAkCuN,EAAY7iC,GAAK,IAK/D,OAFAujC,GAAaV,YAAcvN,EAEpBr3B,EAAUM,KAAK6xB,OACpB,mGAGAG,YAAYgT,IAShBH,OAAQ,SAASta,EAAQ0E,EAAUhF,EAAOgb,GACxC,IAAM1a,EAAO0E,GAAYhF,EAAS,MAAMpjB,IAExC,IAAM0jB,EAAO2a,iBAAiBjW,EAAU,WAAa,MAAOhF,KAAa,MAAMpjB,IAC/E,GAAIo+B,EACF,IAAM1a,EAAO4a,iBAAiBlW,EAAU,cAAkB,MAAMpoB,IAGlE,IAAKnH,EAAUirB,QAAQqE,0BAA0BC,GAC/C,IACE,GAAI/rB,IACFlE,IAAK,WAAa,MAAOirB,IAEvBgb,KACF/hC,EAAO9D,IAAM,cAEfT,OAAOC,eAAe2rB,EAAQ0E,EAAU/rB,GACxC,MAAM2D,SAIbnH,WACF,SAAUA,GACT,GAAIwC,GAAM6B,QACVrE,GAAUG,IAAIulC,oBAAsB/b,KAAKnjB,QACrCm/B,mBAAoB,WAClB,MAAOlmC,MAAKqnB,SAGd3b,UAAW,WACT,MAAO1L,MAAKqnB,QAAQ5b,cAAcE,aAGpCH,YAAa,WACX,MAAOxL,MAAKqnB,QAAQ5b,eAGtB8J,YAAa,SAASquB,EAAe7/B,EAAQyhB,GAC3CxlB,KAAK6wB,SAAW+S,GAAiBrjC,EAAUU,eAC3CjB,KAAK+D,OAAWxD,EAAUM,KAAKuqB,WAAW2G,MAAMhuB,GAAQlE,MAEpDG,KAAKqnB,QADL7B,EACexlB,KAAKmmC,aAAa3gB,GAElBxlB,KAAKomC,kBAK1BA,eAAgB,WACd,GAAI/e,GAAUtkB,EAAIoE,cAAc,MAGhC,OAFAkgB,GAAQwB,UAAY,oBACpB7oB,KAAKqmC,aAAahf,GACXA,GAIT8e,aAAc,SAAS3gB,GAGrB,MAFAA,GAAgBqD,UAAarD,EAAgBqD,WAA0C,IAA7BrD,EAAgBqD,UAAmBrD,EAAgBqD,UAAY,qBAAuB,oBAChJ7oB,KAAKqmC,aAAa7gB,GAAiB,GAC5BA,GAGT6gB,aAAc,SAAShf,EAASif,GAC5B,GAAIlC,GAAOpkC,IACb,KAAKsmC,EAAe,CAChB,GAAIrB,GAAcjlC,KAAKklC,UACvB7d,GAAQ9Z,UAAY03B,EAGxBjlC,KAAK0L,UAAY,WAAa,MAAO2b,GAAQ5b,cAAcE,aAC3D3L,KAAKwL,YAAc,WAAa,MAAO6b,GAAQ5b,eAU/CzL,KAAK2lC,QAAS,EAEdC,WAAW,WAAaxB,EAAKvT,SAASuT,IAAU,IAGlDc,SAAU,WACR,MAAO,OAIZ3kC,WACF,WACC,GAAI6gC,IACFvY,UAAa,QAEftoB,WAAUG,IAAI0+B,cAAgB,SAAS7C,GACrC,OACElL,GAAI,SAAShK,GACX,IAAK,GAAI/kB,KAAKi6B,GACZlV,EAAQwG,aAAauT,EAAQ9+B,IAAMA,EAAGi6B,EAAWj6B,UAM1D/B,UAAUG,IAAI22B,UAAY,SAASqB,GAClC,OACErH,GAAI,SAAShK,GACX,GAAIqB,GAAQrB,EAAQqB,KACpB,IAAuB,gBAAb,GAER,YADAA,EAAM0O,SAAW,IAAMsB,EAGzB,KAAK,GAAIp2B,KAAKo2B,GACF,UAANp2B,GACFomB,EAAMgW,SAAWhG,EAAOp2B,GACxBomB,EAAM+V,WAAa/F,EAAOp2B,IAE1BomB,EAAMpmB,GAAKo2B,EAAOp2B,MAoB5B,SAAU5B,GACRA,EAAI6lC,oBAAsB,SAASC,EAAQC,EAAMC,GAC/C,GAAIC,GAAa,cACbC,EAAQ,WACFH,EAAKI,qBACPJ,EAAKK,QAEPL,EAAKM,gBAAiB,EACtBrmC,EAAIq0B,YAAY0R,EAAKpf,QAASsf,IAEhC1mC,EAAM,WACAwmC,EAAKO,YACPP,EAAKM,gBAAiB,EACtBN,EAAKQ,SAASP,GACdhmC,EAAIk0B,SAAS6R,EAAKpf,QAASsf,IAInCH,GACGnV,GAAG,kBAAmBpxB,GACtBoxB,GAAG,oBAAqBuV,GACxBvV,GAAG,iBAAkBuV,GACrBvV,GAAG,iBAAkBuV,GACrBvV,GAAG,gBAAiBpxB,GAEvBA,MAEDM,UAAUG,KACZ,SAAUA,GACT,GAAI+N,GAAkB7J,SAAS6J,eAC3B,gBAAiBA,IACnB/N,EAAIwmC,eAAiB,SAAS7f,EAAS3H,GACrC2H,EAAQkb,YAAc7iB,GAGxBhf,EAAIymC,eAAiB,SAAS9f,GAC5B,MAAOA,GAAQkb,cAER,aAAe9zB,IACxB/N,EAAIwmC,eAAiB,SAAS7f,EAAS3H,GACrC2H,EAAQvnB,UAAY4f,GAGtBhf,EAAIymC,eAAiB,SAAS9f,GAC5B,MAAOA,GAAQvnB,aAGjBY,EAAIwmC,eAAiB,SAAS7f,EAAS3H,GACrC2H,EAAQiN,UAAY5U,GAGtBhf,EAAIymC,eAAiB,SAAS9f,GAC5B,MAAOA,GAAQiN,aAGlB/zB,UAAUG,KAYbH,UAAUG,IAAIuuB,aAAe,SAAS9lB,EAAM01B,GAC1C,GAAIuB,IAAyB7/B,UAAUirB,QAAQuD,+BAC/C8P,GAAgBA,EAAc35B,aAC9B,IAAID,GAAWkE,EAAKlE,QACpB,IAAgB,OAAZA,GAAsC,OAAjB45B,GAA0BsB,eAAeh3B,MAAU,EAK1E,MAAOA,GAAK62B,GACP,IAAII,GAAyB,aAAej3B,GAAM,CAEvD,GAAI2zB,GAAiB3zB,EAAK2zB,UAAU53B,cAEhCm7B,EAAkE,IAAjDvD,EAAU9Q,QAAQ,IAAM6S,EAAiB,IAE9D,OAAOwB,GAAel3B,EAAK8lB,aAAa4P,GAAiB,KAEzD,MAAO11B,GAAK8lB,aAAa4P,IAG5B,SAAUt+B,GA2BP,QAAS6mC,GAAYhS,EAAMiS,GAGvB,IAAK,GADDC,GADAC,KAEK7/B,EAAI,EAAGhC,EAAM0vB,EAAK7yB,OAAYmD,EAAJgC,EAASA,IAExC,GADA4/B,EAAIlS,EAAK1tB,GAAGmlB,iBAAiBwa,GAEzB,IAAI,GAAI/kC,GAAIglC,EAAE/kC,OAAQD,IAAKilC,EAAIC,QAAQF,EAAEhlC,KAGjD,MAAOilC,GAGX,QAASE,GAAcvgC,GACnBA,EAAGuC,WAAWqO,YAAY5Q,GAG9B,QAASyD,GAAY+8B,EAAev8B,GAChCu8B,EAAcj+B,WAAWsB,aAAaI,EAASu8B,EAAc58B,aAGjE,QAASD,GAAS1B,EAAMw+B,GAEpB,IADA,GAAItgB,GAAUle,EAAK2B,YACO,GAAnBuc,EAAQ7f,UAEX,GADA6f,EAAUA,EAAQvc,aACb68B,GAAOA,GAAOtgB,EAAQhb,QAAQnH,cAC/B,MAAOmiB,EAGf,OAAO,MArDX,GAAIzjB,GAAMrD,EAAUG,IAEhBknC,EAAU,SAASC,GACrB7nC,KAAKkH,GAAK2gC,EACV7nC,KAAK8nC,WAAW,EAChB9nC,KAAK+nC,WAAW,EAChB/nC,KAAKgoC,UAAU,EACfhoC,KAAKioC,SAAS,EACdjoC,KAAKkoC,UAAU,EACfloC,KAAKmoC,SAAS,EACdnoC,KAAKooC,QAAQ,EACbpoC,KAAKqoC,kBACLroC,KAAKsoC,UAAW,GAGdC,EAAsB,SAAUV,EAAMW,GAClCX,GACA7nC,KAAK6nC,KAAOA,EACZ7nC,KAAKwoC,MAAQ5kC,EAAIo0B,iBAAiB6P,GAAQ5iC,UAAW,YAC9CujC,IACPxoC,KAAKwoC,MAAQA,EACbxoC,KAAK6nC,KAAO7nC,KAAKwoC,MAAM3b,iBAAiB,UAAU,IAmC1D0b,GAAoB3oC,WAEhB6oC,oBAAqB,SAASZ,EAAMjX,EAAK8X,EAAGvV,EAAGwV,EAAOC,GAKlD,IAAK,GAJDC,MACAC,EAAOJ,GAAK,EAAU1R,SAAS4R,EAAO,IAAM,EAAI,GAChDG,EAAO5V,GAAK,EAAU6D,SAAS2R,EAAO,IAAM,EAAI,GAE3CK,EAAKN,EAASI,GAANE,EAAYA,IAAM,CACT,mBAAXpY,GAAIoY,KAAsBpY,EAAIoY,MACzC,KAAK,GAAIC,GAAK9V,EAAS4V,GAANE,EAAYA,IACzBrY,EAAIoY,GAAIC,GAAM,GAAIrB,GAAQC,GAC1BjX,EAAIoY,GAAIC,GAAInB,UAAaa,GAAS3R,SAAS2R,EAAO,IAAM,EACxD/X,EAAIoY,GAAIC,GAAIlB,UAAaa,GAAS5R,SAAS4R,EAAO,IAAM,EACxDhY,EAAIoY,GAAIC,GAAIjB,SAAWiB,GAAM9V,EAC7BvC,EAAIoY,GAAIC,GAAIhB,QAAUgB,GAAMF,EAC5BnY,EAAIoY,GAAIC,GAAIf,SAAWc,GAAMN,EAC7B9X,EAAIoY,GAAIC,GAAId,QAAUa,GAAMF,EAC5BlY,EAAIoY,GAAIC,GAAIb,OAASa,GAAM9V,GAAK6V,GAAMN,EACtC9X,EAAIoY,GAAIC,GAAIZ,eAAiBQ,EAE7BA,EAAY3gC,KAAK0oB,EAAIoY,GAAIC,MAKrCC,kBAAmB,SAASrB,GAExB,GADAA,EAAKS,UAAW,EACZT,EAAKQ,eAAe9lC,OAAS,EAC/B,IAAK,GAAIrC,GAAI,EAAGipC,EAAOtB,EAAKQ,eAAe9lC,OAAY4mC,EAAJjpC,EAAUA,IAC3D2nC,EAAKQ,eAAenoC,GAAGooC,UAAW,GAK1Cc,YAAa,WACT,GAEIC,GAAMC,EAAKC,EAAOC,EAAM3B,EACxB1U,EACAwV,EAAOC,EAJPhY,KACA6Y,EAAYzpC,KAAK0pC,cAKrB,KAAKL,EAAO,EAAGA,EAAOI,EAAUlnC,OAAQ8mC,IAKpC,IAJAC,EAAMG,EAAUJ,GAChBE,EAAQvpC,KAAK2pC,YAAYL,GACzBnW,EAAI,EACoB,mBAAbvC,GAAIyY,KAAwBzY,EAAIyY,OACtCG,EAAO,EAAGA,EAAOD,EAAMhnC,OAAQinC,IAAQ,CAKxC,IAJA3B,EAAO0B,EAAMC,GAIiB,mBAAhB5Y,GAAIyY,GAAMlW,IAAqBA,GAE7CwV,GAAQ/kC,EAAIqrB,aAAa4Y,EAAM,WAC/Be,EAAQhlC,EAAIqrB,aAAa4Y,EAAM,WAE3Bc,GAASC,GACT5oC,KAAKyoC,oBAAoBZ,EAAMjX,EAAKyY,EAAMlW,EAAGwV,EAAOC,GACpDzV,GAAS,EAAU6D,SAAS2R,EAAO,IAAM,IAEzC/X,EAAIyY,GAAMlW,GAAK,GAAIyU,GAAQC,GAC3B1U,KAKZ,MADAnzB,MAAK4wB,IAAMA,EACJA,GAGX+Y,YAAa,SAASL,GAClB,GAAIM,GAAe5pC,KAAKwoC,MAAM3b,iBAAiB,SAC3Cgd,EAAc,EAAiBzC,EAAYwC,EAAc,aACzDE,EAAWR,EAAIzc,iBAAiB,UAChCkd,EAAcF,EAAYtnC,OAAS,EAAKhC,EAAUM,KAAKyvB,MAAMwZ,GAAUtZ,QAAQqZ,GAAeC,CAElG,OAAOC,IAGXL,aAAc,WACZ,GAAIE,GAAe5pC,KAAKwoC,MAAM3b,iBAAiB,SAC3Cmd,EAAa,EAAiB5C,EAAYwC,EAAc,SACxDK,EAAUjqC,KAAKwoC,MAAM3b,iBAAiB,MACtC4c,EAAaO,EAAWznC,OAAS,EAAKhC,EAAUM,KAAKyvB,MAAM2Z,GAASzZ,QAAQwZ,GAAcC,CAE9F,OAAOR,IAGTS,YAAa,SAASrC,GAIpB,IAAK,GAHDsC,GAAWnqC,KAAK4wB,IAAIruB,OACpB6nC,EAAYpqC,KAAK4wB,KAAO5wB,KAAK4wB,IAAI,GAAM5wB,KAAK4wB,IAAI,GAAGruB,OAAS,EAEvD8nC,EAAQ,EAAUF,EAARE,EAAkBA,IACjC,IAAK,GAAIC,GAAQ,EAAUF,EAARE,EAAkBA,IACjC,GAAItqC,KAAK4wB,IAAIyZ,GAAOC,GAAOpjC,KAAO2gC,EAC9B,OAAQyB,IAAOe,EAAOE,IAAOD,EAIzC,QAAO,GAGTE,kBAAmB,SAASrZ,GAExB,MADAnxB,MAAKopC,cACDppC,KAAK4wB,IAAIO,EAAImY,MAAQtpC,KAAK4wB,IAAIO,EAAImY,KAAKnY,EAAIoZ,MAAQvqC,KAAK4wB,IAAIO,EAAImY,KAAKnY,EAAIoZ,KAAKrjC,GACvElH,KAAK4wB,IAAIO,EAAImY,KAAKnY,EAAIoZ,KAAKrjC,GAE/B,MAGXujC,YAAa,SAASC,GAClB,GAAIC,KAMJ,IALA3qC,KAAKopC,cACLppC,KAAK4qC,UAAY5qC,KAAKkqC,YAAYlqC,KAAK6nC,MACvC7nC,KAAK6qC,QAAU7qC,KAAKkqC,YAAYQ,GAG5B1qC,KAAK4qC,UAAUtB,IAAMtpC,KAAK6qC,QAAQvB,KAAQtpC,KAAK4qC,UAAUtB,KAAOtpC,KAAK6qC,QAAQvB,KAAOtpC,KAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAAM,CAC5H,GAAIO,GAAW9qC,KAAK4qC,SACpB5qC,MAAK4qC,UAAY5qC,KAAK6qC,QACtB7qC,KAAK6qC,QAAUC,EAEnB,GAAI9qC,KAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAAK,CACvC,GAAIQ,GAAY/qC,KAAK4qC,UAAUL,GAC/BvqC,MAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAClCvqC,KAAK6qC,QAAQN,IAAMQ,EAGvB,GAAsB,MAAlB/qC,KAAK4qC,WAAqC,MAAhB5qC,KAAK6qC,QAC/B,IAAK,GAAIvB,GAAMtpC,KAAK4qC,UAAUtB,IAAK0B,EAAOhrC,KAAK6qC,QAAQvB,IAAY0B,GAAP1B,EAAaA,IACrE,IAAK,GAAIiB,GAAMvqC,KAAK4qC,UAAUL,IAAKU,EAAOjrC,KAAK6qC,QAAQN,IAAYU,GAAPV,EAAaA,IACrEI,EAAIziC,KAAKlI,KAAK4wB,IAAI0Y,GAAKiB,GAAKrjC,GAIxC,OAAOyjC,IAGXO,mBAAoB,SAASC,GAMzB,GALAnrC,KAAKopC,cACLppC,KAAK4qC,UAAY5qC,KAAKkqC,YAAYlqC,KAAK6nC,MACvC7nC,KAAK6qC,QAAU7qC,KAAKkqC,YAAYiB,GAG5BnrC,KAAK4qC,UAAUtB,IAAMtpC,KAAK6qC,QAAQvB,KAAQtpC,KAAK4qC,UAAUtB,KAAOtpC,KAAK6qC,QAAQvB,KAAOtpC,KAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAAM,CAC5H,GAAIO,GAAW9qC,KAAK4qC,SACpB5qC,MAAK4qC,UAAY5qC,KAAK6qC,QACtB7qC,KAAK6qC,QAAUC,EAEnB,GAAI9qC,KAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAAK,CACvC,GAAIQ,GAAY/qC,KAAK4qC,UAAUL,GAC/BvqC,MAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAClCvqC,KAAK6qC,QAAQN,IAAMQ,EAGvB,OACI7zB,MAASlX,KAAK4wB,IAAI5wB,KAAK4qC,UAAUtB,KAAKtpC,KAAK4qC,UAAUL,KAAKrjC,GAC1DiQ,IAAOnX,KAAK4wB,IAAI5wB,KAAK6qC,QAAQvB,KAAKtpC,KAAK6qC,QAAQN,KAAKrjC,KAI5DkkC,YAAa,SAASzD,EAAK0D,EAAI/M,GAI3B,IAAK,GADDuJ,GAFA9kC,EAAM/C,KAAKwoC,MAAM/8B,cACjBoF,EAAO9N,EAAI4K,yBAENrL,EAAI,EAAO+oC,EAAJ/oC,EAAQA,IAAK,CAGzB,GAFAulC,EAAO9kC,EAAIoE,cAAcwgC,GAErBrJ,EACA,IAAK,GAAIV,KAAQU,GACTA,EAAMx3B,eAAe82B,IACrBiK,EAAKha,aAAa+P,EAAMU,EAAMV,GAM1CiK,GAAKzgC,YAAYxC,SAASwJ,eAAe,MAEzCyC,EAAKzJ,YAAYygC,GAErB,MAAOh3B,IAIXy6B,0BAA2B,SAASf,EAAKjB,GAGrC,IAAK,GAFDZ,GAAI1oC,KAAK4wB,IAAI0Y,GACbiC,EAAU,GACLjpC,EAAI,EAAkBioC,EAAJjoC,EAASA,IAC5BomC,EAAEpmC,GAAG8lC,QACLmD,GAGR,OAAOA,IAGXC,oBAAqB,SAASlC,EAAKmC,GAI/B,IAAK,GAFD5D,GAAM1W,EADNoY,EAAQvpC,KAAK2pC,YAAYL,GAGpBE,EAAO,EAAGT,EAAOQ,EAAMhnC,OAAewmC,EAAPS,EAAaA,IAGjD,GAFA3B,EAAO0B,EAAMC,GACbrY,EAAMnxB,KAAKkqC,YAAYrC,GACnB1W,KAAQ,GAA6B,mBAAZsa,IAA2Bta,EAAImY,KAAOmC,EAC/D,MAAO5D,EAGf,OAAO,OAGX6D,iBAAkB,WACd,GAAInC,GAAQvpC,KAAKwoC,MAAM3b,iBAAiB,SACxC,OAAK0c,IAAyB,GAAhBA,EAAMhnC,QAIT,GAHPklC,EAAcznC,KAAKwoC,QACZ,IAOfmD,gBAAiB,SAAS9D,GACtB,GAAIA,EAAKC,UAAW,CAChB,GAAI8D,GAAU5U,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,YAAc,EAAG,IAC9D2kC,EAAQhE,EAAK3gC,GAAGmF,QAAQnH,aAC5B,IAAI0mC,EAAU,EAAG,CACb,GAAIE,GAAW9rC,KAAKorC,YAAYS,EAAOD,EAAS,EAChDjhC,GAAYk9B,EAAK3gC,GAAI4kC,GAEzBjE,EAAK3gC,GAAG6kC,gBAAgB,aAIhCC,aAAc,SAASC,EAAO9a,GAC1B,GAAIuX,GAAI,KACJvV,EAAI,IAERhC,GAAMA,GAAOnxB,KAAKmxB,GAElB,KAAK,GAAIqY,GAAO,EAAGT,EAAO/oC,KAAK4wB,IAAIO,EAAImY,KAAK/mC,OAAewmC,EAAPS,EAAaA,IAE7D,GADArW,EAAInzB,KAAK4wB,IAAIO,EAAImY,KAAKE,GAClBrW,EAAEiV,SACFM,EAAI9kC,EAAIo0B,iBAAiB7E,EAAEjsB,IAAMjC,UAAW,SAExC,MAAOyjC,EASnB,OAJU,QAANA,GAAcuD,IACdvD,EAAI9kC,EAAIo0B,iBAAiBh4B,KAAK4wB,IAAIO,EAAImY,KAAKnY,EAAIoZ,KAAKrjC,IAAMjC,UAAW,SAAY,MAG9EyjC,GAGXwD,YAAa,SAAS5C,EAAKiB,EAAKqB,EAASC,EAAO1Y,GAC5C,GAAIuV,GAAI1oC,KAAKgsC,cAAa,GAAQ1C,IAAOA,EAAKiB,IAAOA,IACjD4B,EAAYnsC,KAAKorC,YAAYS,EAAOD,EAExC,IAAIlD,EAAG,CACH,GAAI0D,GAASpsC,KAAKsrC,0BAA0Bf,EAAKjB,EAC7C8C,IAAU,EACVzhC,EAAY3K,KAAK2pC,YAAYjB,GAAG0D,GAASD,GAEzCzD,EAAE39B,aAAaohC,EAAWzD,EAAE17B,gBAE7B,CACH,GAAIg8B,GAAKhpC,KAAKwoC,MAAM/8B,cAActE,cAAc,KAChD6hC,GAAG5hC,YAAY+kC,GACfxhC,EAAY/G,EAAIo0B,iBAAiB7E,EAAEjsB,IAAMjC,UAAW,QAAU+jC,KAItEqD,SAAU,SAAS7V,GAOf,GANAx2B,KAAKw2B,GAAKA,EACVx2B,KAAKopC,cACLppC,KAAK4qC,UAAY5qC,KAAKkqC,YAAYlqC,KAAK6nC,MACvC7nC,KAAK6qC,QAAU7qC,KAAKkqC,YAAYlqC,KAAKw2B,IAGjCx2B,KAAK4qC,UAAUtB,IAAMtpC,KAAK6qC,QAAQvB,KAAQtpC,KAAK4qC,UAAUtB,KAAOtpC,KAAK6qC,QAAQvB,KAAOtpC,KAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAAM,CAC5H,GAAIO,GAAW9qC,KAAK4qC,SACpB5qC,MAAK4qC,UAAY5qC,KAAK6qC,QACtB7qC,KAAK6qC,QAAUC,EAEnB,GAAI9qC,KAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAAK,CACvC,GAAIQ,GAAY/qC,KAAK4qC,UAAUL,GAC/BvqC,MAAK4qC,UAAUL,IAAMvqC,KAAK6qC,QAAQN,IAClCvqC,KAAK6qC,QAAQN,IAAMQ,EAGvB,IAAK,GAAIzB,GAAMtpC,KAAK4qC,UAAUtB,IAAK0B,EAAOhrC,KAAK6qC,QAAQvB,IAAY0B,GAAP1B,EAAaA,IACrE,IAAK,GAAIiB,GAAMvqC,KAAK4qC,UAAUL,IAAKU,EAAOjrC,KAAK6qC,QAAQN,IAAYU,GAAPV,EAAaA,IACrE,GAAIvqC,KAAK4wB,IAAI0Y,GAAKiB,GAAKzC,WAAa9nC,KAAK4wB,IAAI0Y,GAAKiB,GAAKxC,UACnD,OAAO,CAInB,QAAO,GAGXuE,iBAAkB,SAASzE,EAAM0E,GAC7B,GAAIlB,GAAKrU,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAIqlC,GAAO,IAAM,CACrDlB,IAAM,EACNxD,EAAK3gC,GAAG2mB,aAAa0e,EAAMlB,IAE3BxD,EAAK3gC,GAAG6kC,gBAAgBQ,GACZ,WAARA,IACA1E,EAAKC,WAAY,GAET,WAARyE,IACA1E,EAAKE,WAAY,GAErBF,EAAKG,UAAW,EAChBH,EAAKI,SAAU,EACfJ,EAAKK,UAAW,EAChBL,EAAKM,SAAU,EACfN,EAAKO,QAAS,IAItBoE,mBAAoB,WAChB,GAAIlD,GAAKzB,EAAMwB,EAAMP,EAAMU,EAAMT,EAAM0D,CAGvC,IADAzsC,KAAKopC,cACDppC,KAAK4wB,IAAK,CAGV,IAFAyY,EAAO,EACPP,EAAO9oC,KAAK4wB,IAAIruB,OACHumC,EAAPO,EAAaA,IAAQ,CAKvB,IAJAC,EAAMtpC,KAAK4wB,IAAIyY,GACfoD,GAAa,EACbjD,EAAO,EACPT,EAAOO,EAAI/mC,OACGwmC,EAAPS,EAAaA,IAEhB,GADA3B,EAAOyB,EAAIE,KACL5lC,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,YAAc8vB,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,GAAK2gC,EAAKK,YAAa,GAAO,CAC7HuE,GAAa,CACb,OAGR,GAAIA,EAEA,IADAjD,EAAO,EACOT,EAAPS,EAAaA,IAChBxpC,KAAKssC,iBAAiBhD,EAAIE,GAAO,WAM7C,GAAIC,GAAYzpC,KAAK0pC,cAGrB,KAFAL,EAAO,EACPP,EAAOW,EAAUlnC,OACJumC,EAAPO,EAAaA,IACfC,EAAMG,EAAUJ,GACa,GAAzBC,EAAI/hC,WAAWhF,QAAgB,QAAQ6P,KAAKk3B,EAAI/G,aAAe+G,EAAIxpC,YACnE2nC,EAAc6B,KAM9BoD,iBAAkB,WACd,GAAIC,GAAQ,EACRC,EAAQ,EACRC,EAAW,IAGf,IADA7sC,KAAKopC,cACDppC,KAAK4wB,IAAK,CAGV+b,EAAQ3sC,KAAK4wB,IAAIruB,MACjB,KAAK,GAAI8mC,GAAO,EAAUsD,EAAPtD,EAAcA,IACzBrpC,KAAK4wB,IAAIyY,GAAM9mC,OAASqqC,IAASA,EAAQ5sC,KAAK4wB,IAAIyY,GAAM9mC,OAGhE,KAAK,GAAI+mC,GAAM,EAASqD,EAANrD,EAAaA,IAC3B,IAAK,GAAIiB,GAAM,EAASqC,EAANrC,EAAaA,IACvBvqC,KAAK4wB,IAAI0Y,KAAStpC,KAAK4wB,IAAI0Y,GAAKiB,IAC5BA,EAAM,IACNvqC,KAAK4wB,IAAI0Y,GAAKiB,GAAO,GAAI3C,GAAQ5nC,KAAKorC,YAAY,KAAM,IACxDyB,EAAW7sC,KAAK4wB,IAAI0Y,GAAKiB,EAAI,GACzBsC,GAAYA,EAAS3lC,IAAM2lC,EAAS3lC,GAAGsC,QACvCmB,EAAY3K,KAAK4wB,IAAI0Y,GAAKiB,EAAI,GAAGrjC,GAAIlH,KAAK4wB,IAAI0Y,GAAKiB,GAAKrjC,OASpF4lC,QAAS,WACL,MAAK9sC,MAAK0rC,oBAKC,GAJP1rC,KAAKwsC,qBACLxsC,KAAK0sC,oBACE,IAMfK,QAAS,WACL,GAAI/sC,KAAK8sC,YACL9sC,KAAKopC,cACLppC,KAAKmxB,IAAMnxB,KAAKkqC,YAAYlqC,KAAK6nC,MAE7B7nC,KAAKmxB,KAAK,CACV,GAAI6b,GAAWhtC,KAAK4wB,IAAI5wB,KAAKmxB,IAAImY,KAAKtpC,KAAKmxB,IAAIoZ,KAC3CqB,EAAWhoC,EAAIqrB,aAAa+d,EAAS9lC,GAAI,WAAc8vB,SAASpzB,EAAIqrB,aAAa+d,EAAS9lC,GAAI,WAAY,IAAM,EAChH2kC,EAAQmB,EAAS9lC,GAAGmF,QAAQnH,aAEhC,IAAI8nC,EAASjF,UAAW,CACpB,GAAIkF,GAAUjW,SAASpzB,EAAIqrB,aAAa+d,EAAS9lC,GAAI,WAAY,GACjE,IAAI+lC,EAAU,EACV,IAAK,GAAI5B,GAAK,EAAGL,EAAOiC,EAAU,EAASjC,GAANK,EAAYA,IAC7CrrC,KAAKksC,YAAYlsC,KAAKmxB,IAAImY,IAAM+B,EAAIrrC,KAAKmxB,IAAIoZ,IAAKqB,EAASC,EAAOmB,EAG1EA,GAAS9lC,GAAG6kC,gBAAgB,WAEhC/rC,KAAK2rC,gBAAgBqB,KAMjCjb,MAAO,SAASyE,GACZ,GAAIx2B,KAAK8sC,UACL,GAAI9sC,KAAKqsC,SAAS7V,GAAK,CAInB,IAAK,GAHDyW,GAAUjtC,KAAK6qC,QAAQvB,IAAMtpC,KAAK4qC,UAAUtB,IAAM,EAClDsC,EAAU5rC,KAAK6qC,QAAQN,IAAMvqC,KAAK4qC,UAAUL,IAAM,EAE7CjB,EAAMtpC,KAAK4qC,UAAUtB,IAAK0B,EAAOhrC,KAAK6qC,QAAQvB,IAAY0B,GAAP1B,EAAaA,IACrE,IAAK,GAAIiB,GAAMvqC,KAAK4qC,UAAUL,IAAKU,EAAOjrC,KAAK6qC,QAAQN,IAAYU,GAAPV,EAAaA,IAEjEjB,GAAOtpC,KAAK4qC,UAAUtB,KAAOiB,GAAOvqC,KAAK4qC,UAAUL,KAC/C0C,EAAU,GACVjtC,KAAK4wB,IAAI0Y,GAAKiB,GAAKrjC,GAAG2mB,aAAa,UAAWof,GAE9CrB,EAAU,GACV5rC,KAAK4wB,IAAI0Y,GAAKiB,GAAKrjC,GAAG2mB,aAAa,UAAW+d,KAI5C,kBAAkBx5B,KAAKpS,KAAK4wB,IAAI0Y,GAAKiB,GAAKrjC,GAAGqG,UAAUrI,iBACzDlF,KAAK4wB,IAAI5wB,KAAK4qC,UAAUtB,KAAKtpC,KAAK4qC,UAAUL,KAAKrjC,GAAGqG,WAAa,IAAMvN,KAAK4wB,IAAI0Y,GAAKiB,GAAKrjC,GAAGqG,WAEjGk6B,EAAcznC,KAAK4wB,IAAI0Y,GAAKiB,GAAKrjC,IAI7ClH,MAAK8sC,cAED1pC,QAAOC,SACPA,QAAQC,IAAI,oDAQ5B4pC,sBAAuB,SAASrF,GAC5B,GAAIsF,GAAUntC,KAAKkqC,YAAYrC,EAAK3gC,IAChCkmC,EAAYD,EAAQ7D,IAAM,EAC1B+D,GAAU/D,IAAO8D,EAAW7C,IAAO4C,EAAQ5C,IAE/C,IAAI6C,EAAYptC,KAAK4wB,IAAIruB,OAAQ,CAE7B,GAAI+mC,GAAMtpC,KAAKgsC,cAAa,EAAOqB,EACnC,IAAY,OAAR/D,EAAc,CACd,GAAI8C,GAASpsC,KAAKsrC,0BAA0B+B,EAAO9C,IAAK8C,EAAO/D,IAC/D,IAAI8C,GAAU,EACVzhC,EAAY3K,KAAK2pC,YAAYL,GAAK8C,GAASvE,EAAK3gC,QAC7C,CACH,GAAIomC,GAAWttC,KAAKwrC,oBAAoBlC,EAAK8D,EAC5B,QAAbE,EACA3iC,EAAY2iC,EAAUzF,EAAK3gC,IAE3BoiC,EAAIv+B,aAAa88B,EAAK3gC,GAAIoiC,EAAIt8B,YAGlCgqB,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,EACrD2gC,EAAK3gC,GAAG2mB,aAAa,UAAWmJ,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,GAErF2gC,EAAK3gC,GAAG6kC,gBAAgB,cASxCwB,cAAe,SAAS1F,GAChBA,EAAKO,OACFP,EAAKE,UACL/nC,KAAKktC,sBAAsBrF,GAE3BJ,EAAcI,EAAK3gC,IAGlB8vB,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,EACrD2gC,EAAK3gC,GAAG2mB,aAAa,UAAWmJ,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,GAErF2gC,EAAK3gC,GAAG6kC,gBAAgB,YAKpCyB,qBAAsB,WAClB,GAAIjE,KAGJ,IAFAvpC,KAAKopC,cACLppC,KAAKmxB,IAAMnxB,KAAKkqC,YAAYlqC,KAAK6nC,MAC7B7nC,KAAKmxB,OAAQ,EAEb,IAAK,GADDsc,GAASztC,KAAK4wB,IAAI5wB,KAAKmxB,IAAImY,KACtBE,EAAO,EAAGT,EAAO0E,EAAOlrC,OAAewmC,EAAPS,EAAaA,IAC9CiE,EAAOjE,GAAMpB,QACbmB,EAAMrhC,KAAKulC,EAAOjE,GAAMtiC,GAIpC,OAAOqiC,IAGXmE,wBAAyB,WACrB,GAAInE,KAGJ,IAFAvpC,KAAKopC,cACLppC,KAAKmxB,IAAMnxB,KAAKkqC,YAAYlqC,KAAK6nC,MAC7B7nC,KAAKmxB,OAAQ,EACb,IAAK,GAAIkY,GAAO,EAAGP,EAAO9oC,KAAK4wB,IAAIruB,OAAeumC,EAAPO,EAAaA,IAChDrpC,KAAK4wB,IAAIyY,GAAMrpC,KAAKmxB,IAAIoZ,MAAQvqC,KAAK4wB,IAAIyY,GAAMrpC,KAAKmxB,IAAIoZ,KAAKnC,QAC7DmB,EAAMrhC,KAAKlI,KAAK4wB,IAAIyY,GAAMrpC,KAAKmxB,IAAIoZ,KAAKrjC,GAIpD,OAAOqiC,IAIXoE,UAAW,WACP,GAAIC,GAAShqC,EAAIo0B,iBAAiBh4B,KAAK6nC,MAAQ5iC,UAAW,OAC1D,IAAI2oC,EAAQ,CAGR,GAFA5tC,KAAKopC,cACLppC,KAAKmxB,IAAMnxB,KAAKkqC,YAAYlqC,KAAK6nC,MAC7B7nC,KAAKmxB,OAAQ,EAEb,IAAK,GADDsc,GAASztC,KAAK4wB,IAAI5wB,KAAKmxB,IAAImY,KACtBE,EAAO,EAAGT,EAAO0E,EAAOlrC,OAAewmC,EAAPS,EAAaA,IAC7CiE,EAAOjE,GAAMlB,WACdtoC,KAAKkpC,kBAAkBuE,EAAOjE,IAC9BxpC,KAAKutC,cAAcE,EAAOjE,IAItC/B,GAAcmG,KAItBC,cAAe,SAAShG,GAChBA,EAAKC,UACD9Q,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,EACrD2gC,EAAK3gC,GAAG2mB,aAAa,UAAWmJ,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,GAErF2gC,EAAK3gC,GAAG6kC,gBAAgB,WAErBlE,EAAKO,QACZX,EAAcI,EAAK3gC,KAI3B4mC,aAAc,WAGV,GAFA9tC,KAAKopC,cACLppC,KAAKmxB,IAAMnxB,KAAKkqC,YAAYlqC,KAAK6nC,MAC7B7nC,KAAKmxB,OAAQ,EACb,IAAK,GAAIkY,GAAO,EAAGP,EAAO9oC,KAAK4wB,IAAIruB,OAAeumC,EAAPO,EAAaA,IAC/CrpC,KAAK4wB,IAAIyY,GAAMrpC,KAAKmxB,IAAIoZ,KAAKjC,WAC9BtoC,KAAKkpC,kBAAkBlpC,KAAK4wB,IAAIyY,GAAMrpC,KAAKmxB,IAAIoZ,MAC/CvqC,KAAK6tC,cAAc7tC,KAAK4wB,IAAIyY,GAAMrpC,KAAKmxB,IAAIoZ,QAO3D/4B,OAAQ,SAASu8B,GACb,GAAI/tC,KAAK8sC,UAAW,CAChB,OAAQiB,GACJ,IAAK,MACD/tC,KAAK2tC,WACT,MACA,KAAK,SACD3tC,KAAK8tC,eAGb9tC,KAAK8sC,YAIbkB,OAAQ,SAASC,GACb,GAAIlrC,GAAM/C,KAAKwoC,MAAM/8B,aAQrB,IANAzL,KAAKopC,cACLppC,KAAKmxB,IAAMnxB,KAAKkqC,YAAYlqC,KAAK6nC,MACpB,SAAToG,GAAoBrqC,EAAIqrB,aAAajvB,KAAK6nC,KAAM,aAChD7nC,KAAKmxB,IAAImY,IAAMtpC,KAAKmxB,IAAImY,IAAMtS,SAASpzB,EAAIqrB,aAAajvB,KAAK6nC,KAAM,WAAY,IAAM,GAGrF7nC,KAAKmxB,OAAQ,EAAO,CAIpB,IAAK,GAHDsc,GAASztC,KAAK4wB,IAAI5wB,KAAKmxB,IAAImY,KAC3B4E,EAASnrC,EAAIoE,cAAc,MAEtBkiC,EAAO,EAAGP,EAAO2E,EAAOlrC,OAAeumC,EAAPO,EAAaA,IAC7CoE,EAAOpE,GAAMf,WACdtoC,KAAKkpC,kBAAkBuE,EAAOpE,IAC9BrpC,KAAKmuC,WAAWV,EAAOpE,GAAO6E,EAAQD,GAI9C,QAAQA,GACJ,IAAK,QACDtjC,EAAY3K,KAAKgsC,cAAa,GAAOkC,EACzC,MACA,KAAK,QACD,GAAIE,GAAKxqC,EAAIo0B,iBAAiBh4B,KAAK4wB,IAAI5wB,KAAKmxB,IAAImY,KAAKtpC,KAAKmxB,IAAIoZ,KAAKrjC,IAAMjC,UAAW,OAChFmpC,IACAA,EAAG3kC,WAAWsB,aAAamjC,EAAQE,MAOvDD,WAAY,SAAStG,EAAMyB,EAAK2E,GAC5B,GAAII,GAAexG,EAAc,WAAK+D,QAAYhoC,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,YAAc,IACtF2gC,GAAKO,OACQ,SAAT6F,GAAoBpG,EAAKE,UACzBF,EAAK3gC,GAAG2mB,aAAa,UAAWmJ,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAG,WAAY,IAAM,GAEpFoiC,EAAIliC,YAAYpH,KAAKorC,YAAY,KAAM,EAAGiD,IAGjC,SAATJ,GAAoBpG,EAAKE,WAAaF,EAAKM,QAC3CmB,EAAIliC,YAAYpH,KAAKorC,YAAY,KAAM,EAAGiD,IACnClb,EAAE4U,WACTF,EAAK3gC,GAAG02B,KAAK,UAAW5G,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,IAKzF6b,IAAK,SAASkrB,GACNjuC,KAAK8sC,aACQ,SAATmB,GAA6B,SAATA,IACpBjuC,KAAKguC,OAAOC,IAEH,UAATA,GAA8B,SAATA,IACrBjuC,KAAKsuC,UAAUL,KAK3BM,WAAY,SAAU1G,EAAMwB,EAAM4E,GAC9B,GAAIO,GACA3C,EAAQhE,EAAK3gC,GAAGmF,QAAQnH,aAI5B,QAAQ+oC,GACJ,IAAK,SACDO,GAAU3G,EAAKC,WAAaD,EAAKG,QACrC,MACA,KAAK,QACDwG,GAAU3G,EAAKC,WAAaD,EAAKI,SAAYJ,EAAKC,WAAa3U,EAAEjsB,IAAMlH,KAAK6nC,KAIpF,GAAI2G,EAAM,CAEN,OAAQP,GACJ,IAAK,SACDpG,EAAK3gC,GAAGuC,WAAWsB,aAAa/K,KAAKorC,YAAYS,EAAO,GAAIhE,EAAK3gC,GACrE,MACA,KAAK,QACDyD,EAAYk9B,EAAK3gC,GAAIlH,KAAKorC,YAAYS,EAAO,IAKjDhE,EAAKE,WACL/nC,KAAKyuC,yBAAyB5G,EAAMwB,EAAK,EAAG4E,OAKhDpG,GAAK3gC,GAAG2mB,aAAa,UAAYmJ,SAASpzB,EAAIqrB,aAAa4Y,EAAK3gC,GAAI,WAAY,IAAM,IAI9FonC,UAAW,SAASL,GAChB,GAAI3E,GAAKoF,CAQT,IANA1uC,KAAKopC,cACLppC,KAAKmxB,IAAMnxB,KAAKkqC,YAAYlqC,KAAK6nC,MACpB,SAAToG,GAAoBrqC,EAAIqrB,aAAajvB,KAAK6nC,KAAM,aAClD7nC,KAAKmxB,IAAIoZ,IAAMvqC,KAAKmxB,IAAIoZ,IAAMvT,SAASpzB,EAAIqrB,aAAajvB,KAAK6nC,KAAM,WAAY,IAAM,GAGnF7nC,KAAKmxB,OAAQ,EACb,IAAK,GAAIkY,GAAO,EAAGP,EAAO9oC,KAAK4wB,IAAIruB,OAAeumC,EAAPO,EAAaA,IACpDC,EAAMtpC,KAAK4wB,IAAIyY,GACXC,EAAItpC,KAAKmxB,IAAIoZ,OACbmE,EAAUpF,EAAItpC,KAAKmxB,IAAIoZ,KAClBmE,EAAQpG,WACTtoC,KAAKkpC,kBAAkBwF,GACvB1uC,KAAKuuC,WAAWG,EAASrF,EAAO4E,MAOpDQ,yBAA0B,SAAU5G,EAAMwB,EAAM4E,GAQ5C,IAAK,GAJDzE,GAAMmF,EAENC,EALAC,EAAY7X,SAASpzB,EAAIqrB,aAAajvB,KAAK6nC,KAAM,WAAY,IAAM,EACnEiH,EAAOlrC,EAAIo0B,iBAAiB6P,EAAK3gC,IAAMjC,UAAW,QAClD4mC,EAAQhE,EAAK3gC,GAAGmF,QAAQnH,cAExBnC,EAAM/C,KAAKwoC,MAAM/8B,cAGZnJ,EAAI,EAAOusC,EAAJvsC,EAAeA,IAG3B,GAFAknC,EAAOxpC,KAAKsrC,0BAA0BtrC,KAAKmxB,IAAIoZ,IAAMlB,EAAO/mC,GAC5DwsC,EAAOjkC,EAASikC,EAAM,MAElB,GAAItF,EAAO,EACP,OAAQyE,GACJ,IAAK,SACDU,EAAe3uC,KAAK2pC,YAAYmF,GAC5BtF,EAAO,GAAKxpC,KAAK4wB,IAAIyY,EAAO/mC,GAAGtC,KAAKmxB,IAAIoZ,KAAKrjC,IAAMynC,EAAanF,IAASA,GAAQmF,EAAapsC,OAAS,EACtGoI,EAAYgkC,EAAanF,GAAOxpC,KAAKorC,YAAYS,EAAO,IAEzD8C,EAAanF,GAAM//B,WAAWsB,aAAa/K,KAAKorC,YAAYS,EAAO,GAAI8C,EAAanF,GAG5F,MACA,KAAK,QACD7+B,EAAY3K,KAAK2pC,YAAYmF,GAAMtF,GAAOxpC,KAAKorC,YAAYS,EAAO,QAI1EiD,GAAK/jC,aAAa/K,KAAKorC,YAAYS,EAAO,GAAIiD,EAAK9hC,gBAGvD4hC,GAAO7rC,EAAIoE,cAAc,MACzBynC,EAAKxnC,YAAYpH,KAAKorC,YAAYS,EAAO,IACzC7rC,KAAKwoC,MAAMphC,YAAYwnC,KAMvChrC,EAAI4kC,OACAuG,gBAAiB,SAASC,EAAOC,GAC7B,GAAIC,GAAK,GAAI3G,GAAoByG,EACjC,OAAOE,GAAGzE,YAAYwE,IAG1BE,SAAU,SAAStH,EAAMoG,GACrB,GAAI9a,GAAI,GAAIoV,GAAoBV,EAChC1U,GAAEpQ,IAAIkrB,IAGVmB,YAAa,SAASvH,EAAMkG,GACxB,GAAI5a,GAAI,GAAIoV,GAAoBV,EAChC1U,GAAE3hB,OAAOu8B,IAGbsB,kBAAmB,SAASL,EAAOC,GAC/B,GAAIC,GAAK,GAAI3G,GAAoByG,EACjCE,GAAGnd,MAAMkd,IAGbK,YAAa,SAASzH,GAClB,GAAI1U,GAAI,GAAIoV,GAAoBV,EAChC1U,GAAE4Z,WAGN7B,mBAAoB,SAASrD,EAAMoH,GAC/B,GAAI9b,GAAI,GAAIoV,GAAoBV,EAChC,OAAO1U,GAAE+X,mBAAmB+D,IAGhCjjB,QAAS,SAAS6b,GACd,GAAI1U,GAAI,GAAIoV,GAAoBV,EAEhC,OADA1U,GAAEiW,cACKjW,EAAE+W,YAAYrC,IAGzB0H,SAAU,SAAS/G,EAAOrX,GACtB,GAAIgC,GAAI,GAAIoV,GAAoB,KAAMC,EACtC,OAAOrV,GAAEqX,kBAAkBrZ,IAG/Bqe,cAAe,SAAS3H,GACpB,GAAI1U,GAAI,GAAIoV,GAAoBV,EAChC,OAAO1U,GAAEqa,wBAGbiC,iBAAkB,SAAS5H,GACvB,GAAI1U,GAAI,GAAIoV,GAAoBV,EAChC,OAAO1U,GAAEua,2BAGbrB,SAAU,SAAS2C,EAAOC,GACtB,GAAI9b,GAAI,GAAIoV,GAAoByG,EAChC,OAAO7b,GAAEkZ,SAAS4C,MAM3B1uC,WAGHA,UAAUG,IAAI2mC,MAAQ,SAASqI,EAAUrI,GACrC,GACIC,GADAC,IAGAmI,GAASloC,WACTkoC,GAAYA,GAGhB,KAAK,GAAIhoC,GAAI,EAAGhC,EAAMgqC,EAASntC,OAAYmD,EAAJgC,EAASA,IAE5C,GADA4/B,EAAIoI,EAAShoC,GAAGmlB,iBAAiBwa,GAE7B,IAAI,GAAI/kC,GAAIglC,EAAE/kC,OAAQD,IAAKilC,EAAIC,QAAQF,EAAEhlC,KAGjD,MAAOilC,IAEVhnC,UAAUG,IAAIu0B,wBAA0B,WACvC,GAAIxmB,GAAkB7J,SAAS6J,eAC/B,OAAIA,GAAgBwmB,wBACX,SAASza,EAAW6M,GACzB,MAAO7M,GAAUya,wBAAwB5N,IAGpC,SAAU7M,EAAW6M,GAE1B,GAAIsoB,GAAWC,CAYf,IATED,EADyB,IAAvBn1B,EAAUhT,SACAgT,EAEAA,EAAU/O,cAGtBmkC,EADuB,IAArBvoB,EAAQ7f,SACG6f,EAEAA,EAAQ5b,cAEnB+O,IAAc6M,EAAU,MAAO,EACnC,IAAI7M,IAAc6M,EAAQ5b,cAAgB,MAAO,GACjD,IAAI+O,EAAU/O,gBAAkB4b,EAAU,MAAO,GACjD,IAAIsoB,IAAcC,EAAa,MAAO,EAGtC,IAA2B,IAAvBp1B,EAAUhT,UAA0CgT,EAAUjT,YAAgF,KAAlEhH,UAAUM,KAAKyvB,MAAM9V,EAAUjT,YAAYykB,QAAS3E,GAClI,MAAO,GAET,IAAyB,IAArBA,EAAQ7f,UAA0C6f,EAAQ9f,YAAgF,KAAlEhH,UAAUM,KAAKyvB,MAAMjJ,EAAQ9f,YAAYykB,QAASxR,GAC5H,MAAO,GAKT,KAHA,GAAIq1B,GAAQr1B,EACRs1B,KACA9kB,EAAW,KACR6kB,GAAQ,CACb,GAAIA,GAASxoB,EAAU,MAAO,GAC9ByoB,GAAQ5nC,KAAM2nC,GACdA,EAAQA,EAAMpmC,WAIhB,IAFAomC,EAAQxoB,EACR2D,EAAW,KACJ6kB,GAAQ,CACb,GAAIA,GAASr1B,EAAY,MAAO,GAChC,IAAIu1B,GAAiBxvC,UAAUM,KAAKyvB,MAAMwf,GAAS9jB,QAAS6jB,EAC5D,IAAuB,KAAnBE,EAAuB,CAC1B,GAAIC,GAA2BF,EAASC,GACpCE,EAAa1vC,UAAUM,KAAKyvB,MAAM0f,EAAyBzoC,YAAYykB,QAAS8jB,EAAQC,EAAiB,IACzGG,EAAc3vC,UAAUM,KAAKyvB,MAAM0f,EAAyBzoC,YAAYykB,QAAShB,EACrF,OAAIilB,GAAaC,EACJ,EAGJ,EAGVllB,EAAW6kB,EACXA,EAAQA,EAAMpmC,WAEhB,MAAO,OAUblJ,UAAUI,OAAOwvC,gBAAkB,WAOjC,QAASA,GAAgB1U,EAAed,EAAOrP,GAC7CqP,EAAUA,GAASgB,EACnBrQ,EAAUA,GAAWmQ,EAAchwB,eAAiB7G,QAEpD,IAAIyiB,GAEA0D,EACAqlB,EACAC,EACA/tC,EACO0H,EALP4xB,EAAqC,gBAApB,GAKjB0U,EAAI,CAENjpB,GADEuU,EACQr7B,UAAUG,IAAIg3B,SAAS+D,EAAenQ,GAEtCmQ,CAGZ,KAAKn5B,IAAKq4B,GAIR,IAHAyV,EAAgB/oB,EAAQwF,iBAAiBvqB,GACzCyoB,EAAgB4P,EAAMr4B,GACtB+tC,EAAgBD,EAAQ7tC,OACf8tC,EAAFC,EAAiBA,IACtBvlB,EAAOqlB,EAAQE,GAKnB,IAAIC,GAAWhwC,UAAUG,IAAIm5B,aAAaxS,EAC1C,KAAKrd,EAAIumC,EAAShuC,OAAQyH,KACxBumC,EAASvmC,GAAGsqB,UAAYic,EAASvmC,GAAGsqB,UAAU3U,QAAQ,uBAAwB,MAKhF,OAFAywB,GAAU3U,EAAgBd,EAAQ,KAE3BiB,EAAWvU,EAAQ9Z,UAAY8Z,EAvCxC,GAAIsU,IAEF6U,MAAOjwC,UAAUG,IAAImiC,sBAwCvB,OAAOsN,MAST5vC,UAAUI,OAAO8vC,qBAAuB,WACtC,GAAIC,GAAmB,WACrB,GAAIrpB,GAAUrnB,IACd4lC,YAAW,WACT,GAAIr4B,GAAY8Z,EAAQ9Z,UAAUrI,eACjB,iBAAbqI,GACa,8BAAbA,KACF8Z,EAAQ9Z,UAAY,KAErB,GAGL,OAAO,UAASojC,GACdpwC,UAAUG,IAAImxB,QAAQ8e,EAAStpB,SAAU,MAAO,WAAYqpB,OAYhE,SAAUnwC,GACR,GAAIqwC,GAAgB,KACpBrwC,GAAUI,OAAOo7B,oBAAsB,SAAS1U,GAC9C,GAAI9Z,GAAY8Z,EAAQ9Z,SACxB,IAAyC,KAArCA,EAAUye,QAAQ4kB,GACpB,MAAOrjC,EAGT,IACImmB,GACAmd,EACAtuC,EACAD,EAJAwuC,EAAoBzpB,EAAQwF,iBAAiB,0BAKjD,KAAKvqB,EAAE,EAAGC,EAAOuuC,EAAkBvuC,OAAUA,EAAFD,EAAUA,IACnDoxB,EAAcod,EAAkBxuC,GAAGy+B,MAAQ+P,EAAkBxuC,GAAG09B,IAChE6Q,EAActwC,EAAUM,KAAK6xB,OAAOgB,GAAK/T,QAAQ,KAAKoT,GAAG6d,GACzDrjC,EAAchN,EAAUM,KAAK6xB,OAAOnlB,GAAWoS,QAAQkxB,GAAa9d,GAAGW,EAEzE,OAAOnmB,KAERhN,WASH,SAAUA,GACR,GAAIomC,GAAa,yBAEjBpmC,GAAUI,OAAOowC,OAAS,SAAS1pB,GACjC9mB,EAAUG,IAAIk0B,SAASvN,EAASsf,GAChCpmC,EAAUG,IAAIq0B,YAAY1N,EAASsf,EAGnC,KACE,GAAI5jC,GAAMskB,EAAQ5b,aAClB1I,GAAIypB,YAAY,UAAU,EAAO,MACjCzpB,EAAIypB,YAAY,UAAU,EAAO,MACjC,MAAM9kB,OAETnH,WACFA,UAAUI,OAAOqwC,oBAAsB,SAASC,EAAUzK,GAcvD,QAAShiC,KASL,MAPA9D,GAAImxB,QAAQof,EAAU,YAAa,SAASzZ,GAC1C,GAAIC,GAASl3B,UAAUG,IAAIs3B,iBAAiBR,EAAMC,QAAUxyB,UAAW,KAAM,OACzEwyB,IACAyZ,EAAyBzZ,KAIxBzU,EAGX,QAASkuB,GAA0BzZ,GACjCzU,EAAO9L,MAAQugB,EACfzU,EAAO7L,IAAMsgB,EACbzU,EAAOumB,OAAS9R,GAChBzU,EAAOwlB,MAAQ9nC,EAAIs3B,iBAAiBhV,EAAO9L,OAASjS,UAAW,WAE3D+d,EAAOwlB,QACT2I,IACAzwC,EAAIk0B,SAAS6C,EAAQ2Z,GACrBC,EAAc3wC,EAAImxB,QAAQof,EAAU,YAAaK,GACjDC,EAAY7wC,EAAImxB,QAAQof,EAAU,UAAWO,GAC7ChL,EAAO7U,KAAK,oBAAoBA,KAAK,8BAKzC,QAASwf,KACL,GAAIF,EAAU,CACV,GAAIQ,GAAgBR,EAASpkB,iBAAiB,IAAMukB,EACpD,IAAIK,EAAclvC,OAAS,EACzB,IAAK,GAAID,GAAI,EAAGA,EAAImvC,EAAclvC,OAAQD,IACtC5B,EAAIq0B,YAAY0c,EAAcnvC,GAAI8uC,IAMhD,QAASM,GAAenI,GACtB,IAAK,GAAIjnC,GAAI,EAAGA,EAAIinC,EAAMhnC,OAAQD,IAChC5B,EAAIk0B,SAAS2U,EAAMjnC,GAAI8uC,GAI3B,QAASE,GAAiB9Z,GACxB,GAEIma,GAFAC,EAAW,KACX/J,EAAOnnC,EAAIs3B,iBAAiBR,EAAMC,QAAUxyB,UAAW,KAAK,OAG5D4iC;GAAQ7kB,EAAOwlB,OAASxlB,EAAO9L,QACjC06B,EAAYlxC,EAAIs3B,iBAAiB6P,GAAQ5iC,UAAW,WAChD2sC,GAAYA,IAAa5uB,EAAOwlB,QAClC2I,IACAQ,EAAS3uB,EAAO7L,IAChB6L,EAAO7L,IAAM0wB,EACb7kB,EAAOumB,MAAQ7oC,EAAI8nC,MAAMuG,gBAAgB/rB,EAAO9L,MAAO2wB,GACnD7kB,EAAOumB,MAAMhnC,OAAS,GACxBikC,EAAOmK,SAAS7vC,UAAU+wC,WAE5BH,EAAc1uB,EAAOumB,OACjBvmB,EAAO7L,MAAQw6B,GACjBnL,EAAO7U,KAAK,qBAAqBA,KAAK,gCAM9C,QAAS6f,KACPH,EAAYhgC,OACZkgC,EAAUlgC,OACVm1B,EAAO7U,KAAK,eAAeA,KAAK,wBAChCiU,WAAW,WACTkM,KACA,GAGJ,QAASA,KACL,GAAIC,GAAmBrxC,EAAImxB,QAAQof,EAASxlC,cAAe,QAAS,SAAS+rB,GAC3Eua,EAAiB1gC,OACb3Q,EAAIs3B,iBAAiBR,EAAMC,QAAUxyB,UAAW,YAAe+d,EAAOwlB,QACtE2I,IACAnuB,EAAOwlB,MAAQ,KACfxlB,EAAO9L,MAAQ,KACf8L,EAAO7L,IAAM,KACbqvB,EAAO7U,KAAK,iBAAiBA,KAAK,6BAK5C,QAASqgB,GAAa96B,EAAOC,GACzB6L,EAAO9L,MAAQA,EACf8L,EAAO7L,IAAMA,EACb6L,EAAOwlB,MAAQ9nC,EAAIs3B,iBAAiBhV,EAAO9L,OAASjS,UAAW,WAC/DwsC,cAAgB/wC,EAAI8nC,MAAMuG,gBAAgB/rB,EAAO9L,MAAO8L,EAAO7L,KAC/Du6B,EAAcD,eACdK,IACAtL,EAAO7U,KAAK,eAAeA,KAAK,wBA7GpC,GAAIjxB,GAAMH,UAAUG,IAChBsiB,GACIwlB,MAAO,KACPtxB,MAAO,KACPC,IAAK,KACLoyB,MAAO,KACPvmB,OAAQgvB,GAEZZ,EAAkB,4BAClBC,EAAc,KACdE,EAAY,IAsGhB,OAAO/sC,MAGV,SAAUjE,GACT,GAAI0xC,GAAiB,4EACjBC,EAAiB,2DACjBC,EAAiB,4DACjBC,EAAiB,oCAEjBC,EAAa,SAAUzwC,GACzB,MAAO,IAAIoQ,QAAO,YAAcpQ,EAAI,kBAAoB,MAG1DrB,GAAUI,OAAO2xC,aAEfC,WAAY,SAASC,EAAWC,GAC9B,GAGI9f,GAAK+f,EAHLC,EAAaN,EAAWI,GACxBjrB,EAASgrB,EAAU7mB,MAAMgnB,GACzBC,EAAQ,EAGZ,IAAIprB,EAAQ,CACV,IAAK,GAAIllB,GAAIklB,EAAOjlB,OAAQD,KAC1BklB,EAAOllB,GAAK/B,EAAUM,KAAK6xB,OAAOlL,EAAOllB,GAAG2wB,MAAM,KAAK,IAAIL,MAI7D,IAFAD,EAAMnL,EAAOA,EAAOjlB,OAAO,GAEvB0vC,EAAW7/B,KAAKugB,GAClB+f,EAAa/f,EAAIhH,MAAMsmB,OAClB,IAAIC,EAAU9/B,KAAKugB,GACxB+f,EAAa/f,EAAIhH,MAAMumB,OAClB,IAAIC,EAAW//B,KAAKugB,GACzB+f,EAAa/f,EAAIhH,MAAMwmB,GACvBS,EAAQ,OACH,IAAIR,EAAWhgC,KAAKugB,GAIzB,MAHA+f,GAAa/f,EAAIhH,MAAMymB,GACvBM,EAAWG,QACXH,EAAWxqC,KAAK,GACT3H,EAAUM,KAAKyvB,MAAMoiB,GAAY9hB,IAAI,SAASkiB,EAAG3hB,GACtD,MAAc,GAANA,EAA8B,GAAlB6F,SAAS8b,EAAG,IAAY9b,SAAS8b,EAAG,IAAKC,WAAWD,IAI5E,IAAIJ,EAKF,MAJAA,GAAWG,QACNH,EAAW,IACdA,EAAWxqC,KAAK,GAEX3H,EAAUM,KAAKyvB,MAAMoiB,GAAY9hB,IAAI,SAASkiB,EAAG3hB,GACtD,MAAc,GAANA,EAAW6F,SAAS8b,EAAGF,GAAQG,WAAWD,KAIxD,OAAO,GAGTE,aAAc,SAAS3kC,EAAKhM,GAC1B,GAAIA,EAAO,CACT,GAAa,OAATA,EACF,MAAQgM,GAAI,GAAG/N,SAAS,IAAI84B,cAAkB/qB,EAAI,GAAG/N,SAAS,IAAI84B,cAAkB/qB,EAAI,GAAG/N,SAAS,IAAI84B,aACnG,IAAa,QAAT/2B,EACT,MAAO,IAAOgM,EAAI,GAAG/N,SAAS,IAAI84B,cAAkB/qB,EAAI,GAAG/N,SAAS,IAAI84B,cAAkB/qB,EAAI,GAAG/N,SAAS,IAAI84B,aACzG,IAAa,OAAT/2B,EACT,MAAO,OAASgM,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,GAClD,IAAa,QAAThM,EACT,MAAO,QAAUgM,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,GAClE,IAAa,OAAThM,EACT,MAAQgM,GAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAI7D,MAAIA,GAAI,IAAiB,IAAXA,EAAI,GACT,QAAUA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAEhE,OAASA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,KAI3D4kC,cAAe,SAAST,GACtB,GAAIhrB,GAASgrB,EAAU7mB,MAAM0mB,EAAW,aACxC,OAAI7qB,GACKjnB,EAAUM,KAAK6xB,OAAOlL,EAAOA,EAAOjlB,OAAS,GAAG0wB,MAAM,KAAK,IAAIL,QAEjE,KAIVryB,WAOH,SAAUA,GAGR,QAAS2yC,GAAwB7rB,GAC/B,GAAI8rB,GAAM,CACV,IAAI9rB,EAAQ5d,WACV,EACE0pC,IAAO9rB,EAAQ+rB,WAAa,EAC5B/rB,EAAUA,EAAQgsB,mBACXhsB,EAEX,OAAO8rB,GAIT,QAASG,GAASlpC,EAAUC,GAExB,IADA,GAAIk9B,GAAM,EACHl9B,IAAeD,GAGlB,GAFAm9B,IACAl9B,EAAaA,EAAWZ,YACnBY,EACD,KAAM,IAAI/B,OAAM,gCAExB,OAAOi/B,GAKX,QAASgM,GAAsB9wC,GAC3B,IAAIA,EAAM6U,sBAMV,IAJA,GAAIk8B,GAAS/wC,EAAMmQ,wBACf6gC,EAAcH,EAASE,EAAQ/wC,EAAMgN,gBACrCikC,EAAYJ,EAASE,EAAQ/wC,EAAMiN,eAEhCjN,EAAM6U,uBAEPm8B,EAAcC,GACdjxC,EAAMkU,eAAelU,EAAMgN,gBAC3BgkC,EAAcH,EAASE,EAAQ/wC,EAAMgN,kBAGrChN,EAAMqU,YAAYrU,EAAMiN,cACxBgkC,EAAYJ,EAASE,EAAQ/wC,EAAMiN,eA1C7C,GAAIhP,GAAMH,EAAUG,GA+CpBH,GAAUynB,UAAYkC,KAAKnjB,QAEzBwO,YAAa,SAASixB,EAAQmN,EAASC,GAErCxwC,OAAO6F,MAAMzE,OAEbxE,KAAKwmC,OAAWA,EAChBxmC,KAAK2wC,SAAWnK,EAAOmK,SACvB3wC,KAAK+C,IAAW/C,KAAK2wC,SAAS5tC,IAC9B/C,KAAK2zC,QAAUA,EACf3zC,KAAK4zC,kBAAoBA,IAAqB,GAQhD93B,YAAa,WACX,GAAIrZ,GAAQzC,KAAK6zC,UAEjB,OADIpxC,IAAO8wC,EAAsB9wC,GAC1BA,GAASA,EAAMmW,cAQxBk7B,YAAa,SAAS53B,GACfA,GAILlc,KAAK+zC,aAAa73B,IAUpB83B,UAAW,SAAS7qC,GAClB,GAAI1G,GAAQwG,MAAMpE,YAAY7E,KAAK+C,IAGnC,OAFAN,GAAMkU,eAAexN,GACrB1G,EAAMoU,aAAa1N,GACZnJ,KAAK+zC,aAAatxC,IAU3BwxC,SAAU,SAAS9qC,GACjB,GAAI1G,GAAQwG,MAAMpE,YAAY7E,KAAK+C,IAInC,OAFAN,GAAMmU,cAAczN,GACpB1G,EAAMqU,YAAY3N,GACXnJ,KAAK+zC,aAAatxC,IAU3BwU,WAAY,SAAS9N,EAAM+qC,GACzB,GAAIzxC,GAAkBwG,MAAMpE,YAAY7E,KAAK+C,KACzCoxC,EAAkBhrC,EAAK3B,WAAajH,EAAUW,aAC9Cyd,EAAkB,eAAiBxV,GAAOA,EAAKwV,YAAiC,QAAlBxV,EAAKlE,SACnE+U,EAAkBm6B,EAAYhrC,EAAKoE,UAAYpE,EAAKiE,KACpD45B,EAA+B,KAAZhtB,GAAkBA,IAAYzZ,EAAUS,gBAC3DozC,EAAkB1zC,EAAIs1B,SAAS,WAAWC,KAAK9sB,GAC/CwsB,EAAoC,UAAjBye,GAA6C,cAAjBA,CAEnD,IAAIpN,GAAWmN,GAAax1B,IAAgBu1B,EAE1C,IAAM/qC,EAAKoE,UAAYhN,EAAUS,gBAAmB,MAAM0G,IAGxDiX,EACFlc,EAAMuU,mBAAmB7N,GAEzB1G,EAAMwU,WAAW9N,GAGfwV,GAAeqoB,GAAWmN,EAC5B1xC,EAAMsU,SAAS4e,GACNhX,GAAeqoB,IACxBvkC,EAAMmU,cAAczN,GACpB1G,EAAMqU,YAAY3N,IAGpBnJ,KAAK+zC,aAAatxC,IAWpB4xC,gBAAiB,SAAS5xB,GACxB,GAAI3hB,GACA2B,CAEJ,OAAIggB,IAAgBziB,KAAK+C,IAAIjC,WAAyC,YAA5Bd,KAAK+C,IAAIjC,UAAU4c,OAC3Djb,EAAQzC,KAAK+C,IAAIjC,UAAU+D,cACvBpC,GAASA,EAAMF,QACVE,EAAMigB,KAAK,IAItB5hB,EAAYd,KAAK+gB,aAAa/gB,KAAK+C,KAC/BjC,EAAUwgB,YAAcxgB,EAAUsgB,WAC7BtgB,EAAUwgB,WAEjB7e,EAAQzC,KAAK6zC,SAAS7zC,KAAK+C,KACpBN,EAAQA,EAAMmQ,wBAA0B5S,KAAK+C,IAAIC,QAI5DsxC,oBAAqB,WAKnB,IAAK,GAHD9wB,GAASxjB,KAAKu0C,eACdC,KAEKlyC,EAAI,EAAGmyC,EAAOjxB,EAAOjhB,OAAYkyC,EAAJnyC,EAAUA,IAC5CkyC,EAAStsC,KAAKsb,EAAOlhB,GAAGsQ,yBAA2B5S,KAAK+C,IAAIC,KAEhE,OAAOwxC,IAGTE,qBAAsB,SAAS/iC,GAG7B,IAAK,GADWgjC,GADZnxB,EAASxjB,KAAKu0C,eACdriC,KACK5P,EAAI,EAAGmyC,EAAOjxB,EAAOjhB,OAAYkyC,EAAJnyC,EAAUA,IAC9CqyC,EAAWnxB,EAAOlhB,GAAGkZ,UAAU,GAAI,SAASrS,GACxC,MAAO5I,GAAUM,KAAKyvB,MAAM3e,GAAWgK,SAASxS,EAAKlE,YAEzDiN,EAAQA,EAAM6nB,OAAO4a,EAEvB,OAAOziC,IAGT0iC,mBAAoB,WAIlB,IAAK,GAHDC,GAAc70C,KAAK80C,oBACnBh0C,EAAYd,KAAK+gB,eAEZze,EAAI,EAAGmyC,EAAOI,EAAYtyC,OAAYkyC,EAAJnyC,EAAUA,IACnD,GAAIxB,EAAUma,aAAa45B,EAAYvyC,IACrC,OAAO,CAIX,QAAO,GAGT+U,eAAgB,WAEd,IAAK,GADDmM,GAASxjB,KAAKu0C,eACTjyC,EAAIkhB,EAAOjhB,OAAQD,KAC1BkhB,EAAOlhB,GAAG+U,gBAEZrX,MAAK+zC,aAAavwB,EAAO,KAG3BuxB,gBAAiB,SAAS5rC,EAAM6rC,GAC9B,IAAK7rC,EAAM,CACT,GAAIrI,GAAYd,KAAK+gB,cACrB5X,GAAOrI,EAAUsgB,WAGnB,GAAIjY,IAASnJ,KAAK2zC,QACd,OAAO,CAGX,IACInqC,GADA+9B,EAAMp+B,EAAKQ,eAGf,OAAI49B,KAAQvnC,KAAK2zC,SACN,GAGPpM,GAAwB,IAAjBA,EAAI//B,UAAmC,IAAjB+/B,EAAI//B,SAElC+/B,EAAMvnC,KAAK+0C,gBAAgBxN,EAAKyN,GACxBzN,GAAwB,IAAjBA,EAAI//B,UAAkB,QAAU4K,KAAKm1B,EAAIhF,aAEzDgF,EAAMvnC,KAAK+0C,gBAAgBxN,EAAKyN,GACvBA,GAAezN,GAAwB,IAAjBA,EAAI//B,WAAmBjH,EAAUM,KAAKyvB,OAAO,KAAM,KAAM,QAAQ3U,SAAS4rB,EAAItiC,WAAa,UAAYmN,KAAKm1B,EAAIh6B,WAG/Ig6B,EAAMvnC,KAAK+0C,gBAAgBxN,EAAKyN,GACtBzN,GAAOp+B,IAASnJ,KAAK2zC,UAC/BnqC,EAASL,EAAKM,WACVD,IAAWxJ,KAAK2zC,UAChBpM,EAAMvnC,KAAK+0C,gBAAgBvrC,EAAQwrC,KAIjCzN,IAAQvnC,KAAK2zC,QAAWpM,GAAM,IAGxC0N,yBAA0B,WAIxB,IAAK,GAFDC,GADAhjC,EAAQlS,KAAKs0C,sBACNxE,KAEFxtC,EAAI,EAAGmyC,EAAOviC,EAAM3P,OAAYkyC,EAAJnyC,EAAUA,IAC7C4yC,EAAShjC,EAAM5P,GAAG2C,UAAmC,OAAtBiN,EAAM5P,GAAG2C,SAAqBiN,EAAM5P,GAAK/B,EAAUG,IAAIs3B,iBAAiB9lB,EAAM5P,IAAM2C,UAAW,QAAQ,EAAOjF,KAAK2zC,SAC9IuB,GACFpF,EAAQ5nC,KAAKgtC,EAGjB,OAAQpF,GAAc,OAAIA,EAAU,MAGtCqF,kBAAmB,WACjB,GAAIn1C,KAAKue,cAAe,CACtB,GAAI9b,GAAQzC,KAAK6zC,WACbuB,EAAQ3yC,EAAMgN,eACdV,EAAMtM,EAAM6N,YACZ+kC,EAAQpsC,MAAMpE,YAAY7E,KAAK+C,IAInC,OAFAsyC,GAAMr+B,mBAAmBo+B,GACzBC,EAAM9+B,SAAS6+B,EAAOrmC,GACfsmC,IAIXC,uBAAwB,WACtB,GAEIC,IAFItsC,MAAMpE,YAAY7E,KAAK+C,KACvB/C,KAAK+gB,eACF/gB,KAAKm1C,oBAAoBt7B,iBAChC27B,EAASD,EAAKhT,WAElB,OAAO,QAAUnwB,KAAKojC,IAGxBC,wBAAyB,WACvB,GAAI/M,GAAIz/B,MAAMpE,YAAY7E,KAAK+C,KAC3B7C,EAAIF,KAAK+gB,cAKb,OAHA2nB,GAAE1xB,mBAAmBhX,KAAK6zC,WAAWjhC,yBACrC81B,EAAE3xB,UAAS,GAEH/W,KAAKue,gBAAkBmqB,EAAEj5B,iBAAmBvP,EAAEkhB,YAAcsnB,EAAEh5B,eAAiBxP,EAAEkhB,aAAesnB,EAAEp4B,cAAgBpQ,EAAEmhB,cAG9Hq0B,qBAAsB,SAASC,GAC3B,GAAI70C,GAAYd,KAAK+gB,eACjB5X,EAAOrI,EAAUsgB,WACjB7V,EAASzK,EAAUugB,YACvB,OAAIs0B,GACiB,IAAXpqC,IAAiBpC,EAAKlE,UAAYkE,EAAKlE,WAAa0wC,EAAOvc,eAAiB74B,EAAUG,IAAIs3B,iBAAiB7uB,EAAKM,YAAcxE,SAAU0wC,GAAU,IAEvI,IAAXpqC,IAAiBvL,KAAK+0C,gBAAgB5rC,GAAM,IAI1DysC,wBAAyB,WACvB,GAAI90C,GAAYd,KAAK+gB,eACjB5X,EAAOrI,EAAUsgB,WACjB7V,EAASzK,EAAUugB,YAEvB,IAAe,IAAX9V,EAAc,CAChB,GAAIsqC,GAAW71C,KAAK+0C,gBAAgB5rC,GAAM,EAC1C,IAAI0sC,EAEF,IAAK,GADDhB,GAAc70C,KAAK80C,oBACdxyC,EAAI,EAAGmyC,EAAOI,EAAYtyC,OAAYkyC,EAAJnyC,EAAUA,IACnD,GAAIuzC,IAAahB,EAAYvyC,GAC3B,MAAOuyC,GAAYvyC,GAK3B,OAAO,GAITwzC,uBAAwB,SAAS/qB,GAC/B,GAAIllB,GAAM7F,KAAK+C,IAAI4I,aAAe3L,KAAK+C,IAAI6I,aACvCsV,EAAMjY,MAAMygB,cAAc7jB,EAE9B,IAAKqb,EAGH,IACE6J,IACA,MAAMrjB,GACNk+B,WAAW,WAAa,KAAMl+B,IAAM,OALtCqjB,IAQF9hB,OAAM4gB,iBAAiB3I,IAIzB60B,kBAAmB,SAAShrB,EAAQirB,GAClC,GAMIC,GACAC,EACAprC,EAAaqrC,EACbhtC,EAAMY,EAAO0T,EACb24B,EAVApzC,EAAwBhD,KAAK+C,IAAIC,KACjCqzC,EAAwBL,GAAyBhzC,EAAKszC,UACtDC,EAAwBP,GAAyBhzC,EAAKwzC,WACtD3tB,EAAwB,8BACxB4tB,EAAwB,gBAAkB5tB,EAAY,KAAOtoB,EAAUS,gBAAkB,UACzFyB,EAAwBzC,KAAK6zC,UAAS,EAQ1C,KAAKpxC,EAEH,WADAsoB,GAAO/nB,EAAMA,EAIVP,GAAMgQ,YACTgL,EAAShb,EAAMmW,aACf7O,EAAQ0T,EAAOpE,yBAAyBo9B,GACxCh5B,EAAO1G,UAAS,GAChB0G,EAAO7D,WAAW7P,GAClB0T,EAAOzY,UAGTmE,EAAO1G,EAAM4W,yBAAyBo9B,GACtCh0C,EAAMmX,WAAWzQ,GAEbY,IACFksC,EAAmBj2C,KAAK2zC,QAAQ9mB,iBAAiB,IAAMhE,GACvDpmB,EAAMkU,eAAes/B,EAAiB,IACtCxzC,EAAMqU,YAAYm/B,EAAiBA,EAAiB1zC,OAAQ,KAE9DvC,KAAK+zC,aAAatxC,EAGlB,KACEsoB,EAAOtoB,EAAMgN,eAAgBhN,EAAMiN,cACnC,MAAMhI,GACNk+B,WAAW,WAAa,KAAMl+B,IAAM,GAGtC,GADAuuC,EAAmBj2C,KAAK2zC,QAAQ9mB,iBAAiB,IAAMhE,GACnDotB,GAAoBA,EAAiB1zC,OAAQ,CAC/C6zC,EAAWntC,MAAMpE,YAAY7E,KAAK+C,KAClC+H,EAAcmrC,EAAiB,GAAGnrC,YAC9BmrC,EAAiB1zC,OAAS,IAC5B4zC,EAAcF,EAAiBA,EAAiB1zC,OAAQ,GAAGoH,iBAEzDwsC,GAAerrC,GACjBsrC,EAASz/B,eAAe7L,GACxBsrC,EAASt/B,YAAYq/B,KAErBD,EAAsBl2C,KAAK+C,IAAIqL,eAAe7N,EAAUS,iBACxDN,EAAIw1B,OAAOggB,GAAqB/f,MAAM8f,EAAiB,IACvDG,EAASz/B,eAAeu/B,GACxBE,EAASt/B,YAAYo/B,IAEvBl2C,KAAK+zC,aAAaqC,EAClB,KAAK,GAAI9zC,GAAI2zC,EAAiB1zC,OAAQD,KACrC2zC,EAAiB3zC,GAAGmH,WAAWqO,YAAYm+B,EAAiB3zC,QAK7DtC,MAAK2zC,QAAQ3vB,OAGXgyB,KACFhzC,EAAKszC,UAAaD,EAClBrzC,EAAKwzC,WAAaD,EAIpB,KACEN,EAAiBxsC,WAAWqO,YAAYm+B,GACxC,MAAMtnB,MAGV1uB,IAAK,SAASkJ,EAAMoC,GAClB,GAAI6qC,GAAWntC,MAAMpE,YAAY7E,KAAK+C,IACtCqzC,GAAS7/B,SAASpN,EAAMoC,GAAU,GAClCvL,KAAK+zC,aAAaqC,IAUpB9nB,WAAY,SAASsJ,GACnB,GAAIn1B,GAAYwG,MAAMpE,YAAY7E,KAAK+C,KACnCoG,EAAY1G,EAAM4W,yBAAyBue,GAC3C1d,EAAY/Q,EAAK+Q,SAErBla,MAAK4Z,WAAWzQ,GACZ+Q,GACFla,KAAKi0C,SAAS/5B,IAWlBN,WAAY,SAASzQ,GACnB,GAAI1G,GAAQzC,KAAK6zC,UACbpxC,IACFA,EAAMmX,WAAWzQ,IASrButC,SAAU,SAASC,GACjB,GACIxtC,GADAqa,EAASxjB,KAAKu0C,eACRriC,IACV,IAAqB,GAAjBsR,EAAOjhB,OACT,MAAO2P,EAGT,KAAK,GAAI5P,GAAIkhB,EAAOjhB,OAAQD,KAAM,CAChC6G,EAAOnJ,KAAK+C,IAAIoE,cAAcwvC,EAAY1xC,UAC1CiN,EAAMhK,KAAKiB,GACPwtC,EAAY9tB,YACd1f,EAAK0f,UAAY8tB,EAAY9tB,WAE3B8tB,EAAYne,UACdrvB,EAAK0kB,aAAa,QAAS8oB,EAAYne,SAEzC,KAEEhV,EAAOlhB,GAAGyX,iBAAiB5Q,GAC3BnJ,KAAKiX,WAAW9N,GAChB,MAAMzB,GAENyB,EAAK/B,YAAYoc,EAAOlhB,GAAG8U,mBAC3BoM,EAAOlhB,GAAGsX,WAAWzQ,IAGzB,MAAO+I,IAGT0kC,mBAAoB,SAASD,GAC3B,GAEIE,GACAC,EACA9pC,EAJAmnB,EAAcn0B,KAAK+C,IAAIoE,cAAc,OACrC1E,EAAQwG,MAAMpE,YAAY7E,KAAK+C,IASnC,IAJAoxB,EAAYtL,UAAY8tB,EAAY9tB,UAEpC7oB,KAAK2wC,SAASlwC,SAASs2C,KAAK,cAAeJ,EAAY1xC,SAAU0xC,EAAY9tB,WAC7EguB,EAAkB72C,KAAK2zC,QAAQ9mB,iBAAiB,IAAM8pB,EAAY9tB,WAC9DguB,EAAgB,GAOlB,IANAA,EAAgB,GAAGptC,WAAWsB,aAAaopB,EAAa0iB,EAAgB,IAExEp0C,EAAMkU,eAAekgC,EAAgB,IACrCp0C,EAAMqU,YAAY+/B,EAAgBA,EAAgBt0C,OAAS,IAC3Du0C,EAAer0C,EAAM2U,kBAEd0/B,EAAa9pC,YAElB,GADAA,EAAa8pC,EAAa9pC,WACC,GAAvBA,EAAWxF,UAAiBjH,EAAUG,IAAIo0B,SAAS9nB,EAAY2pC,EAAY9tB,WAAY,CACzF,KAAO7b,EAAWA,YAChBmnB,EAAY/sB,YAAY4F,EAAWA,WAET,QAAxBA,EAAW/H,UAAqBkvB,EAAY/sB,YAAYpH,KAAK+C,IAAIoE,cAAc,OACnF2vC,EAAah/B,YAAY9K,OAEzBmnB,GAAY/sB,YAAY4F,OAI5BmnB,GAAc,IAGhB,OAAOA,IAUT6iB,eAAgB,WACd,GASI5D,GATArwC,EAAgB/C,KAAK+C,IACrBk0C,EAAgB,EAChBC,EAAgBn0C,EAAI0L,gBAAgB0oC,aAAep0C,EAAI0L,gBAAgB+zB,aACvErO,EAAgBpxB,EAAIq0C,gCAAkCr0C,EAAIq0C,iCAAmC,WAC3F,GAAI/vB,GAAUtkB,EAAIoE,cAAc,OAGhC,OADAkgB,GAAQ9Z,UAAYhN,EAAUS,gBACvBqmB,IAIT6vB,KACFl3C,KAAK4Z,WAAWua,GAChBif,EAAYF,EAAwB/e,GACpCA,EAAY1qB,WAAWqO,YAAYqc,GAC/Bif,GAAcrwC,EAAIC,KAAKszC,UAAYvzC,EAAI0L,gBAAgB+zB,aAAeyU,IACxEl0C,EAAIC,KAAKszC,UAAYlD,KAQ3BiE,WAAY,WACN92C,EAAUirB,QAAQgE,0BACpBxvB,KAAKs3C,kBACIt3C,KAAK+C,IAAIjC,WAClBd,KAAKu3C,oBAOTD,gBAAiB,WACf,GAAIzxC,GAAY7F,KAAK+C,IAAI4I,YACrB7K,EAAY+E,EAAIkb,cACpBjgB,GAAU02C,OAAO,OAAQ,OAAQ,gBACjC12C,EAAU02C,OAAO,SAAU,QAAS,iBAGtCD,iBAAkB,WAChB,GAGIE,GACAC,EACAC,EACAr1C,EACAguC,EAPA7tC,EAAczC,KAAK+C,IAAIjC,UAAU+D,cACjC+yC,EAAcn1C,EAAMo1C,YACpBC,EAAc93C,KAAK+C,IAAIC,KAAK80C,WAOhC,IAAKr1C,EAAMs1C,YAAX,CAeA,IAXiB,IAAbH,IAGFD,EAAc33C,KAAK+C,IAAIoE,cAAc,QACrCnH,KAAK4Z,WAAW+9B,GAChBC,EAAWD,EAAYvE,UACvBuE,EAAYluC,WAAWqO,YAAY6/B,IAGrCC,GAAY,EAEPt1C,EAAE,IAAOw1C,EAAFx1C,EAAeA,GAAG,EAC5B,IACEG,EAAMs1C,YAAYz1C,EAAGs1C,EACrB,OACA,MAAMnpB,IAOV,IAFAgpB,EAAcG,EACdF,EAAW13C,KAAK+C,IAAIjC,UAAU+D,cACzByrC,EAAEwH,EAAaxH,GAAG,EAAGA,IACxB,IACEoH,EAASK,YAAYzH,EAAGmH,EACxB,OACA,MAAM9oB,IAGVlsB,EAAM8c,YAAY,WAAYm4B,GAC9Bj1C,EAAMugB,WAGRg1B,QAAS,WACP,GAAIl3C,GAAYd,KAAK+gB,cACrB,OAAOjgB,GAAYA,EAAUR,WAAa,IAG5Ckb,SAAU,SAAShU,EAAUoK,GAC3B,GAAInP,GAAQzC,KAAK6zC,UACjB,OAAIpxC,GACKA,EAAM+Y,UAAUhU,GAAWoK,OAMtCqmC,iBAAkB,SAASx1C,GACzB,GAAIzC,KAAK2zC,SAAW3zC,KAAK2zC,QAAQ3mC,YAAcvK,EAAO,CACpD,GAAIy1C,GAAcz1C,EAAM4X,YAAYra,KAAK2zC,QACzC,IAAoB,IAAhBuE,EACkB,IAAhBA,GACFz1C,EAAMkU,eAAe3W,KAAK2zC,QAAQ3mC,YAEhB,IAAhBkrC,GACFz1C,EAAMqU,YAAY9W,KAAK2zC,QAAQz5B,WAEb,IAAhBg+B,IACFz1C,EAAMkU,eAAe3W,KAAK2zC,QAAQ3mC,YAClCvK,EAAMqU,YAAY9W,KAAK2zC,QAAQz5B,gBAE5B,IAAIla,KAAKm4C,2BAA2B11C,GAAQ,CACjD,GAAI6gC,GAAyB7gC,EAAMiN,aAAa4zB,sBAC5CA,IACF7gC,EAAM+T,OAAO8sB,EAAwBtjC,KAAKo4C,kBAAkB9U,OAMpE8U,kBAAmB,SAASjvC,GAC1B,GAAI1G,GAAQmC,SAASC,aAErB,OADApC,GAAMuU,mBAAmB7N,GAClB1G,EAAM8N,WAGf4nC,2BAA4B,SAAS11C,GAEnC,MADA6I,UAAW5K,EAAIu0B,wBAAwBxyB,EAAMgN,eAAgBhN,EAAMiN,cAE9C,GAAnBjN,EAAM8N,WACK,EAAXjF,UAIJuoC,SAAU,SAASwE,GACjB,GAAIv3C,GAAYd,KAAK+gB,eACjBte,EAAQ3B,GAAaA,EAAUihB,YAAcjhB,EAAU6iB,WAAW,EAMtE,OAJI00B,MAAY,GACdr4C,KAAKi4C,iBAAiBx1C,GAGjBA,GAGTqyC,kBAAmB,WACjB,GAAIwD,GAAiB53C,EAAI2mC,MAAMrnC,KAAK2zC,QAAS,IAAM3zC,KAAK4zC,mBACpD2E,EAAkB73C,EAAI2mC,MAAMiR,EAAgB,IAAMt4C,KAAK4zC,kBAE3D,OAAOrzC,GAAUM,KAAKyvB,MAAMgoB,GAAgB9nB,QAAQ+nB,IAMtDhE,aAAc,WACZ,GAEIiE,GAFAh1B,KACAklB,EAAI1oC,KAAK6zC,UAKb,IAFInL,GAAKllB,EAAOtb,KAAKwgC,GAEjB1oC,KAAK4zC,mBAAqB5zC,KAAK2zC,SAAWjL,EAAG,CAC7C,GACI+P,GADA5D,EAAc70C,KAAK80C,mBAEvB,IAAID,EAAYtyC,OAAS,EACvB,IAAK,GAAID,GAAI,EAAGo2C,EAAO7D,EAAYtyC,OAAYm2C,EAAJp2C,EAAUA,IAAK,CACxDk2C,IACA,KAAK,GAAIlI,GAAI,EAAGqI,EAAOn1B,EAAOjhB,OAAYo2C,EAAJrI,EAAUA,IAAK,CACnD,GAAI9sB,EAAO8sB,GACT,OAAQ9sB,EAAO8sB,GAAGj2B,YAAYw6B,EAAYvyC,KACxC,IAAK,GAEL,KACA,KAAK,GAEHm2C,EAAWj1B,EAAO8sB,GAAG13B,aACrB6/B,EAAS5hC,aAAag+B,EAAYvyC,IAClCk2C,EAAUtwC,KAAKuwC,GAEfA,EAAWj1B,EAAO8sB,GAAG13B,aACrB6/B,EAAS7hC,cAAci+B,EAAYvyC,IACnCk2C,EAAUtwC,KAAKuwC,EACjB,MACA,SAEED,EAAUtwC,KAAKsb,EAAO8sB,IAG5B9sB,EAASg1B,IAKnB,MAAOh1B,IAGTzC,aAAc,WACZ,MAAO9X,OAAM8X,aAAa/gB,KAAK+C,IAAI4I,aAAe3L,KAAK+C,IAAI6I,eAG7DmoC,aAAc,SAAStxC,GACrB,GAAIoD,GAAY7F,KAAK+C,IAAI4I,aAAe3L,KAAK+C,IAAI6I,aAC7C9K,EAAYmI,MAAM8X,aAAalb,EACnC,OAAO/E,GAAU8iB,eAAenhB,IAGlCoC,YAAa,WACX,MAAOoE,OAAMpE,YAAY7E,KAAK+C,MAGhCwb,YAAa,WACT,MAAOve,MAAK+gB,eAAexC,aAG/BszB,SAAU,WACR,GAAI3wB,GAAMlhB,KAAK+gB,cACfG,IAAOA,EAAIuE,sBAIdllB,WASH,SAAUA,EAAW0I,GAKnB,QAAS6rB,GAAS5tB,EAAI0xC,EAAUC,GAC9B,IAAK3xC,EAAG2hB,UACN,OAAO,CAGT,IAAIiwB,GAAqB5xC,EAAG2hB,UAAU8C,MAAMktB,MAC5C,OAAOC,GAAmBA,EAAmBv2C,OAAS,KAAOq2C,EAG/D,QAASG,GAAa7xC,EAAI2xC,GACxB,IAAK3xC,EAAG+nB,eAAiB/nB,EAAG+nB,aAAa,SACvC,OAAO,CAEY/nB,GAAG+nB,aAAa,SAAStD,MAAMktB,EACpD,OAAS3xC,GAAG+nB,aAAa,SAAStD,MAAMktB,IAAW,GAAO,EAG5D,QAAS3Z,GAASh4B,EAAIsxB,EAAUqgB,GAC1B3xC,EAAG+nB,aAAa,UAClB+pB,EAAY9xC,EAAI2xC,GACZ3xC,EAAG+nB,aAAa,WAAa,QAAU7c,KAAKlL,EAAG+nB,aAAa,UAC9D/nB,EAAG2mB,aAAa,QAAS2K,EAAW,IAAMtxB,EAAG+nB,aAAa,UAE1D/nB,EAAG2mB,aAAa,QAAS2K,IAG3BtxB,EAAG2mB,aAAa,QAAS2K,GAI7B,QAAS5D,GAAS1tB,EAAI0xC,EAAUC,GAC1B3xC,EAAG2hB,WACLkM,EAAY7tB,EAAI2xC,GAChB3xC,EAAG2hB,WAAa,IAAM+vB,GAEtB1xC,EAAG2hB,UAAY+vB,EAInB,QAAS7jB,GAAY7tB,EAAI2xC,GACnB3xC,EAAG2hB,YACL3hB,EAAG2hB,UAAY3hB,EAAG2hB,UAAUlJ,QAAQk5B,EAAQ,KAIhD,QAASG,GAAY9xC,EAAI2xC,GACvB,GAAI34C,GACA+4C,IACJ,IAAI/xC,EAAG+nB,aAAa,SAAU,CAC5B/uB,EAAIgH,EAAG+nB,aAAa,SAASgE,MAAM,IACnC,KAAK,GAAI3wB,GAAIpC,EAAEqC,OAAQD,KAChBpC,EAAEoC,GAAGqpB,MAAMktB,IAAY,QAAUzmC,KAAKlS,EAAEoC,KAC3C22C,EAAG/wC,KAAKhI,EAAEoC,GAGV22C,GAAG12C,OACL2E,EAAG2mB,aAAa,QAASorB,EAAGhnC,KAAK,MAEjC/K,EAAG6kC,gBAAgB,UAKzB,QAASmN,GAAuBhyC,EAAIwhB,GAClC,GAAIywB,MACAC,EAAS1wB,EAAMuK,MAAM,KACrBomB,EAAUnyC,EAAG+nB,aAAa,QAE9B,IAAIoqB,EAAS,CACXA,EAAUA,EAAQ15B,QAAQ,OAAQ,IAAIza,cACtCi0C,EAAQjxC,KAAK,GAAI8J,QAAO,YAAc0W,EAAM/I,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQza,cAAcya,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAE3M,KAAK,GAAIrd,GAAI82C,EAAO72C,OAAQD,IAAM,GAC3B,QAAU8P,KAAKgnC,EAAO92C,KACzB62C,EAAQjxC,KAAK,GAAI8J,QAAO,YAAconC,EAAO92C,GAAGqd,QAAQ,OAAQ,IAAIA,QAAQ,aAAc,QAAQza,cAAcya,QAAQ,IAAK,MAAMA,QAAQ,iCAAkC,iCAAkC,MAGnN,KAAK,GAAI2wB,GAAI,EAAGqI,EAAOQ,EAAQ52C,OAAYo2C,EAAJrI,EAAUA,IAC/C,GAAI+I,EAAQ1tB,MAAMwtB,EAAQ7I,IACxB,MAAO6I,GAAQ7I,GAKrB,OAAO,EAGT,QAASgJ,GAAoBpyC,EAAIwhB,EAAOmwB,GAEtC,GAAIU,GAAaL,EAAuBhyC,EAAIwhB,EAC5C,OAAI6wB,IAEFP,EAAY9xC,EAAIqyC,GACT,WAGPra,EAASh4B,EAAIwhB,EAAOmwB,GACb,UAIX,QAASW,GAAeC,EAAKC,GAC3B,MAAOD,GAAI5wB,UAAUlJ,QAAQg6B,EAAqB,MAAQD,EAAI7wB,UAAUlJ,QAAQg6B,EAAqB,KAGvG,QAASC,GAAuB1yC,GAE9B,IADA,GAAIsC,GAAStC,EAAGuC,WACTvC,EAAG8F,YACRxD,EAAOuB,aAAa7D,EAAG8F,WAAY9F,EAEjCsC,GAAO8f,WACT9f,EAAO8f,YAET9f,EAAOsO,YAAY5Q,GAGrB,QAAS2yC,GAAmCJ,EAAKC,GAC/C,GAAID,EAAIld,WAAWh6B,QAAUm3C,EAAInd,WAAWh6B,OAC1C,OAAO,CAET,KAAK,GAAwCu3C,GAAOC,EAAOh0C,EAAlDzD,EAAI,EAAGoD,EAAM+zC,EAAIld,WAAWh6B,OAAgCmD,EAAJpD,IAAWA,EAG1E,GAFAw3C,EAAQL,EAAIld,WAAWj6B,GACvByD,EAAO+zC,EAAM/zC,KACD,SAARA,EAAiB,CAEnB,GADAg0C,EAAQL,EAAInd,WAAWyd,aAAaj0C,GAChC+zC,EAAMG,WAAaF,EAAME,UAC3B,OAAO,CAET,IAAIH,EAAMG,WAAaH,EAAMxlB,YAAcylB,EAAMzlB,UAC/C,OAAO,EAIb,OAAO,EAGT,QAAS4lB,GAAa/wC,EAAMoC,GAC1B,MAAItC,GAAMvI,IAAI+J,oBAAoBtB,GAClB,GAAVoC,IACOpC,EAAKQ,gBACL4B,GAAUpC,EAAK5G,SACf4G,EAAK2B,aAEP,EAIJS,EAAS,GAAKA,EAASpC,EAAK5B,WAAWhF,OAGhD,QAAS43C,GAAYhxC,EAAMixC,EAAgBC,EAAkB7/B,GAC3D,GAAIrP,EAYJ,IAXIlC,EAAMvI,IAAI+J,oBAAoB2vC,KACR,GAApBC,GACFA,EAAmBpxC,EAAMvI,IAAIgJ,aAAa0wC,GAC1CA,EAAiBA,EAAe3wC,YACvB4wC,GAAoBD,EAAe73C,QAC5C83C,EAAmBpxC,EAAMvI,IAAIgJ,aAAa0wC,GAAkB,EAC5DA,EAAiBA,EAAe3wC,YAEhC0B,EAAUlC,EAAMvI,IAAIsK,cAAcovC,EAAgBC,MAGjDlvC,GACEqP,GAAa4/B,IAAmB5/B,GAAW,CAE9CrP,EAAUivC,EAAehvC,WAAU,GAC/BD,EAAQmC,IACVnC,EAAQ4gC,gBAAgB,KAG1B,KADA,GAAIt+B,GACIA,EAAQ2sC,EAAe7yC,WAAW8yC,IACxClvC,EAAQ/D,YAAYqG,EAEtBxE,GAAMvI,IAAIiK,YAAYQ,EAASivC,GAInC,MAAQA,IAAkBjxC,EAAQgC,EAAWgvC,EAAYhxC,EAAMgC,EAAQ1B,WAAYR,EAAMvI,IAAIgJ,aAAayB,GAAUqP,GAGtH,QAAS8/B,GAAMC,GACbv6C,KAAKw6C,eAAkBD,EAAU/yC,UAAYjH,EAAUW,aACvDlB,KAAKy6C,cAAgBz6C,KAAKw6C,eAAiBD,EAAUrgC,UAAYqgC,EACjEv6C,KAAKub,WAAavb,KAAKy6C,eAsCzB,QAASC,GAAYC,EAAU/B,EAAUgC,EAAoBtxB,EAAWkP,EAAUqiB,EAAoBrgC,GACpGxa,KAAK26C,SAAWA,IAAaG,GAC7B96C,KAAK44C,SAAWA,IAAcA,KAAa,GAAS,EAAQ,IAC5D54C,KAAK46C,mBAAqBA,EAC1B56C,KAAKw4B,SAAWA,GAAY,GAC5Bx4B,KAAK66C,mBAAqBA,EAC1B76C,KAAKspB,UAAYA,EACjBtpB,KAAK+6C,mBAAoB,EACzB/6C,KAAKwa,UAAYA,EA1OnB,GAAIsgC,GAAiB,OAEjBnB,EAAsB,MA6L1BW,GAAM16C,WACJo7C,QAAS,WAEP,IAAK,GADc7sC,GAAU3E,EAAQkW,EAAjCu7B,KACK34C,EAAI,EAAGoD,EAAM1F,KAAKub,UAAUhZ,OAAYmD,EAAJpD,IAAWA,EACtD6L,EAAWnO,KAAKub,UAAUjZ,GAC1BkH,EAAS2E,EAAS1E,WAClBwxC,EAAS34C,GAAK6L,EAASf,KACnB9K,IACFkH,EAAOsO,YAAY3J,GACd3E,EAAOyQ,iBACVzQ,EAAOC,WAAWqO,YAAYtO,GAKpC,OADAxJ,MAAKy6C,cAAcrtC,KAAOsS,EAAOu7B,EAAShpC,KAAK,IACxCyN,GAGTw7B,UAAW,WAET,IADA,GAAI54C,GAAItC,KAAKub,UAAUhZ,OAAQmD,EAAM,EAC9BpD,KACLoD,GAAO1F,KAAKub,UAAUjZ,GAAGC,MAE3B,OAAOmD,IAGTpF,SAAU,WAER,IAAK,GADD26C,MACK34C,EAAI,EAAGoD,EAAM1F,KAAKub,UAAUhZ,OAAYmD,EAAJpD,IAAWA,EACtD24C,EAAS34C,GAAK,IAAMtC,KAAKub,UAAUjZ,GAAG8K,KAAO,GAE/C,OAAO,UAAY6tC,EAAShpC,KAAK,KAAO,OAe5CyoC,EAAY96C,WACVu7C,qBAAsB,SAAShyC,GAE7B,IADA,GAAIiyC,GACGjyC,GAAM,CAEX,GADAiyC,EAAgBp7C,KAAK44C,SAAW9jB,EAAS3rB,EAAMnJ,KAAK44C,SAAU54C,KAAK46C,oBAAyC,KAAlB56C,KAAKw4B,UAAmB,GAAQ,EACtHrvB,EAAK3B,UAAYjH,EAAUW,cAAwD,SAAxCiI,EAAK8lB,aAAa,oBAAkChmB,EAAMvI,IAAIwJ,cAAclK,KAAK26C,SAAUxxC,EAAKkD,QAAQnH,gBAAkBk2C,EACvK,MAAOjyC,EAETA,GAAOA,EAAKM,WAEd,OAAO,GAIT4xC,qBAAsB,SAASlyC,GAE7B,IADA,GAAImyC,GACGnyC,GAAM,CAGX,GAFAmyC,EAAgBt7C,KAAKw4B,SAAWugB,EAAa5vC,EAAMnJ,KAAK66C,qBAAsB,EAE1E1xC,EAAK3B,UAAYjH,EAAUW,cAAwD,SAAxCiI,EAAK8lB,aAAa,oBAAiChmB,EAAMvI,IAAIwJ,cAAclK,KAAK26C,SAAUxxC,EAAKkD,QAAQnH,gBAAkBo2C,EACtK,MAAOnyC,EAETA,GAAOA,EAAKM,WAEd,OAAO,GAIT8xC,UAAW,SAAShgC,EAAW9Y,GAU7B,IAAK,GAPY+4C,GAKbrtC,EAAUstC,EAPVlB,EAAYh/B,EAAU,GAAImgC,EAAWngC,EAAUA,EAAUhZ,OAAS,GAElEo5C,KAEAC,EAAiBrB,EAAWsB,EAAeH,EAC3CI,EAAmB,EAAGC,EAAiBL,EAASn5C,OAI3CD,EAAI,EAAGoD,EAAM6V,EAAUhZ,OAAYmD,EAAJpD,IAAWA,EACjD6L,EAAWoN,EAAUjZ,GACrBm5C,EAAoB,KAChBttC,GAAYA,EAAS1E,aACvBgyC,EAAoBz7C,KAAKg8C,6BAA6B7tC,EAAS1E,YAAY,IAEzEgyC,GACGD,IACHA,EAAe,GAAIlB,GAAMmB,GACzBE,EAAOzzC,KAAKszC,IAEdA,EAAajgC,UAAUrT,KAAKiG,GACxBA,IAAaosC,IACfqB,EAAiBJ,EAAaf,cAC9BqB,EAAmBF,EAAer5C,QAEhC4L,IAAautC,IACfG,EAAeL,EAAaf,cAC5BsB,EAAiBP,EAAaN,cAGhCM,EAAe,IAInB,IAAGE,GAAYA,EAASjyC,WAAY,CAClC,GAAIwyC,GAAej8C,KAAKg8C,6BAA6BN,EAASjyC,YAAY,EACtEwyC,KACGT,IACHA,EAAe,GAAIlB,GAAMoB,GACzBC,EAAOzzC,KAAKszC,IAEdA,EAAajgC,UAAUrT,KAAK+zC,IAIhC,GAAIN,EAAOp5C,OAAQ,CACjB,IAAKD,EAAI,EAAGoD,EAAMi2C,EAAOp5C,OAAYmD,EAAJpD,IAAWA,EAC1Cq5C,EAAOr5C,GAAG04C,SAGZv4C,GAAM8T,SAASqlC,EAAgBE,GAC/Br5C,EAAM+T,OAAOqlC,EAAcE,KAI/BC,6BAA8B,SAAS7yC,EAAM+yC,GACzC,GAEIC,GAFAC,EAAcjzC,EAAK3B,UAAYjH,EAAUY,UACzC+F,EAAKk1C,EAAajzC,EAAKM,WAAaN,EAEpCqF,EAAW0tC,EAAU,cAAgB,iBACzC,IAAIE,GAGF,GADAD,EAAehzC,EAAKqF,GAChB2tC,GAAgBA,EAAa30C,UAAYjH,EAAUY,UACrD,MAAOg7C,OAKT,IADAA,EAAej1C,EAAGsH,GACd2tC,GAAgBn8C,KAAKq8C,qBAAqBlzC,EAAMgzC,GAClD,MAAOA,GAAaD,EAAU,aAAe,YAGjD,OAAO,OAGXG,qBAAsB,SAAS5C,EAAKC,GAClC,MAAOzwC,GAAMvI,IAAIwJ,cAAclK,KAAK26C,UAAWlB,EAAIptC,SAAW,IAAInH,gBAC7D+D,EAAMvI,IAAIwJ,cAAclK,KAAK26C,UAAWjB,EAAIrtC,SAAW,IAAInH,gBAC3Ds0C,EAAeC,EAAKC,IACpBG,EAAmCJ,EAAKC,IAG/C4C,gBAAiB,SAASv5C,GACxB,GAAImE,GAAKnE,EAAIoE,cAAcnH,KAAK26C,SAAS,GAOzC,OANI36C,MAAK44C,WACP1xC,EAAG2hB,UAAY7oB,KAAK44C,UAElB54C,KAAKw4B,UACPtxB,EAAG2mB,aAAa,QAAS7tB,KAAKw4B,UAEzBtxB,GAGTq1C,gBAAiB,SAASpuC,GACxB,GAAI3E,GAAS2E,EAAS1E,UACtB,IAAgC,GAA5BD,EAAOjC,WAAWhF,QAAe0G,EAAMvI,IAAIwJ,cAAclK,KAAK26C,SAAUnxC,EAAO6C,QAAQnH,eAErFlF,KAAK44C,UACPhkB,EAASprB,EAAQxJ,KAAK44C,SAAU54C,KAAK46C,oBAEnC56C,KAAKw4B,UACP0G,EAAS11B,EAAQxJ,KAAKw4B,SAAUx4B,KAAK66C,wBAElC,CACL,GAAI3zC,GAAKlH,KAAKs8C,gBAAgBrzC,EAAMvI,IAAI8K,YAAY2C,GACpDA,GAAS1E,WAAWsB,aAAa7D,EAAIiH,GACrCjH,EAAGE,YAAY+G,KAInBquC,YAAa,SAASt1C,GACpB,MAAO+B,GAAMvI,IAAIwJ,cAAclK,KAAK26C,SAAUzzC,EAAGmF,QAAQnH,gBACF,KAA/C3E,EAAUM,KAAK6xB,OAAOxrB,EAAG2hB,WAAW+J,UAEjC1rB,EAAG+nB,aAAa,UAC0C,KAA3D1uB,EAAUM,KAAK6xB,OAAOxrB,EAAG+nB,aAAa,UAAU2D,SAI5D6pB,eAAgB,SAAStuC,EAAU1L,EAAOi6C,EAAmBC,GAC3D,GAAIC,GAAY,GAAsB,GAAQ,EAC1CxyC,EAAWsyC,GAAqBC,EAChCE,GAAe,CACnB,KAAKp6C,EAAMwY,aAAa7Q,GAAW,CAEjC,GAAI0yC,GAAgBr6C,EAAMmW,YACtBkkC,GAAc7lC,WAAW7M,GAEzB0yC,EAAcpiC,eAAejY,EAAMiN,aAAcjN,EAAM8N,YAAc2pC,EAAaz3C,EAAMiN,aAAcjN,EAAM8N,aAC5G4pC,EAAY/vC,EAAU3H,EAAMiN,aAAcjN,EAAM8N,UAAWvQ,KAAKwa,WAChE/X,EAAMqU,YAAY1M,IAElB0yC,EAAcpiC,eAAejY,EAAMgN,eAAgBhN,EAAM6N,cAAgB4pC,EAAaz3C,EAAMgN,eAAgBhN,EAAM6N,eAClHlG,EAAW+vC,EAAY/vC,EAAU3H,EAAMgN,eAAgBhN,EAAM6N,YAAatQ,KAAKwa,aAIhFoiC,GAAa58C,KAAK46C,oBACrB7lB,EAAY3qB,EAAUpK,KAAK46C,oBAGzBgC,GAAa58C,KAAK66C,qBACpBgC,EAA0F,WAA1EvD,EAAoBlvC,EAAUpK,KAAKw4B,SAAUx4B,KAAK66C,qBAEhE76C,KAAKw8C,YAAYpyC,KAAcyyC,GACjCjD,EAAuBxvC,IAI3B2yC,aAAc,SAASt6C,GAEnB,IAAK,GADD8Y,GACKyhC,EAAKv6C,EAAMF,OAAQy6C,KAAO,CAG/B,GAFAzhC,EAAY9Y,EAAMu6C,GAAIxhC,UAAUjb,EAAUY,aAErCoa,EAAUhZ,OACb,IACE,GAAI4G,GAAOnJ,KAAKs8C,gBAAgB75C,EAAMu6C,GAAIttC,aAAajE,cAGvD,OAFAhJ,GAAMu6C,GAAIjjC,iBAAiB5Q,OAC3BnJ,MAAKiX,WAAWxU,EAAMu6C,GAAK7zC,GAE3B,MAAMzB,IAKV,GAFAjF,EAAMu6C,GAAIxlC,kBACV+D,EAAY9Y,EAAMu6C,GAAIxhC,UAAUjb,EAAUY,YACtCoa,EAAUhZ,OAAQ,CAGpB,IAAK,GAFD4L,GAEK7L,EAAI,EAAGoD,EAAM6V,EAAUhZ,OAAYmD,EAAJpD,IAAWA,EACjD6L,EAAWoN,EAAUjZ,GAChBtC,KAAKm7C,qBAAqBhtC,IAC7BnO,KAAKu8C,gBAAgBpuC,GAElBnO,KAAKq7C,qBAAqBltC,IAC7BnO,KAAKu8C,gBAAgBpuC,EAIzB1L,GAAMu6C,GAAIzmC,SAASgF,EAAU,GAAI,GACjCpN,EAAWoN,EAAUA,EAAUhZ,OAAS,GACxCE,EAAMu6C,GAAIxmC,OAAOrI,EAAUA,EAAS5L,QAEhCvC,KAAKspB,WACPtpB,KAAKu7C,UAAUhgC,EAAW9Y,EAAMu6C,OAO5CC,YAAa,SAASx6C,GAGpB,IAAK,GAFD8Y,GAAWpN,EAAUuuC,EAAmBC,EAEnCK,EAAKv6C,EAAMF,OAAQy6C,KAAO,CAE/B,GADAzhC,EAAY9Y,EAAMu6C,GAAIxhC,UAAUjb,EAAUY,YACtCoa,EAAUhZ,OACZE,EAAMu6C,GAAIxlC,kBACV+D,EAAY9Y,EAAMu6C,GAAIxhC,UAAUjb,EAAUY,gBACrC,CACL,GAAI4B,GAAMN,EAAMu6C,GAAIttC,aAAajE,cAC7BtC,EAAOpG,EAAIqL,eAAe7N,EAAUS,gBACxCyB,GAAMu6C,GAAIpjC,WAAWzQ,GACrB1G,EAAMu6C,GAAI/lC,WAAW9N,GACrBoS,GAAapS,GAIf,IAAK,GAAI7G,GAAI,EAAGoD,EAAM6V,EAAUhZ,OAAYmD,EAAJpD,IAAWA,EAC7CG,EAAMu6C,GAAIxgC,YACZrO,EAAWoN,EAAUjZ,GACrBo6C,EAAoB18C,KAAKm7C,qBAAqBhtC,GAC9CwuC,EAAoB38C,KAAKq7C,qBAAqBltC,GAC1CuuC,EACF18C,KAAKy8C,eAAetuC,EAAU1L,EAAMu6C,GAAKN,GAChCC,GACT38C,KAAKy8C,eAAetuC,EAAU1L,EAAMu6C,IAAK,EAAOL,GAK3C,IAAPj3C,EACF1F,KAAKiX,WAAWxU,EAAMu6C,GAAKzhC,EAAU,KAErC9Y,EAAMu6C,GAAIzmC,SAASgF,EAAU,GAAI,GACjCpN,EAAWoN,EAAUA,EAAUhZ,OAAS,GACxCE,EAAMu6C,GAAIxmC,OAAOrI,EAAUA,EAAS5L,QAEhCvC,KAAKspB,WACPtpB,KAAKu7C,UAAUhgC,EAAW9Y,EAAMu6C,OAO1C/lC,WAAY,SAASxU,EAAO0G,GAC1B,GAAIgrC,GAAkBhrC,EAAK3B,WAAajH,EAAUW,aAC9Cyd,EAAkB,eAAiBxV,GAAOA,EAAKwV,aAAc,EAC7D3E,EAAkBm6B,EAAYhrC,EAAKoE,UAAYpE,EAAKiE,KACpD45B,EAA+B,KAAZhtB,GAAkBA,IAAYzZ,EAAUS,eAE/D,IAAIgmC,GAAWmN,GAAax1B,EAE1B,IAAMxV,EAAKoE,UAAYhN,EAAUS,gBAAmB,MAAM0G,IAE5DjF,EAAMuU,mBAAmB7N,GACrB69B,GAAWmN,EACb1xC,EAAMsU,UAAS,GACNiwB,IACTvkC,EAAMmU,cAAczN,GACpB1G,EAAMqU,YAAY3N,KAItB+zC,uBAAwB,SAAS/uC,EAAU1L,GACzC,GAAIob,GAAYpb,EAAMmW,YACtBiF,GAAU7G,mBAAmB7I,EAE7B,IAAI2M,GAAoB+C,EAAUhD,aAAapY,GAC3Cid,EAAO5E,EAAoBA,EAAkBxa,WAAa,EAG9D,OAFAud,GAAU7Y,SAEH0a,GAGTy9B,iBAAkB,SAAS16C,GAIzB,IAAK,GAFD2H,GAAyBmR,EADzBtR,KAGK+yC,EAAKv6C,EAAMF,OAAQy6C,KAAO,CAGjC,GADAzhC,EAAY9Y,EAAMu6C,GAAIxhC,UAAUjb,EAAUY,aACrCoa,EAAUhZ,OAKb,MAJA6H,GAAWpK,KAAKm7C,qBAAqB14C,EAAMu6C,GAAIvtC,gBAC1CrF,IACHA,EAAWpK,KAAKq7C,qBAAqB54C,EAAMu6C,GAAIvtC,iBAE1CrF,GAAYA,IAAY,CAGjC,KAAK,GAAmCgzC,GAA/B96C,EAAI,EAAGoD,EAAM6V,EAAUhZ,OAA0BmD,EAAJpD,IAAWA,EAC/D86C,EAAep9C,KAAKk9C,uBAAuB3hC,EAAUjZ,GAAIG,EAAMu6C,IAC/D5yC,EAAWpK,KAAKm7C,qBAAqB5/B,EAAUjZ,IAC1C8H,IACHA,EAAWpK,KAAKq7C,qBAAqB9/B,EAAUjZ,KAE7C8H,GAA4B,IAAhBgzC,GACdnzC,EAAU/B,KAAKkC,GAMrB,MAAQH,GAAgB,OAAIA,GAAY,GAG1CozC,YAAa,SAAS56C,GAChBzC,KAAKm9C,iBAAiB16C,GACxBzC,KAAKi9C,YAAYx6C,GAEjBzC,KAAK+8C,aAAat6C,KAKxBlC,EAAUO,UAAU45C,YAAcA,GAEjCn6C,UAAW0I,OAOd1I,UAAU+8C,SAAWpzB,KAAKnjB,QAExBwO,YAAa,SAASixB,GACpBxmC,KAAKwmC,OAAWA,EAChBxmC,KAAK2wC,SAAWnK,EAAOmK,SACvB3wC,KAAK+C,IAAW/C,KAAK2wC,SAAS5tC,KAUhCw6C,QAAS,SAAShvB,GAChB,MAAOhuB,WAAUirB,QAAQyC,gBAAgBjuB,KAAK+C,IAAKwrB,IAWrDwoB,KAAM,SAASxoB,EAASzD,GACtB,GAAI9jB,GAAUzG,UAAUE,SAAS8tB,GAC7B9X,EAAUlW,UAAUM,KAAKyvB,MAAM3nB,WAAW9I,MAC1CkrB,EAAU/jB,GAAOA,EAAI+vC,KACrByG,EAAU,IAId,IAFAx9C,KAAKwmC,OAAO7U,KAAK,0BAEb5G,EACFtU,EAAK+wB,QAAQxnC,KAAK2wC,UAClB6M,EAASzyB,EAAOrD,MAAM1gB,EAAKyP,OAE3B,KAEE+mC,EAASx9C,KAAK+C,IAAIypB,YAAY+B,GAAS,EAAOzD,GAC9C,MAAMpjB,IAIV,MADA1H,MAAKwmC,OAAO7U,KAAK,yBACV6rB,GAaTC,MAAO,SAASlvB,GACd,GAAIvnB,GAAUzG,UAAUE,SAAS8tB,GAC7B9X,EAAUlW,UAAUM,KAAKyvB,MAAM3nB,WAAW9I,MAC1CkrB,EAAU/jB,GAAOA,EAAIy2C,KACzB,IAAI1yB,EAEF,MADAtU,GAAK+wB,QAAQxnC,KAAK2wC,UACX5lB,EAAOrD,MAAM1gB,EAAKyP,EAEzB,KAEE,MAAOzW,MAAK+C,IAAI2pB,kBAAkB6B,GAClC,MAAM7mB,GACN,OAAO,IAMbg2C,WAAY,SAASnvB,GACnB,GAAIvnB,GAAUzG,UAAUE,SAAS8tB,GAC7B9X,EAAUlW,UAAUM,KAAKyvB,MAAM3nB,WAAW9I,MAC1CkrB,EAAU/jB,GAAOA,EAAI02C,UACzB,OAAI3yB,IACFtU,EAAK+wB,QAAQxnC,KAAK2wC,UACX5lB,EAAOrD,MAAM1gB,EAAKyP,KAElB,KAIZlW,UAAUE,SAASk9C,MAClB5G,KAAM,SAASpG,EAAUpiB,GACvBhuB,UAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,MAGpEkvB,MAAO,SAAS9M,EAAUpiB,GAMxB,MAAOhuB,WAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,OAInE,SAAUhuB,GAKT,QAASu9C,GAAQnN,EAAUpU,GACzB,GAIIh6B,GACAw7C,EACAh6B,EACAi6B,EACAhX,EACAiX,EACA1b,EACA2b,EACA5N,EAZAvtC,EAAkB4tC,EAAS5tC,IAC3Bo7C,EAAkB,qBAAuB,GAAI51B,MAC7C61B,EAAkB,sBAClB97C,EAAkB,CAatB,KAHA/B,EAAUE,SAASm9C,aAAa7G,KAAKpG,EAAU0N,EAAOC,EAAWH,EAAWC,EAAiBC,EAAOA,GAAO,GAAM,GACjHN,EAAUh7C,EAAI8pB,iBAAiByxB,EAAY,IAAMH,GACjD57C,EAAUw7C,EAAQx7C,OACTA,EAAFD,EAAUA,IAAK,CACpByhB,EAASg6B,EAAQz7C,GACjByhB,EAAOgoB,gBAAgB,QACvB,KAAKuE,IAAK/T,GAEE,SAAN+T,GACFvsB,EAAO8J,aAAayiB,EAAG/T,EAAW+T,IAKxC2N,EAAyBl6B,EACV,IAAXxhB,IACFggC,EAAc7hC,EAAIymC,eAAepjB,GACjCi6B,IAAoBj6B,EAAO6I,cAAc,KACzCoa,EAA0B,KAAhBzE,GAAsBA,IAAgBhiC,EAAUS,iBACrDg9C,GAAmBhX,IACtBtmC,EAAIwmC,eAAenjB,EAAQwY,EAAW7c,MAAQqE,EAAOgd,MACrDmd,EAAan7C,EAAIqL,eAAe,KAChCuiC,EAAS7vC,UAAUmzC,SAASlwB,GAC5BrjB,EAAIw1B,OAAOgoB,GAAY/nB,MAAMpS,GAC7Bk6B,EAAyBC,IAG7BvN,EAAS7vC,UAAUmzC,SAASgK,GAI9B,QAASM,GAAa5N,EAAUoN,EAASxhB,GAEvC,IAAK,GADDiiB,GACK7gB,EAAIogB,EAAQx7C,OAAQo7B,KAAM,CAGjC6gB,EAAWT,EAAQpgB,GAAGpB,UACtB,KAAK,GAAIkiB,GAAKD,EAASj8C,OAAQk8C,KAC7BV,EAAQpgB,GAAGoO,gBAAgByS,EAAS97B,KAAK+7B,GAAI14C,KAI/C,KAAK,GAAIuqC,KAAK/T,GACRA,EAAWz1B,eAAewpC,IAC5ByN,EAAQpgB,GAAG9P,aAAayiB,EAAG/T,EAAW+T,KA9D9C,GAAI+N,GACAC,EAAY,IACZ59C,EAAYH,EAAUG,GAmE1BH,GAAUE,SAASi+C,YAajB3H,KAAM,SAASpG,EAAUpiB,EAASzD,GAChC,GAAIizB,GAAU/9C,KAAKy9C,MAAM9M,EAAUpiB,EAC/BwvB,GAEFpN,EAAS7vC,UAAUi1C,kBAAkB,WACnCwI,EAAa5N,EAAUoN,EAASjzB,MAIlCA,EAA0B,gBAAZ,GAAuBA,GAAUiW,KAAMjW,GACrDgzB,EAAQnN,EAAU7lB,KAItB2yB,MAAO,SAAS9M,EAAUpiB,GACxB,MAAOhuB,GAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,QAGnEhuB,WACF,SAAUA,GAGT,QAASo+C,GAAchO,EAAUoN,GAM/B,IALA,GAEIh6B,GACA66B,EACArc,EAJAhgC,EAAUw7C,EAAQx7C,OAClBD,EAAU,EAILC,EAAFD,EAAUA,IACfyhB,EAAcg6B,EAAQz7C,GACtBs8C,EAAcl+C,EAAIs3B,iBAAiBjU,GAAU9e,SAAU,SACvDs9B,EAAc7hC,EAAIymC,eAAepjB,GAI7Bwe,EAAY5W,MAAMjrB,EAAI0yB,SAASK,eAAiBmrB,EAElDA,EAAcl+C,EAAIgiC,cAAc3e,EAAQ,QAExCrjB,EAAImiC,sBAAsB9e,GAnBhC,GAAIrjB,GAAMH,EAAUG,GAwBpBH,GAAUE,SAASo+C,YASjB9H,KAAM,SAASpG,EAAUpiB,GACvB,GAAIwvB,GAAU/9C,KAAKy9C,MAAM9M,EAAUpiB,EAC/BwvB,IACFpN,EAAS7vC,UAAUi1C,kBAAkB,WACnC4I,EAAchO,EAAUoN,MAK9BN,MAAO,SAAS9M,EAAUpiB,GACxB,MAAOhuB,GAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,QAGnEhuB,WAMH,SAAUA,GACR,GAAIsgC,GAAU,gCAEdtgC,GAAUE,SAASq+C,UACjB/H,KAAM,SAASpG,EAAUpiB,EAASwwB,GAC9Bx+C,EAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,OAAQ,qBAAuBwwB,EAAMle,IAG3G4c,MAAO,SAAS9M,EAAUpiB,EAASwwB,GACjC,MAAOx+C,GAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,OAAQ,qBAAuBwwB,EAAMle,MAGxGtgC,WAEH,SAAUA,GACR,GAAIsgC,GAAU,mCAEdtgC,GAAUE,SAASu+C,eACjBjI,KAAM,SAASpG,EAAUpiB,EAASwwB,GAChCA,EAAwB,gBAAV,GAAsBA,EAAKA,KAAOA,EAC3C,QAAU3sC,KAAK2sC,IAClBx+C,EAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,QAAQ,GAAO,EAAO,aAAewwB,EAAMle,IAIjH4c,MAAO,SAAS9M,EAAUpiB,GACxB,MAAOhuB,GAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,QAAQ,GAAO,EAAO,YAAasS,IAGrG6c,WAAY,SAAS/M,EAAUpiB,GAC7B,GACI0wB,GADAC,EAAKl/C,KAAKy9C,MAAM9M,EAAUpiB,EAO9B,OAHI2wB,IAAM3+C,EAAUM,KAAKuqB,OAAO8zB,GAAI9+C,YAChC8+C,EAAKA,EAAG,IAERA,IACFD,EAAWC,EAAGjwB,aAAa,UAElB1uB,EAAUI,OAAO2xC,YAAYW,cAAcgM,IAG/C,KAGV1+C,WAMH,SAAUA,GACR,GAAIsgC,GAAU,0BAEdtgC,GAAUE,SAAS0+C,WACjBpI,KAAM,SAASpG,EAAUpiB,EAAS6wB,GAC9B7+C,EAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,OAAQ,iBAAmB6wB,EAAOve,IAGxG4c,MAAO,SAAS9M,EAAUpiB,EAAS6wB,GACjC,MAAO7+C,GAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,OAAQ,iBAAmB6wB,EAAOve,MAGrGtgC,WAMH,SAAUA,GACR,GAAIsgC,GAAU,+BAEdtgC,GAAUE,SAAS4+C,gBACjBtI,KAAM,SAASpG,EAAUpiB,EAAS6wB,GAChC,GACIE,GADAC,EAAah/C,EAAUI,OAAO2xC,YAAYC,WAA6B,gBAAX,GAAuB,SAAW6M,EAAMA,MAAQ,SAAWA,EAAO,QAG9HG,KACFD,EAAY,cAAgBC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,KAChE,IAAjBA,EAAU,KACZD,GAAa,eAAiBC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,MAE9Gh/C,EAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,QAAQ,GAAO,EAAO+wB,EAAWze,KAIvG4c,MAAO,SAAS9M,EAAUpiB,GACxB,MAAOhuB,GAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,QAAQ,GAAO,EAAO,QAASsS,IAGjG6c,WAAY,SAAS/M,EAAUpiB,EAASlsB,GACtC,GACIm9C,GADAN,EAAKl/C,KAAKy9C,MAAM9M,EAAUpiB,EAO9B,OAJI2wB,IAAM3+C,EAAUM,KAAKuqB,OAAO8zB,GAAI9+C,YAClC8+C,EAAKA,EAAG,IAGNA,IACFM,EAAWN,EAAGjwB,aAAa,SACvBuwB,GACEA,IACFnxC,IAAM9N,EAAUI,OAAO2xC,YAAYC,WAAWiN,EAAU,SACjDj/C,EAAUI,OAAO2xC,YAAYU,aAAa3kC,IAAKhM,KAIrD,KAIV9B,WAEH,SAAUA,GACR,GAAIsgC,GAAU,0CAEdtgC,GAAUE,SAASg/C,cACjB1I,KAAM,SAASpG,EAAUpiB,EAAS6wB,GAChC,GACIE,GADAC,EAAah/C,EAAUI,OAAO2xC,YAAYC,WAA6B,gBAAX,GAAuB,oBAAsB6M,EAAMA,MAAQ,oBAAsBA,EAAO,mBAGpJG,KACFD,EAAY,yBAA2BC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,KAC3E,IAAjBA,EAAU,KACZD,GAAa,0BAA4BC,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,MAEzHh/C,EAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,QAAQ,GAAO,EAAO+wB,EAAWze,KAIvG4c,MAAO,SAAS9M,EAAUpiB,GACxB,MAAOhuB,GAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,QAAQ,GAAO,EAAO,mBAAoBsS,IAG5G6c,WAAY,SAAS/M,EAAUpiB,EAASlsB,GACtC,GACIm9C,GADAN,EAAKl/C,KAAKy9C,MAAM9M,EAAUpiB,GAE1BlgB,GAAM,CAMV,OAJI6wC,IAAM3+C,EAAUM,KAAKuqB,OAAO8zB,GAAI9+C,YAClC8+C,EAAKA,EAAG,IAGNA,IACFM,EAAWN,EAAGjwB,aAAa,WAEzB5gB,EAAM9N,EAAUI,OAAO2xC,YAAYC,WAAWiN,EAAU,oBACjDj/C,EAAUI,OAAO2xC,YAAYU,aAAa3kC,EAAKhM,KAGnD,KAIV9B,WACF,SAAUA,GAWT,QAASm/C,GAAUr4B,EAASwB,EAAWwP,GACjChR,EAAQwB,WACV82B,EAAat4B,EAASgR,GACtBhR,EAAQwB,UAAYtoB,EAAUM,KAAK6xB,OAAOrL,EAAQwB,UAAY,IAAMA,GAAW+J,QAE/EvL,EAAQwB,UAAYA,EAIxB,QAAS+2B,GAAUv4B,EAASmR,EAAUC,GACpConB,EAAax4B,EAASoR,GAClBpR,EAAQ4H,aAAa,SACvB5H,EAAQwG,aAAa,QAASttB,EAAUM,KAAK6xB,OAAOrL,EAAQ4H,aAAa,SAAW,IAAMuJ,GAAU5F,QAEpGvL,EAAQwG,aAAa,QAAS2K,GAIlC,QAASmnB,GAAat4B,EAASgR,GAC7B,GAAIkP,GAAMlP,EAAYjmB,KAAKiV,EAAQwB,UAKnC,OAJAxB,GAAQwB,UAAYxB,EAAQwB,UAAUlJ,QAAQ0Y,EAAa,IACJ,IAAnD93B,EAAUM,KAAK6xB,OAAOrL,EAAQwB,WAAW+J,QACzCvL,EAAQ0kB,gBAAgB,SAErBxE,EAGT,QAASsY,GAAax4B,EAASoR,GAC7B,GAAI8O,GAAM9O,EAAYrmB,KAAKiV,EAAQ4H,aAAa,SAKhD,OAJA5H,GAAQwG,aAAa,SAAUxG,EAAQ4H,aAAa,UAAY,IAAItP,QAAQ8Y,EAAa,KAChB,IAArEl4B,EAAUM,KAAK6xB,OAAOrL,EAAQ4H,aAAa,UAAY,IAAI2D,QAC7DvL,EAAQ0kB,gBAAgB,SAEnBxE,EAMT,QAASuY,GAAiB32C,GACxB,MAAOA,GAAK3B,WAAajH,EAAUY,YAAcZ,EAAUM,KAAK6xB,OAAOvpB,EAAKiE,MAAMwlB,OAMpF,QAASmtB,GAAkC52C,GAEzC,IADA,GAAIQ,GAAkBR,EAAKQ,gBACpBA,GAAmBm2C,EAAiBn2C,IACzCA,EAAkBA,EAAgBA,eAEpC,OAAOA,GAMT,QAASq2C,GAA8B72C,GAErC,IADA,GAAI2B,GAAc3B,EAAK2B,YAChBA,GAAeg1C,EAAiBh1C,IACrCA,EAAcA,EAAYA,WAE5B,OAAOA,GAOT,QAASm1C,GAA4B92C,GACnC,GAAIpG,GAAkBoG,EAAKsC,cACvBX,EAAkBk1C,EAA8B72C,GAChDQ,EAAkBo2C,EAAkC52C,EAEpD2B,KAAgBo1C,EAA2Bp1C,IAC7C3B,EAAKM,WAAWsB,aAAahI,EAAIoE,cAAc,MAAO2D,GAEpDnB,IAAoBu2C,EAA2Bv2C,IACjDR,EAAKM,WAAWsB,aAAahI,EAAIoE,cAAc,MAAOgC,GAO1D,QAASg3C,GAA+Bh3C,GACtC,GAAI2B,GAAkBk1C,EAA8B72C,GAChDQ,EAAkBo2C,EAAkC52C,EAEpD2B,IAAei4B,EAAaj4B,IAC9BA,EAAYrB,WAAWqO,YAAYhN,GAEjCnB,GAAmBo5B,EAAap5B,IAClCA,EAAgBF,WAAWqO,YAAYnO,GAI3C,QAASy2C,GAA4Bj3C,GACnC,GAAI+Q,GAAY/Q,EAAK+Q,SACjBA,IAAa6oB,EAAa7oB,IAC5BA,EAAUzQ,WAAWqO,YAAYoC,GAIrC,QAAS6oB,GAAa55B,GACpB,MAAyB,OAAlBA,EAAKlE,SAOd,QAASi7C,GAA2B74B,GAClC,MAAI0b,GAAa1b,IACR,EAGqC,UAA1C3mB,EAAIs1B,SAAS,WAAWC,KAAK5O,IACxB,GAGF,EAkCT,QAASg5B,GAAe1P,EAAU2P,GAC5B3P,EAAS7vC,UAAUyd,eACnBoyB,EAAS7vC,UAAUu2C,YAIvB,KAAK,GADDkJ,GAAkB5P,EAAS7vC,UAAU41C,SAAS4J,GACzCh+C,EAAI,EAAGo2C,EAAO6H,EAAgBh+C,OAAYm2C,EAAJp2C,EAAUA,IACvD69C,EAA+BI,EAAgBj+C,IAC/C89C,EAA4BG,EAAgBj+C,IAOhD,QAASk+C,GAAYn5B,GACnB,QAAS9mB,EAAUM,KAAK6xB,OAAOrL,EAAQwB,WAAW+J,OAGpD,QAAS6tB,GAAWp5B,GAClB,QAAS9mB,EAAUM,KAAK6xB,OAAOrL,EAAQ4H,aAAa,UAAY,IAAI2D,OAzLtE,GAAIlyB,GAA0BH,EAAUG,IAIpCggD,GAA2B,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,MAAO,aAAc,MAwL7FngD,GAAUE,SAAS0tB,aACjB4oB,KAAM,SAASpG,EAAUpiB,EAAStpB,EAAU4jB,EAAWwP,EAAaG,EAAUC,GAC5E,GAIIkoB,GAAeC,EAAmBC,EAAkBC,EAHpDC,GADkBpQ,EAAS5tC,IACR/C,KAAKy9C,MAAM9M,EAAUpiB,EAAStpB,EAAU4jB,EAAWwP,EAAaG,EAAUC,IAC7FyK,EAAkByN,EAAS5sC,OAAOm/B,cAClC8d,EAAkB9d,EAAgB,MAAQ,GAI9C,OAFAj+B,GAAgC,gBAAf,GAA0BA,EAASm0B,cAAgBn0B,EAEhE87C,EAAcx+C,WAChBouC,GAAS7vC,UAAUg1C,uBAAuB,WACxC,IAAK,GAAImL,GAAIF,EAAcx+C,OAAQ0+C,KAAM,CAQvC,GAPI5oB,IACFuoB,EAAoBjB,EAAaoB,EAAcE,GAAI5oB,IAEjDI,IACFqoB,EAAoBjB,EAAakB,EAAcE,GAAIxoB,KAGhDqoB,GAAqBF,IAAmC,OAAb37C,GAAqB87C,EAAcE,GAAGh8C,UAAY+7C,EAEhG,MAGF,IAAIE,GAAaV,EAAYO,EAAcE,IACvCE,EAAYV,EAAWM,EAAcE,GAEpCC,IAAeC,IAAcje,GAA8B,MAAbj+B,EAOjDvE,EAAIgiC,cAAcqe,EAAcE,GAAiB,MAAbh8C,EAAmB,MAAQ+7C,IAJ/Df,EAA4Bc,EAAcE,IAC1CvgD,EAAImiC,sBAAsBke,EAAcE,cAY/B,OAAbh8C,IAAqB1E,EAAUM,KAAKyvB,MAAMowB,GAAsB/kC,SAAS1W,KAC3E07C,EAAgBhQ,EAAS7vC,UAAU4zC,qBAAqBgM,GAAsB3mB,OAAO4W,EAAS7vC,UAAUwzC,uBACxG3D,EAAS7vC,UAAUg1C,uBAAuB,WACxC,IAAK,GAAI9rC,GAAI22C,EAAcp+C,OAAQyH,KACjCo3C,aAAe1gD,EAAIs3B,iBAAiB2oB,EAAc32C,IAChD/E,SAAUy7C,IAERU,cAAgBzQ,EAAStpB,UAC3B+5B,aAAe,MAEbA,eAEIn8C,IACFm8C,aAAe1gD,EAAIgiC,cAAc0e,aAAcn8C,IAE7C4jB,GACF62B,EAAU0B,aAAcv4B,EAAWwP,GAEjCG,GACFonB,EAAUwB,aAAc5oB,EAAUC,GAEtCooB,GAAmB,MAMrBA,KAKNR,EAAe1P,GACb1rC,SAAaA,GAAY+7C,EACzBn4B,UAAaA,GAAa,KAC1B2P,SAAYA,GAAY,SAI5BilB,MAAO,SAAS9M,EAAUpiB,EAAStpB,EAAU4jB,EAAWwP,EAAaG,EAAUC,GAC7E,GAEIjvB,GAFA0I,EAAQy+B,EAAS7vC,UAAUwzC,sBAC3BxE,IAGJ7qC,GAAgC,gBAAf,GAA0BA,EAASm0B,cAAgBn0B,CAGpE,KAAK,GAAI3C,GAAI,EAAGmyC,EAAOviC,EAAM3P,OAAYkyC,EAAJnyC,EAAUA,IAC7CkH,EAAS9I,EAAIs3B,iBAAiB9lB,EAAM5P,IAClC2C,SAAcA,EACd4jB,UAAcA,EACdwP,YAAcA,EACdG,SAAcA,EACdC,YAAcA,IAEZjvB,GAA2D,IAAjDjJ,EAAUM,KAAKyvB,MAAMwf,GAAS9jB,QAAQxiB,IAClDsmC,EAAQ5nC,KAAKsB,EAGjB,OAAsB,IAAlBsmC,EAAQvtC,QACH,EAEFutC,KAKVvvC,WASHA,UAAUE,SAAS4gD,YAEjBtK,KAAM,SAASpG,EAAUpiB,EAAS+yB,GAChC,GACIpzC,GAAMzL,EAAOk+C,EADbY,EAAMvhD,KAAKy9C,MAAM9M,EAEjB4Q,GAEF5Q,EAAS7vC,UAAUi1C,kBAAkB,WACnC7nC,EAAOqzC,EAAI30B,cAAc,QACzBrsB,UAAUG,IAAImiC,sBAAsB0e,GAChCrzC,GACF3N,UAAUG,IAAImiC,sBAAsB30B,MAKxCzL,EAAQkuC,EAAS7vC,UAAU+yC,WAC3B8M,EAAgBl+C,EAAM2U,kBACtBmqC,EAAM5Q,EAAS5tC,IAAIoE,cAAc,OACjC+G,EAAOyiC,EAAS5tC,IAAIoE,cAAc,QAE9Bm6C,IACFpzC,EAAK2a,UAAYy4B,GAGnBC,EAAIn6C,YAAY8G,GAChBA,EAAK9G,YAAYu5C,GACjBl+C,EAAMmX,WAAW2nC,GACjB5Q,EAAS7vC,UAAUmW,WAAWsqC,KAIlC9D,MAAO,SAAS9M,GACd,GAAI6Q,GAAe7Q,EAAS7vC,UAAUuzC,iBACtC,OAAImN,IAAgBA,EAAav8C,UAAqC,OAAzBu8C,EAAav8C,UACtDu8C,EAAax0C,YAAcw0C,EAAax0C,WAAW/H,UAAgD,QAApCu8C,EAAax0C,WAAW/H,SAClFu8C,EAEAjhD,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,UAAa1E,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,UAoC5I,SAAU1E,GAUR,QAASkhD,GAAap1C,GACpB,GAAIq1C,GAAQC,EAAct1C,EAC1B,OAAOq1C,IAASr1C,EAAQnH,cAAew8C,EAAMx8C,gBAAkBmH,EAAQnH,eAGzE,QAAS08C,GAAYv1C,EAASwc,EAAWwP,EAAaG,EAAUC,EAAaje,GAC3E,GAAIqnC,GAAax1C,CAajB,OAXIwc,KACFg5B,GAAc,IAAMh5B,GAElB2P,IACFqpB,GAAc,IAAMrpB,GAGjBspB,EAAYD,KACfC,EAAYD,GAAc,GAAIthD,GAAUO,UAAU45C,YAAY+G,EAAap1C,GAAUwc,EAAWwP,GAAa,EAAMG,EAAUC,EAAaje,IAGrIsnC,EAAYD,GA5BrB,GACIF,IACEI,OAAU,IACVC,GAAU,IACVf,EAAU,SACV3+C,EAAU,MAEZw/C,IAwBJvhD,GAAUE,SAASm9C,cACjB7G,KAAM,SAASpG,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,EAAawpB,EAAmBC,GAC3G,GAAIz/C,GAAQkuC,EAAS7vC,UAAU+D,aAG/B,OAFIs9C,WAAYxR,EAAS7vC,UAAUyzC,eAE9B4N,WAAiC,GAApBA,UAAU5/C,QAG5BouC,EAAS7vC,UAAUigB,eAAe0E,kBAElCm8B,EAAYv1C,EAASwc,EAAWwP,EAAaG,EAAUC,EAAakY,EAAStpB,SAASg2B,YAAY8E,gBAE7FF,EAYOC,GACVvR,EAAS7U,WAZTr5B,EAAM8T,SAAS4rC,UAAU,GAAG1yC,eAAiB0yC,UAAU,GAAG7xC,aAC1D7N,EAAM+T,OACJ2rC,UAAUA,UAAU5/C,OAAS,GAAGmN,aAChCyyC,UAAUA,UAAU5/C,OAAS,GAAGgO,WAElCogC,EAAS7vC,UAAUizC,aAAatxC,GAChCkuC,EAAS7vC,UAAUi1C,kBAAkB,WAC9BmM,GACHvR,EAAS7U,YAEV,GAAM,OAjBF,GA0BX+hB,eAAgB,SAASlN,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,GACrF,GAAI2L,GAAOpkC,IAEX,IAAIA,KAAKy9C,MAAM9M,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,IAC3EkY,EAAS7vC,UAAUyd,gBAClBoyB,EAAS7vC,UAAUw0C,2BACnB3E,EAAS7vC,UAAU20C,0BACpB,CACA,GAAI2M,GAAgBhe,EAAKqZ,MAAM9M,EAAUpiB,EAASliB,EAASwc,EAAWwP,GAAa,EACnFsY,GAAS7vC,UAAUg1C,uBAAuB,WAC3BsM,EAAc34C,UAC3BknC,GAAS7vC,UAAUmW,WAAWmrC,GAAe,GAC7C7hD,EAAUE,SAASm9C,aAAa7G,KAAKpG,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,GAAa,GAAM,SAGpHz4B,MAAKy9C,MAAM9M,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,KAAiBkY,EAAS7vC,UAAUyd,cAC/GoyB,EAAS7vC,UAAUg1C,uBAAuB,WACxCv1C,EAAUE,SAASm9C,aAAa7G,KAAKpG,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,GAAa,GAAM,KAGxHl4B,EAAUE,SAASm9C,aAAa7G,KAAKpG,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,IAKzGglB,MAAO,SAAS9M,EAAUpiB,EAASliB,EAASwc,EAAWwP,EAAaG,EAAUC,GAC5E,GAEI0pB,GAFAp/C,EAAgB4tC,EAAS5tC,IACzBs/C,EAAgBV,EAAct1C,IAAYA,CAI9C,OAAK9L,GAAUG,IAAIs5B,sBAAsBj3B,EAAKsJ,IACzC9L,EAAUG,IAAIs5B,sBAAsBj3B,EAAKs/C,GAK1Cx5B,IAActoB,EAAUG,IAAI45B,wBAAwBv3B,EAAK8lB,IACnD,GAGVs5B,EAAYxR,EAAS7vC,UAAUyzC,eAE1B4N,GAAkC,IAArBA,EAAU5/C,OAIrBq/C,EAAYv1C,EAASwc,EAAWwP,EAAaG,EAAUC,EAAakY,EAAStpB,SAAS81B,iBAAiBgF,IAHrG,IAXA,KAiBZ5hD,WACFA,UAAUE,SAAS6tB,YAClByoB,KAAM,SAASpG,EAAUpiB,EAASqJ,GAC5B+Y,EAASlwC,SAAS88C,QAAQhvB,GAC5BoiB,EAAS5tC,IAAIypB,YAAY+B,GAAS,EAAOqJ,GAEzC+Y,EAAS7vC,UAAUwtB,WAAWsJ,IAIlC6lB,MAAO,WACL,OAAO,IAGV,SAAUl9C,GACT,GAAI+9C,GAAY,KAEhB/9C,GAAUE,SAAS6hD,aAWjBvL,KAAM,SAASpG,EAAUpiB,EAASzD,GAChCA,EAA0B,gBAAZ,GAAuBA,GAAUkV,IAAKlV,EAEpD,IAEI3c,GACA3E,EAHAzG,EAAU4tC,EAAS5tC,IACnBw/C,EAAUviD,KAAKy9C,MAAM9M,EAIzB,IAAI4R,EAeF,MAbA5R,GAAS7vC,UAAUkzC,UAAUuO,GAC7B/4C,EAAS+4C,EAAM94C,WACfD,EAAOsO,YAAYyqC,GAGnBhiD,EAAUG,IAAI+hC,qBAAqBj5B,GACX,MAApBA,EAAOvE,UAAqBuE,EAAOwD,aACrC2jC,EAAS7vC,UAAUmzC,SAASzqC,GAC5BA,EAAOC,WAAWqO,YAAYtO,QAIhCjJ,GAAUI,OAAOowC,OAAOJ,EAAStpB,QAInCk7B,GAAQx/C,EAAIoE,cAAcm3C,EAE1B,KAAK,GAAIh8C,KAAKwoB,GACZy3B,EAAM10B,aAAmB,cAANvrB,EAAoB,QAAUA,EAAGwoB,EAAMxoB,GAG5DquC,GAAS7vC,UAAU8Y,WAAW2oC,GAC1BhiD,EAAUirB,QAAQwE,mCACpB7hB,EAAWpL,EAAIqL,eAAe7N,EAAUS,iBACxC2vC,EAAS7vC,UAAU8Y,WAAWzL,GAC9BwiC,EAAS7vC,UAAUmzC,SAAS9lC,IAE5BwiC,EAAS7vC,UAAUmzC,SAASsO;EAIhC9E,MAAO,SAAS9M,GACd,GACI6Q,GACA9hC,EACA8iC,EAHAz/C,EAAM4tC,EAAS5tC,GAKnB,OAAKxC,GAAUG,IAAIs5B,sBAAsBj3B,EAAKu7C,KAI9CkD,EAAe7Q,EAAS7vC,UAAUuzC,mBAK9BmN,EAAav8C,WAAaq5C,EAErBkD,EAGLA,EAAah6C,WAAajH,EAAUW,cAC/B,GAGTwe,EAAOixB,EAAS7vC,UAAUk3C,WAC1Bt4B,EAAOnf,EAAUM,KAAK6xB,OAAOhT,GAAMkT,SAE1B,GAGT4vB,EAAoB7R,EAAS7vC,UAAU0a,SAASjb,EAAUW,aAAc,SAASiI,GAC/E,MAAyB,QAAlBA,EAAKlE,WAGmB,IAA7Bu9C,EAAkBjgD,QACb,EAGFigD,EAAkB,MA/BhB,KAkCZjiD,WACF,SAAUA,GACT,GAAIkiD,GAAa,QAAUliD,EAAUirB,QAAQiE,2BAA6B,IAAM,GAEhFlvB,GAAUE,SAASiiD,iBACjB3L,KAAM,SAASpG,EAAUpiB,GACnBoiB,EAASlwC,SAAS88C,QAAQhvB,IAC5BoiB,EAAS5tC,IAAIypB,YAAY+B,GAAS,EAAO,MACpChuB,EAAUirB,QAAQ2D,sBACrBwhB,EAAS7vC,UAAUk2C,kBAGrBrG,EAASlwC,SAASs2C,KAAK,aAAc0L,IAIzChF,MAAO,WACL,OAAO,KAGVl9C,WACFA,UAAUE,SAAS4tB,mBAClB0oB,KAAM,SAASpG,EAAUpiB,GACvB,GAKIyY,GACA7S,EANApxB,EAAgB4tC,EAAS5tC,IACzBy+C,EAAgB7Q,EAAS7vC,UAAUuzC,kBACnCjf,EAAgB70B,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,OACzE09C,EAAgBpiD,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,OACzE29C,EAAiB,oBAAqB,GAAIr6B,OAAOs6B,SAYrD,OAPIztB,KAASub,EAAStpB,QAAQ1L,SAASyZ,KACrCA,EAAO,MAELutB,IAAchS,EAAStpB,QAAQ1L,SAASgnC,KAC1CA,EAAY,MAGTvtB,GAASutB,IAAahS,EAASlwC,SAAS88C,QAAQhvB,QAKjD6G,EAKFub,EAAS7vC,UAAUi1C,kBAAkB,WACnCx1C,UAAUG,IAAIuiC,YAAY7N,EAAMub,EAAS5sC,OAAOm/B,iBAEzCyf,EAKThS,EAAS7vC,UAAUi1C,kBAAkB,WACnCx1C,UAAUG,IAAIgiC,cAAcigB,EAAW,QAIzChS,EAAS7vC,UAAUg1C,uBAAuB,WACxC3hB,EAAcwc,EAAS7vC,UAAU81C,oBAC/B3xC,SAAY,MACZ4jB,UAAa+5B,GAIf,IAAIliB,GAA0B,SAC9BvM,GAAY5mB,UAAY4mB,EAAY5mB,UAAUoS,QAAQ+gB,EAAyB,IAE3EvM,IACF6S,EAAoC,KAA1B7S,EAAY5mB,WAAoB4mB,EAAY5mB,YAAchN,UAAUS,iBAA6C,SAA1BmzB,EAAY5mB,UAC7G6nB,EAAO70B,UAAUG,IAAIw0B,cAAcf,EAAa,KAAMwc,EAASnnC,OAAOzF,OAAO++C,8BACzE9b,GACF2J,EAAS7vC,UAAUmW,WAAWme,EAAKxI,cAAc,OAAO,WApC9D7pB,GAAIypB,YAAY+B,GAAS,EAAO,OA2CpCkvB,MAAO,SAAS9M,GACd,GAAI6Q,GAAe7Q,EAAS7vC,UAAUuzC,kBAClClrC,EAAO5I,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,MAEpE,OAAQ0rC,GAAStpB,QAAQ1L,SAASxS,GAAQA,GAAO,IAGpD5I,UAAUE,SAAS2tB,qBAClB2oB,KAAM,SAASpG,EAAUpiB,GACvB,GAKIyY,GACA7S,EANApxB,EAAgB4tC,EAAS5tC,IACzBy+C,EAAgB7Q,EAAS7vC,UAAUuzC,kBACnCjf,EAAgB70B,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,OACzE09C,EAAgBpiD,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,OACzE29C,EAAiB,oBAAqB,GAAIr6B,OAAOs6B,SAYrD,OAPIztB,KAASub,EAAStpB,QAAQ1L,SAASyZ,KACrCA,EAAO,MAELutB,IAAchS,EAAStpB,QAAQ1L,SAASgnC,KAC1CA,EAAY,MAGTvtB,GAASutB,IAAahS,EAASlwC,SAAS88C,QAAQhvB,QAKjD6G,EAKFub,EAAS7vC,UAAUi1C,kBAAkB,WACnCx1C,UAAUG,IAAIuiC,YAAY7N,EAAMub,EAAS5sC,OAAOm/B,iBAEzCyf,EAKThS,EAAS7vC,UAAUi1C,kBAAkB,WACnCx1C,UAAUG,IAAIgiC,cAAcigB,EAAW,QAIzChS,EAAS7vC,UAAUg1C,uBAAuB,WACxC3hB,EAAcwc,EAAS7vC,UAAU81C,oBAC/B3xC,SAAY,MACZ4jB,UAAa+5B,GAIf,IAAIliB,GAA0B,SAC9BvM,GAAY5mB,UAAY4mB,EAAY5mB,UAAUoS,QAAQ+gB,EAAyB,IAE3EvM,IACF6S,EAAoC,KAA1B7S,EAAY5mB,WAAoB4mB,EAAY5mB,YAAchN,UAAUS,iBAA6C,SAA1BmzB,EAAY5mB,UAC7G6nB,EAAO70B,UAAUG,IAAIw0B,cAAcf,EAAa,KAAMwc,EAASnnC,OAAOzF,OAAO++C,8BACzE9b,GACF2J,EAAS7vC,UAAUmW,WAAWme,EAAKxI,cAAc,OAAO,WApC9D7pB,GAAIypB,YAAY+B,GAAS,EAAO,OA2CpCkvB,MAAO,SAAS9M,GACd,GAAI6Q,GAAe7Q,EAAS7vC,UAAUuzC,kBAClClrC,EAAO5I,UAAUG,IAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,MAEpE,OAAQ0rC,GAAStpB,QAAQ1L,SAASxS,GAAQA,GAAO,IAGpD5I,UAAUE,SAASsiD,QAClBhM,KAAM,SAASpG,EAAUpiB,GACvBhuB,UAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,MAGpEkvB,MAAO,SAAS9M,EAAUpiB,GAMxB,MAAOhuB,WAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,OAGnE,SAAUhuB,GACT,GAAIomC,GAAc,4BACd9F,EAAc,+BAElBtgC,GAAUE,SAASuiD,eACjBjM,KAAM,SAASpG,GACb,MAAOpwC,GAAUE,SAAS0tB,YAAY4oB,KAAKpG,EAAU,cAAe,KAAMhK,EAAY9F,IAGxF4c,MAAO,SAAS9M,GACd,MAAOpwC,GAAUE,SAAS0tB,YAAYsvB,MAAM9M,EAAU,cAAe,KAAMhK,EAAY9F,MAG1FtgC,WACF,SAAUA,GACT,GAAIomC,GAAc,0BACd9F,EAAc,+BAElBtgC,GAAUE,SAASwiD,aACjBlM,KAAM,SAASpG,GACb,MAAOpwC,GAAUE,SAAS0tB,YAAY4oB,KAAKpG,EAAU,cAAe,KAAMhK,EAAY9F,IAGxF4c,MAAO,SAAS9M,GACd,MAAOpwC,GAAUE,SAAS0tB,YAAYsvB,MAAM9M,EAAU,cAAe,KAAMhK,EAAY9F,MAG1FtgC,WACF,SAAUA,GACT,GAAIomC,GAAc,2BACd9F,EAAc,+BAElBtgC,GAAUE,SAASyiD,cACjBnM,KAAM,SAASpG,GACb,MAAOpwC,GAAUE,SAAS0tB,YAAY4oB,KAAKpG,EAAU,cAAe,KAAMhK,EAAY9F,IAGxF4c,MAAO,SAAS9M,GACd,MAAOpwC,GAAUE,SAAS0tB,YAAYsvB,MAAM9M,EAAU,cAAe,KAAMhK,EAAY9F,MAG1FtgC,WACF,SAAUA,GACT,GAAIomC,GAAc,6BACd9F,EAAc,+BAElBtgC,GAAUE,SAAS0iD,aACjBpM,KAAM,SAASpG,GACb,MAAOpwC,GAAUE,SAAS0tB,YAAY4oB,KAAKpG,EAAU,cAAe,KAAMhK,EAAY9F,IAGxF4c,MAAO,SAAS9M,GACd,MAAOpwC,GAAUE,SAAS0tB,YAAYsvB,MAAM9M,EAAU,cAAe,KAAMhK,EAAY9F,MAG1FtgC,WACF,SAAUA,GACT,GAAI6iD,GAAa,qBACbviB,EAAU,oCAEdtgC,GAAUE,SAAS4iD,iBACjBtM,KAAM,SAASpG,GACb,MAAOpwC,GAAUE,SAAS0tB,YAAY4oB,KAAKpG,EAAU,cAAe,KAAM,KAAM,KAAMyS,EAAWviB,IAGnG4c,MAAO,SAAS9M,GACd,MAAOpwC,GAAUE,SAAS0tB,YAAYsvB,MAAM9M,EAAU,cAAe,KAAM,KAAM,KAAMyS,EAAWviB,MAGrGtgC,WACF,SAAUA,GACT,GAAI6iD,GAAa,oBACbviB,EAAU,oCAEdtgC,GAAUE,SAAS6iD,gBACjBvM,KAAM,SAASpG,GACb,MAAOpwC,GAAUE,SAAS0tB,YAAY4oB,KAAKpG,EAAU,cAAe,KAAM,KAAM,KAAMyS,EAAWviB,IAGnG4c,MAAO,SAAS9M,GACd,MAAOpwC,GAAUE,SAAS0tB,YAAYsvB,MAAM9M,EAAU,cAAe,KAAM,KAAM,KAAMyS,EAAWviB,MAGrGtgC,WACF,SAAUA,GACT,GAAI6iD,GAAa,sBACbviB,EAAU,oCAEdtgC,GAAUE,SAAS8iD,kBACjBxM,KAAM,SAASpG,GACb,MAAOpwC,GAAUE,SAAS0tB,YAAY4oB,KAAKpG,EAAU,cAAe,KAAM,KAAM,KAAMyS,EAAWviB,IAGnG4c,MAAO,SAAS9M,GACd,MAAOpwC,GAAUE,SAAS0tB,YAAYsvB,MAAM9M,EAAU,cAAe,KAAM,KAAM,KAAMyS,EAAWviB,MAGrGtgC,WACFA,UAAUE,SAAS+iD,MAClBzM,KAAM,SAASpG,GACb,MAAOA,GAAS8S,YAAYD,QAG9B/F,MAAO,WACL,OAAO,IAGVl9C,UAAUE,SAASijD,WAClB3M,KAAM,SAASpG,EAAUpiB,GACvBhuB,UAAUE,SAASm9C,aAAaC,eAAelN,EAAUpiB,EAAS,MAGpEkvB,MAAO,SAAS9M,EAAUpiB,GACxB,MAAOhuB,WAAUE,SAASm9C,aAAaH,MAAM9M,EAAUpiB,EAAS,OAGnEhuB,UAAUE,SAASkjD,MAClB5M,KAAM,SAASpG,GACb,MAAOA,GAAS8S,YAAYE,QAG9BlG,MAAO,WACL,OAAO,IAGVl9C,UAAUE,SAASmjD,aAClB7M,KAAM,SAASpG,EAAUpiB,EAASzD,GAC9B,GAAIyf,GAAKjB,EAAK1R,CACd,IAAI9M,GAASA,EAAM+4B,MAAQ/4B,EAAMg5B,MAAQ9sB,SAASlM,EAAM+4B,KAAM,IAAM,GAAK7sB,SAASlM,EAAMg5B,KAAM,IAAM,EAAG,CAOnG,IALElsB,EADE9M,EAAMi5B,WACD,iBAAoBj5B,EAAMi5B,WAAa,KAEvC,UAETnsB,GAAQ,UACH0R,EAAM,EAAGA,EAAMxe,EAAMg5B,KAAMxa,IAAQ,CAEpC,IADA1R,GAAQ,OACH2S,EAAM,EAAGA,EAAMzf,EAAM+4B,KAAMtZ,IAC5B3S,GAAQ,iBAEZA,IAAQ,QAEZA,GAAQ,mBACR+Y,EAASlwC,SAASs2C,KAAK,aAAcnf,KAO7C6lB,MAAO,WACH,OAAO,IAGZl9C,UAAUE,SAASujD,iBAClBjN,KAAM,SAASpG,EAAUpiB,GACjBoiB,EAASsT,gBAAkBtT,EAASsT,eAAe/sC,OAASy5B,EAASsT,eAAe9sC,MAChFnX,KAAKy9C,MAAM9M,EAAUpiB,GACrBhuB,UAAUG,IAAI8nC,MAAM8G,YAAYqB,EAASsT,eAAe/sC,OAExD3W,UAAUG,IAAI8nC,MAAM6G,kBAAkBsB,EAASsT,eAAe/sC,MAAOy5B,EAASsT,eAAe9sC,OAKzGsmC,MAAO,SAAS9M,GACZ,GAAIA,EAASsT,eAAgB,CACzB,GAAI/sC,GAAQy5B,EAASsT,eAAe/sC,MAChCC,EAAMw5B,EAASsT,eAAe9sC,GAClC,IAAID,GAASC,GAAOD,GAASC,IAErB5W,UAAUG,IAAIuuB,aAAa/X,EAAO,YAClC8f,SAASz2B,UAAUG,IAAIuuB,aAAa/X,EAAO,WAAY,IAAM,GAE7D3W,UAAUG,IAAIuuB,aAAa/X,EAAO,YAClC8f,SAASz2B,UAAUG,IAAIuuB,aAAa/X,EAAO,WAAY,IAAM,GAGjE,OAAQA,GAGhB,OAAO,IAGZ3W,UAAUE,SAASyjD,eAClBnN,KAAM,SAASpG,EAAUpiB,EAASzD,GAC9B,GAAI6lB,EAASsT,gBAAkBtT,EAASsT,eAAe/sC,OAASy5B,EAASsT,eAAe9sC,IAAK,CAGzF,GAAIgtC,GAAc5jD,UAAUG,IAAI8nC,MAAM0C,mBAAmByF,EAASsT,eAAe/sC,MAAOy5B,EAASsT,eAAe9sC,IACnG,WAAT2T,GAA8B,SAATA,EACrBvqB,UAAUG,IAAI8nC,MAAM2G,SAASgV,EAAYjtC,MAAO4T,IAChC,SAATA,GAA6B,SAATA,IAC3BvqB,UAAUG,IAAI8nC,MAAM2G,SAASgV,EAAYhtC,IAAK2T,GAElD8a,WAAW,WACP+K,EAASsT,eAAejhC,OAAOmhC,EAAYjtC,MAAOitC,EAAYhtC,MAChE,KAIVsmC,MAAO,WACH,OAAO,IAGZl9C,UAAUE,SAAS2jD,kBAClBrN,KAAM,SAASpG,EAAUpiB,EAASzD,GAC9B,GAAI6lB,EAASsT,gBAAkBtT,EAASsT,eAAe/sC,OAASy5B,EAASsT,eAAe9sC,IAAK,CACzF,GAEIktC,GAFAF,EAAc5jD,UAAUG,IAAI8nC,MAAM0C,mBAAmByF,EAASsT,eAAe/sC,MAAOy5B,EAASsT,eAAe9sC,KAC5Gga,EAAM5wB,UAAUG,IAAI8nC,MAAMxc,QAAQm4B,EAAYjtC,OAE9CsxB,EAAQmI,EAASsT,eAAezb,KAEpCjoC,WAAUG,IAAI8nC,MAAM4G,YAAY+U,EAAYjtC,MAAO4T,GACnD8a,WAAW,WAEPye,EAAU9jD,UAAUG,IAAI8nC,MAAM+G,SAAS/G,EAAOrX,GAEzCkzB,IACY,OAATv5B,IACAu5B,EAAU9jD,UAAUG,IAAI8nC,MAAM+G,SAAS/G,GACnCc,IAAOnY,EAAImY,IAAM,EACjBiB,IAAOpZ,EAAIoZ,OAIN,UAATzf,IACAu5B,EAAU9jD,UAAUG,IAAI8nC,MAAM+G,SAAS/G,GACnCc,IAAOnY,EAAImY,IACXiB,IAAOpZ,EAAIoZ,IAAM,MAIzB8Z,GACA1T,EAASsT,eAAejhC,OAAOqhC,EAASA,IAE7C,KAKX5G,MAAO,WACH,OAAO,IAGZl9C,UAAUE,SAAS6jD,YAClBvN,KAAM,SAASpG,GACb,GAAI4T,GAAU5T,EAAS7vC,UAAUm0C,yBAAyB,KAC1D,OAAIsP,GACKvkD,KAAKwkD,iBAAiBD,EAAS5T,EAAS7vC,YAE1C,GAGT28C,MAAO,WACH,OAAO,GAGX+G,iBAAkB,SAASC,EAAS3jD,GAClC,GAAI4jD,GAAStvB,EAAMuvB,EAAQC,EAAQC,EAC/BC,GAAQ,CAuBZ,OArBAhkD,GAAUg1C,uBAAuB,WAE/B,IAAK,GAAIxzC,GAAImiD,EAAQliD,OAAQD,KAC3BsiD,EAASH,EAAQniD,GACjBoiD,EAA0C,OAA/BE,EAAOn7C,WAAWxE,SAAqB,KAAO,KACzDmwB,EAAOwvB,EAAOn5C,cAActE,cAAcu9C,GAC1CC,EAASpkD,UAAUG,IAAIs4B,mBAAmB4rB,GAC1CC,EAAa,EAAWF,EAAO/3B,cAAc,UAAY,KAErD+3B,IACEE,EACFA,EAAWz9C,YAAYw9C,IAEvBxvB,EAAKhuB,YAAYw9C,GACjBD,EAAOv9C,YAAYguB,IAErB0vB,GAAQ,KAKPA,IAGVvkD,UAAUE,SAASskD,aAClBhO,KAAM,SAASpG,GACb,GAAI4T,GAAU5T,EAAS7vC,UAAUm0C,yBAAyB,KAC1D,OAAIsP,GACKvkD,KAAKglD,iBAAiBT,EAAS5T,IAEjC,GAGT8M,MAAO,WACH,OAAO,GAGXuH,iBAAkB,SAASP,EAAS9T,GAClC,GAAIsU,GAAUC,EAAeC,EAA2BP,EAAQQ,EAC5DN,GAAQ,EACR1gB,EAAOpkC,IAgDX,OA9CA2wC,GAAS7vC,UAAUg1C,uBAAuB,WAExC,IAAK,GAAIxzC,GAAImiD,EAAQliD,OAAQD,KAE3B,GADAsiD,EAASH,EAAQniD,GACbsiD,EAAOn7C,aACTw7C,EAAWL,EAAOn7C,WAEO,OAArBw7C,EAAS54C,SAAyC,OAArB44C,EAAS54C,SAAkB,CAM1D,GALAy4C,GAAQ,EAERI,EAAgB3kD,UAAUG,IAAIs3B,iBAAiBitB,EAASx7C,YAAcxE,UAAW,KAAM,QAAQ,EAAO0rC,EAAStpB,SAC/G89B,EAAc5kD,UAAUG,IAAIs3B,iBAAiBitB,EAASx7C,YAAcxE,UAAW,QAAQ,EAAO0rC,EAAStpB,SAEnG69B,GAAiBC,EAEfP,EAAO95C,cACTs6C,EAAYhhB,EAAKihB,aAAaJ,EAAUL,GACxCA,EAAOx9C,YAAYg+C,IAErBF,EAAcn6C,aAAa65C,EAAQO,EAAYr6C,iBAE1C,CAED85C,EAAO95C,cACTs6C,EAAYhhB,EAAKihB,aAAaJ,EAAUL,GACxCA,EAAOx9C,YAAYg+C,GAGrB,KAAK,GAAI9U,GAAIsU,EAAOr9C,WAAWhF,OAAQ+tC,KACrC2U,EAASx7C,WAAWsB,aAAa65C,EAAOr9C,WAAW+oC,GAAI2U,EAASn6C,YAGlEm6C,GAASx7C,WAAWsB,aAAanG,SAASuC,cAAc,MAAO89C,EAASn6C,aACxE85C,EAAOn7C,WAAWqO,YAAY8sC,GAKG,IAA/BK,EAAS19C,WAAWhF,QACpB0iD,EAASx7C,WAAWqO,YAAYmtC,MAOrCH,GAGTO,aAAc,SAASJ,EAAUL,GAI/B,IAHA,GAAI3/C,GAAWggD,EAAShgD,SACpBqgD,EAAU1gD,SAASuC,cAAclC,GAE9B2/C,EAAO95C,aACZw6C,EAAQl+C,YAAYw9C,EAAO95C,YAE7B,OAAOw6C,KAOX,SAAU/kD,GACR,GAAIglD,GAAsB,GACtBC,EAAsB,GACtBpkD,EAAsB,EACtBI,EAAsB,GACtBikD,EAAsB,GACtBC,EAAsB,gCACtBC,EAAsB,kCAGtBjlD,GAFsB,sDAAwDH,EAAUS,gBAAkB,UACpF,sDAAwDT,EAAUS,gBAAkB,UACpFT,EAAUG,IASpCH,GAAUqlD,YAAcrlD,EAAUM,KAAKuwB,WAAWrqB,QAEhDwO,YAAa,SAASixB,GACpBxmC,KAAKwmC,OAASA,EACdxmC,KAAK2wC,SAAWnK,EAAOmK,SACvB3wC,KAAKqnB,QAAUrnB,KAAK2wC,SAAStpB,QAE7BrnB,KAAKsL,SAAW,EAChBtL,KAAK6lD,cACL7lD,KAAK8lD,cAEL9lD,KAAK+lD,WAEL/lD,KAAKgmD,YAGPA,SAAU,WACR,CAAA,GAEIC,GAFA7hB,EAAYpkC,IACAA,MAAK2wC,SAASuV,QAAQ16C,cAItC9K,EAAImxB,QAAQ7xB,KAAKqnB,QAAS,UAAW,SAASmQ,GAC5C,IAAIA,EAAM2uB,SAAY3uB,EAAM4uB,SAAY5uB,EAAM6uB,SAA9C,CAIA,GAAIC,GAAU9uB,EAAM8uB,QAChBC,EAASD,IAAYf,IAAU/tB,EAAMgvB,SACrCC,EAAUH,IAAYf,GAAS/tB,EAAMgvB,UAAcF,IAAYd,CAE/De,IACFniB,EAAKuf,OACLnsB,EAAM2D,kBACGsrB,IACTriB,EAAKof,OACLhsB,EAAM2D,qBAKVz6B,EAAImxB,QAAQ7xB,KAAKqnB,QAAS,UAAW,SAASmQ,GAC5C,GAAI8uB,GAAU9uB,EAAM8uB,OAChBA,KAAYL,IAIhBA,EAAUK,GAENA,IAAYllD,GAAiBklD,IAAY9kD,IAC3C4iC,EAAK2hB,cAIT/lD,KAAKwmC,OACFnV,GAAG,mBAAoB,WACtB+S,EAAK2hB,aAGN10B,GAAG,yBAA0B,WAC5B+S,EAAK2hB,cAIXA,SAAU,WACR,GAAIW,GAAoB1mD,KAAK6lD,WAAW7lD,KAAKsL,SAAW,GACpDq7C,EAAoB3mD,KAAK2wC,SAASiW,UAEtC,IAAID,IAAgBD,EAApB,CAIA,GAAInkD,GAASvC,KAAK6lD,WAAWtjD,OAASvC,KAAK8lD,WAAWvjD,OAASvC,KAAKsL,QAChE/I,GAASkjD,IACXzlD,KAAK6lD,WAAWhT,QAChB7yC,KAAK8lD,WAAWjT,QAChB7yC,KAAKsL,YAGPtL,KAAKsL,UAEL,IAGI+b,GACA/b,EAJA7I,EAAUzC,KAAK2wC,SAAS7vC,UAAU+yC,WAClC1qC,EAAW1G,GAASA,EAAMgN,eAAkBhN,EAAMgN,eAAiBzP,KAAKqnB,QACxE9b,EAAW9I,GAASA,EAAM6N,YAAe7N,EAAM6N,YAAc,CAI7DnH,GAAK3B,WAAajH,EAAUW,aAC9BmmB,EAAUle,GAEVke,EAAWle,EAAKM,WAChB6B,EAAWtL,KAAK6mD,kBAAkBx/B,EAASle,IAG7Cke,EAAQwG,aAAa83B,EAAkBp6C,GACd,mBAAf,IACR8b,EAAQwG,aAAa63B,EAAgBp6C,EAGvC,IAAIwO,GAAQ9Z,KAAKqnB,QAAQjc,YAAYu7C,EACrC3mD,MAAK8lD,WAAW59C,KAAK4R,GACrB9Z,KAAK6lD,WAAW39C,KAAKy+C,GAErBt/B,EAAQ0kB,gBAAgB4Z,GACxBt+B,EAAQ0kB,gBAAgB2Z,KAG1B/B,KAAM,WACJ3jD,KAAK+lD,WAEA/lD,KAAK8mD,iBAIV9mD,KAAKC,IAAID,KAAK8lD,aAAa9lD,KAAKsL,SAAW,IAC3CtL,KAAKwmC,OAAO7U,KAAK,mBAGnB6xB,KAAM,WACCxjD,KAAK+mD,iBAIV/mD,KAAKC,IAAID,KAAK8lD,aAAa9lD,KAAKsL,SAAW,IAC3CtL,KAAKwmC,OAAO7U,KAAK,mBAGnBm1B,aAAc,WACZ,MAAO9mD,MAAKsL,SAAW,GAGzBy7C,aAAc,WACZ,MAAO/mD,MAAKsL,SAAWtL,KAAK6lD,WAAWtjD,QAGzCtC,IAAK,SAAS+mD,GACZhnD,KAAKqnB,QAAQ9Z,UAAY,EAMzB,KAJA,GAAIjL,GAAI,EACJiF,EAAay/C,EAAaz/C,WAC1BhF,EAASykD,EAAaz/C,WAAWhF,OAE5BA,EAAFD,EAAUA,IACftC,KAAKqnB,QAAQjgB,YAAYG,EAAWjF,GAAG8I,WAAU,GAInD,IAAIG,GACApC,EACAmC,CAEA07C,GAAa3mB,aAAaslB,IAC5Bp6C,EAAYy7C,EAAa/3B,aAAa02B,GACtCr6C,EAAY07C,EAAa/3B,aAAay2B,GACtCv8C,EAAYnJ,KAAKqnB,UAEjBle,EAAYnJ,KAAKqnB,QAAQuF,cAAc,IAAM+4B,EAAmB,MAAQ3lD,KAAKqnB,QAC7E9b,EAAYpC,EAAK8lB,aAAa02B,GAC9Br6C,EAAYnC,EAAK8lB,aAAay2B,GAC9Bv8C,EAAK4iC,gBAAgB4Z,GACrBx8C,EAAK4iC,gBAAgB2Z,IAGN,OAAbp6C,IACFnC,EAAOnJ,KAAKinD,oBAAoB99C,GAAOmC,IAGzCtL,KAAK2wC,SAAS7vC,UAAUb,IAAIkJ,EAAMoC,IAGpCs7C,kBAAmB,SAASr9C,EAAQiE,GAIlC,IAHA,GAAInL,GAAc,EACdiF,EAAciC,EAAOjC,WACrBhF,EAAcgF,EAAWhF,OACpBA,EAAFD,EAAUA,IACf,GAAIiF,EAAWjF,KAAOmL,EACpB,MAAOnL,IAKb2kD,oBAAqB,SAASz9C,EAAQyB,GACpC,MAAOzB,GAAOjC,WAAW0D,OAG5B1K,WAIHA,UAAUQ,MAAMmmD,KAAOh9B,KAAKnjB,QAE1BwO,YAAa,SAAS/L,EAAQ29C,EAAiBpjD,GAC7C/D,KAAKwJ,OAAWA,EAChBxJ,KAAKqnB,QAAW8/B,EAChBnnD,KAAK+D,OAAWA,EACX/D,KAAK+D,OAAOqjD,YACbpnD,KAAKqnD,sBAIXA,mBAAoB,WAClB,GAAIjjB,GAAOpkC,IACXA,MAAKwJ,OAAO6nB,GAAG,aAAc,WAC3B+S,EAAK56B,OAAO6nB,GAAG,cAAe,SAASoV,GACjCA,IAASrC,EAAKr+B,MAChBq+B,EAAK56B,OAAO89C,YAAcljB,EAC1BA,EAAKmjB,OAEL3hB,WAAW,WAAaxB,EAAKpgB,SAAY,IAEzCogB,EAAKojB,YAMbxjC,MAAO,WACL,GAAIhkB,KAAKqnB,QAAQ5b,cAAcmhB,cAAc,YAAc5sB,KAAKqnB,QAIhE,IAAMrnB,KAAKqnB,QAAQrD,QAAW,MAAMtc,MAGtC8/C,KAAM,WACJxnD,KAAKqnB,QAAQqB,MAAME,QAAU,QAG/B2+B,KAAM,WACJvnD,KAAKqnB,QAAQqB,MAAME,QAAU,IAG/B6+B,QAAS,WACPznD,KAAKqnB,QAAQwG,aAAa,WAAY,aAGxC65B,OAAQ,WACN1nD,KAAKqnB,QAAQ0kB,gBAAgB,eAGhC,SAAUxrC,GACT,GAAIG,GAAYH,EAAUG,IACtB8qB,EAAYjrB,EAAUirB,OAE1BjrB,GAAUQ,MAAM4mD,SAAWpnD,EAAUQ,MAAMmmD,KAAKngD,QAE9ChB,KAAM,WAGN6hD,WAAY,OAEZryC,YAAa,SAAS/L,EAAQq+C,EAAiB9jD,GAC7C/D,KAAKuqB,KAAK/gB,EAAQq+C,EAAiB9jD,GAC9B/D,KAAK+D,OAAOqjD,WAGbpnD,KAAK6jC,aAAegkB,EAFpB7nD,KAAK8nD,SAAW9nD,KAAKwJ,OAAOs+C,SAI5B9nD,KAAK+D,OAAOgkD,oBACZ/nD,KAAKgoD,2BAELhoD,KAAKioD,gBAIXnhB,MAAO,WACL9mC,KAAKqnB,QAAQ9Z,UAAYie,EAAQ6B,+CAAiD,GAAKrtB,KAAK4nD,YAG9FhB,SAAU,SAASprB,GACjB,GAAI1Q,GAAQ9qB,KAAKgnC,UAAY,GAAKzmC,EAAUI,OAAOo7B,oBAAoB/7B,KAAKqnB,QAM5E,OAJImU,KACF1Q,EAAQ9qB,KAAKwJ,OAAOgyB,MAAM1Q,IAGrBA,GAGTmc,SAAU,SAASrP,EAAM4D,GACnBA,IACF5D,EAAO53B,KAAKwJ,OAAOgyB,MAAM5D,GAG3B,KACE53B,KAAKqnB,QAAQ9Z,UAAYqqB,EACzB,MAAOlwB,GACP1H,KAAKqnB,QAAQvnB,UAAY83B,IAI7BkE,QAAS,WACL97B,KAAKwJ,OAAOgyB,MAAMx7B,KAAKqnB,UAG3BkgC,KAAM,WACJvnD,KAAK6jC,aAAanb,MAAME,QAAU5oB,KAAKkoD,eAAiB,GAEnDloD,KAAK+D,OAAOqjD,YAAepnD,KAAK8nD,SAASzgC,QAAQ8gC,WAEpDnoD,KAAKynD,UACLznD,KAAK0nD,WAITF,KAAM,WACJxnD,KAAKkoD,cAAgBxnD,EAAIs1B,SAAS,WAAWC,KAAKj2B,KAAK6jC,cAC5B,SAAvB7jC,KAAKkoD,gBACPloD,KAAKkoD,cAAgB,MAEvBloD,KAAK6jC,aAAanb,MAAME,QAAU,QAGpC6+B,QAAS,WACPznD,KAAKwJ,OAAOmoB,KAAK,oBACjB3xB,KAAKqnB,QAAQ0kB,gBAAgB,oBAG/B2b,OAAQ,WACN1nD,KAAKwJ,OAAOmoB,KAAK,mBACjB3xB,KAAKqnB,QAAQwG,aAAa,kBAAmB,SAG/C7J,MAAO,SAASokC,GAIV7nD,EAAUirB,QAAQuE,kBAAoB/vB,KAAK6mC,qBAC7C7mC,KAAK8mC,QAGP9mC,KAAKuqB,MAEL,IAAIrQ,GAAYla,KAAKqnB,QAAQnN,SACzBkuC,IAAYluC,GAAala,KAAKc,YACL,OAAvBoZ,EAAUjV,SACZjF,KAAKc,UAAUkzC,UAAUh0C,KAAKqnB,QAAQnN,WAEtCla,KAAKc,UAAUmzC,SAASj0C,KAAKqnB,QAAQnN,aAK3CitB,eAAgB,WACd,MAAOzmC,GAAIymC,eAAennC,KAAKqnB,UAGjCwf,kBAAmB,WACjB,MAAO7mC,MAAKmnC,mBAAsBnnC,KAAK+D,OAAiB,WAAI/D,KAAK6jC,aAAa5U,aAAa,oBAAsBjvB,KAAK8nD,SAASzgC,QAAQ4H,aAAa,iBAAmBjvB,KAAK+mC,gBAG9KC,QAAS,WACP,GAAIz5B,GAAYvN,KAAKqnB,QAAQ9Z,UAAUrI,aACvC,OAAqB,KAAdqI,GACc,SAAdA,GACc,YAAdA,GACc,gBAAdA,GACAvN,KAAK6mC,qBAGdmhB,yBAA0B,WACtB,GAAI5jB,GAAOpkC,IAEPA,MAAK+D,OAAOqjD,WACZpnD,KAAKkmD,QAAU,GAAIxlD,GAAIulC,oBAAoB,WACvC7B,EAAKikB,cACFroD,KAAK6jC,eAEZ7jC,KAAKkmD,QAAU,GAAIxlD,GAAIulC,oBAAoB,WACvC7B,EAAKikB,YAETroD,KAAK6jC,aAAe7jC,KAAKkmD,QAAQhgB,qBACjCxlC,EAAIw1B,OAAOl2B,KAAK6jC,cAAc1N,MAAMn2B,KAAK8nD,SAASzgC,SAClDrnB,KAAKsoD,4BAIbL,aAAc,WACZ,GAAI7jB,GAAOpkC,IAEXA,MAAKkmD,QAAU,GAAIxlD,GAAIijC,QAAQ,WAC7BS,EAAKikB,YAELljB,YAAcnlC,KAAK+D,OAAOohC,cAE5BnlC,KAAK6jC,aAAgB7jC,KAAKkmD,QAAQliB,WAElC,IAAImjB,GAAkBnnD,KAAK8nD,SAASzgC,OACpC3mB,GAAIw1B,OAAOl2B,KAAK6jC,cAAc1N,MAAMgxB,GAEpCnnD,KAAKsoD,2BAIPA,wBAAyB,WACrB,GAAItoD,KAAK8nD,SAASzgC,QAAQkhC,KAAM,CAC9B,GAAIC,GAAc5jD,SAASuC,cAAc,QACzCqhD,GAAY9qC,KAAS,SACrB8qC,EAAYziD,KAAS,kBACrByiD,EAAY19B,MAAS,EACrBpqB,EAAIw1B,OAAOsyB,GAAaryB,MAAMn2B,KAAK8nD,SAASzgC,WAIlDghC,QAAS,WACP,GAAIjkB,GAAOpkC,IACXA,MAAK+C,IAAqB/C,KAAKkmD,QAAQ16C,cACvCxL,KAAKqnB,QAAsBrnB,KAAK+D,OAA0B,oBAAI/D,KAAKkmD,QAAQhgB,qBAAuBlmC,KAAK+C,IAAIC,KACtGhD,KAAK+D,OAAOqjD,WAIbpnD,KAAK87B,WAHL97B,KAAK8nD,SAAqB9nD,KAAKwJ,OAAOs+C,SACtC9nD,KAAKqnB,QAAQ9Z,UAAavN,KAAK8nD,SAASlB,UAAS,IAMrD5mD,KAAKc,UAAY,GAAIP,GAAUynB,UAAUhoB,KAAKwJ,OAAQxJ,KAAKqnB,QAASrnB,KAAK+D,OAAO++C,8BAGhF9iD,KAAKS,SAAY,GAAIF,GAAU+8C,SAASt9C,KAAKwJ,QAExCxJ,KAAK+D,OAAOqjD,YACb1mD,EAAI21B,gBACA,YAAa,aAAc,QAAS,OAAQ,MAAO,cACpDJ,KAAKj2B,KAAK8nD,SAASzgC,SAASmP,GAAGx2B,KAAKqnB,SAG3C3mB,EAAIk0B,SAAS50B,KAAKqnB,QAASrnB,KAAK+D,OAAO0kD,mBAGnCzoD,KAAK+D,OAAO2kB,QAAU1oB,KAAK+D,OAAOgkD,qBACpC/nD,KAAK0oB,QAGP1oB,KAAK6xB,SAEL,IAAI9rB,GAAO/F,KAAK+D,OAAOgC,IACnBA,KACFrF,EAAIk0B,SAAS50B,KAAKqnB,QAASthB,GACtB/F,KAAK+D,OAAOgkD,qBAAuBrnD,EAAIk0B,SAAS50B,KAAK6jC,aAAc99B,IAG1E/F,KAAK0nD,UAEA1nD,KAAK+D,OAAOqjD,YAAcpnD,KAAK8nD,SAASzgC,QAAQ8gC,UACnDnoD,KAAKynD,SAIP,IAAI/gB,GAAsD,gBAA7B1mC,MAAK+D,OAAkB,YAChD/D,KAAK+D,OAAO2kD,YACV1oD,KAAK+D,OAAiB,WAAI/D,KAAK6jC,aAAa5U,aAAa,oBAAsBjvB,KAAK8nD,SAASzgC,QAAQ4H,aAAa,cACpHyX,IACFhmC,EAAI6lC,oBAAoBvmC,KAAKwJ,OAAQxJ,KAAM0mC,GAI7C1mC,KAAKS,SAASs2C,KAAK,gBAAgB,GAEnC/2C,KAAK2oD,mBACL3oD,KAAK4oD,sBACL5oD,KAAK6oD,mBACL7oD,KAAK8oD,oBAIA9oD,KAAK+D,OAAOqjD,aAAepnD,KAAK8nD,SAASzgC,QAAQgZ,aAAa,cAAgBz7B,SAASgoB,cAAc,WAAa5sB,KAAK8nD,SAASzgC,SAAamE,EAAQuB,SACxJ6Y,WAAW,WAAaxB,EAAKpgB,OAAM,IAAU,KAI1CwH,EAAQsD,kCACXvuB,EAAUI,OAAO8vC,qBAAqBzwC,MAIpCA,KAAK+oD,UAAY/oD,KAAK+D,OAAOilD,MAC/BhpD,KAAK+oD,WAIF/oD,KAAK+D,OAAOqjD,YAAcpnD,KAAK8nD,SAASN,OAG7CxnD,KAAKwJ,OAAOmoB,KAAK,cAAcA,KAAK,SAGtCg3B,iBAAkB,WAChB,GAAIvkB,GAAiCpkC,KACjCipD,EAAiCz9B,EAAQqD,wBACzCq6B,EAAiC19B,EAAQoD,kCAK7C,IAJIq6B,GACFjpD,KAAKS,SAASs2C,KAAK,iBAAiB,GAGjC/2C,KAAK+D,OAAOqvB,SAAjB,GAMK81B,GAAwBA,GAAuBD,KAClDjpD,KAAKwJ,OAAO6nB,GAAG,mBAAoB,WAC7B3wB,EAAIymC,eAAe/C,EAAK/c,SAASsE,MAAMjrB,EAAI0yB,SAASK,cACtD2Q,EAAKtjC,UAAUi1C,kBAAkB,SAAStmC,EAAgBC,GAIxD,IAAK,GAHDmlC,GAAczQ,EAAK/c,QAAQwF,iBAAiB,IAAMuX,EAAKrgC,OAAO++C,8BAC9DqG,GAAiB,EAEZ7mD,EAAIuyC,EAAYtyC,OAAQD,KAC3B/B,EAAUG,IAAIib,SAASk5B,EAAYvyC,GAAIoN,KACzCy5C,GAAiB,EAIhBA,IAAgBzoD,EAAI0yB,SAAS1jB,EAAajG,YAAa26B,EAAKrgC,OAAO++C,mCAK9EpiD,EAAImxB,QAAQ7xB,KAAKqnB,QAAS,OAAQ,WAChC3mB,EAAI0yB,SAASgR,EAAK/c,SAAU+c,EAAKrgC,OAAO++C,iCAQ5C,IACIsG,GAAkBppD,KAAKkmD,QAAQ16C,cAAcvI,qBAAqB,KAElEomD,EAAkB3oD,EAAI0yB,SAASK,YAC/B0T,EAAkB,SAAS9f,GACzB,GAAIkb,GAAchiC,EAAUM,KAAK6xB,OAAOhyB,EAAIymC,eAAe9f,IAAUuL,MAIrE,OAHiC,SAA7B2P,EAAY9U,OAAO,EAAG,KACxB8U,EAAc,UAAYA,GAErBA,EAGb7hC,GAAImxB,QAAQ7xB,KAAKqnB,QAAS,UAAW,SAASmQ,GAC5C,GAAK4xB,EAAM7mD,OAAX,CAIA,GAEIggC,GAFAif,EAAepd,EAAKtjC,UAAUuzC,gBAAgB7c,EAAMC,OAAOhsB,eAC3DqvB,EAAep6B,EAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU,KAAO,EAGpE61B,KAILyH,EAAc4E,EAAerM,GAG7B8K,WAAW,WACT,GAAI0jB,GAAiBniB,EAAerM,EAChCwuB,KAAmB/mB,GAKnB+mB,EAAe39B,MAAM09B,IACvBvuB,EAAKjN,aAAa,OAAQy7B,IAE3B,SAIPV,oBAAqB,WAMnB,GALA5oD,KAAKS,SAASs2C,KAAK,wBAAwB,GAKvCvrB,EAAQ0B,cAAc,aAAc,CACtC,GAAIq8B,IAAqB,QAAS,UAC9BC,EAAoBD,EAAWhnD,OAC/B8kB,EAAoBrnB,KAAKqnB,OAE7B3mB,GAAImxB,QAAQxK,EAAS,YAAa,SAASmQ,GACzC,GAGI1H,GAHA2H,EAASD,EAAMC,QAAUD,EAAM0D,WAC/BxS,EAAS+O,EAAO/O,MAChBpmB,EAAS,CAGb,IAAwB,QAApBm1B,EAAOxyB,SAAX,CAIA,KAASukD,EAAFlnD,EAAoBA,IACzBwtB,EAAWy5B,EAAWjnD,GAClBomB,EAAMoH,KACR2H,EAAO5J,aAAaiC,EAAUkH,SAAStO,EAAMoH,GAAW,KACxDpH,EAAMoH,GAAY,GAKtBvvB,GAAUI,OAAOowC,OAAO1pB,QAK9BwhC,iBAAkB,WAChB7oD,KAAKyjD,YAAc,GAAIljD,GAAUqlD,YAAY5lD,KAAKwJ,SAGpDs/C,kBAAmB,WAKjB,QAASW,GAAOjI,GACd,GAAIj4C,GAAgB7I,EAAIs3B,iBAAiBwpB,GAAgBv8C,UAAW,IAAK,QAAU,EAC/EsE,IAAiB7I,EAAIib,SAASyoB,EAAK/c,QAAS9d,IAC9C66B,EAAKtjC,UAAUi1C,kBAAkB,WAC3B3R,EAAKrgC,OAAOm/B,cACdxiC,EAAImiC,sBAAsBt5B,GACU,MAA3BA,EAActE,UACvBvE,EAAIgiC,cAAcn5B,EAAe,OAXzC,GAAI66B,GAAoCpkC,KACpC0pD,GAAqC,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAC9EC,GAAqC,KAAM,KAAM,OAehD3pD,MAAK+D,OAAOm/B,eACfxiC,EAAImxB,QAAQ7xB,KAAKqnB,SAAU,QAAS,WAAY,WAC9C,GAAI+c,EAAK4C,UAAW,CAClB,GAAI3D,GAAYe,EAAKrhC,IAAIoE,cAAc,IACvCi9B,GAAK/c,QAAQ9Z,UAAY,GACzB62B,EAAK/c,QAAQjgB,YAAYi8B,GACpB7X,EAAQ6B,+CAIX+W,EAAKtjC,UAAUmW,WAAWosB,GAAW,IAHrCA,EAAU91B,UAAY,OACtB62B,EAAKtjC,UAAUkzC,UAAU3Q,EAAUr2B,gBAmB3CtM,EAAImxB,QAAQ7xB,KAAKqnB,QAAS,UAAW,SAASmQ,GAC5C,GAAI8uB,GAAU9uB,EAAM8uB,OAEpB,KAAI9uB,EAAMgvB,WAINF,IAAY/lD,EAAUc,WAAailD,IAAY/lD,EAAUa,eAA7D,CAGA,GAAIggD,GAAe1gD,EAAIs3B,iBAAiBoM,EAAKtjC,UAAUuzC,mBAAqBpvC,SAAUykD,GAAqC,EAC3H,OAAItI,OACFxb,YAAW,WAET,GACIxQ,GADAosB,EAAepd,EAAKtjC,UAAUuzC,iBAGlC,IAA8B,OAA1B+M,EAAan8C,SAAmB,CAClC,IAAKu8C,EACH,MAGFpsB,GAAO10B,EAAIs3B,iBAAiBwpB,GAAgBv8C,SAAU0kD,GAAa,GAE9Dv0B,GACHq0B,EAAOjI,GAIP8E,IAAY/lD,EAAUc,WAAa+/C,EAAan8C,SAAS0mB,MAAM,aACjE89B,EAAOjI,IAER,QAIDpd,EAAKrgC,OAAOm/B,eAAiBojB,IAAY/lD,EAAUc,YAAcd,EAAUirB,QAAQkC,8BACrF8J,EAAM2D,iBACNiJ,EAAK3jC,SAASs2C,KAAK,4BAM1Bx2C,WACF,SAAUA,GACT,GAAIG,GAAkBH,EAAUG,IAC5BqC,EAAkB6B,SAClBiB,EAAkBzC,OAClBwmD,EAAkB7mD,EAAIoE,cAAc,OAIpC0iD,GACE,mBACA,QAAS,SACT,cAAe,YAAa,aAAc,eAAgB,cAC1D,cAAe,iBACf,aAAc,kBAAmB,cAAe,iBAChD,aAAc,YAAa,gBAK7BC,GACE,mBACA,kBACA,sBAAuB,sBAAuB,sBAC9C,oBAAqB,oBAAqB,oBAC1C,qBAAsB,qBAAsB,qBAC5C,mBAAoB,mBAAoB,mBACxC,QAAS,UAAW,QACpB,gBAAiB,cAAe,eAAgB,aAChD,gBAAiB,iBAAkB,gBAAiB,gBACpD,eAAgB,gBAAiB,cAAe,iBAChD,WAAY,MAAO,OAAQ,QAAS,SAAU,UAC9C,iBAAkB,aAClB,qBAAsB,kBAAmB,iBAAkB,aAC3D,qBAAsB,kBAAmB,iBAAiB,aAC1D,kCAAmC,8BAA+B,0BAClE,qCAAsC,iCAAkC,6BACxE,oCAAqC,gCAAiC,4BACtE,iCAAkC,6BAA8B,yBAChE,QAAS,UAEXC,GACE,yCACA,iFACA,0CACA,0CACAxpD,EAAUirB,QAAQS,QAChB,mDACA,kDAEF,wFAWF+9B,EAAwB,SAAS3iC,GACnC,GAAIA,EAAQ4iC,UAGV,IAAM5iC,EAAQ4iC,YAAe,MAAMviD,QAC9B,CACL,GAAIwiD,GAAe7iC,EAAQqB,MACvByhC,EAAoBpnD,EAAI0L,gBAAgB6nC,WAAavzC,EAAIC,KAAKszC,UAC9D8T,EAAqBrnD,EAAI0L,gBAAgB+nC,YAAczzC,EAAIC,KAAKwzC,WAChE6T,GACE/+C,SAAkB4+C,EAAa5+C,SAC/B6nC,IAAkB+W,EAAa/W,IAC/B9R,KAAkB6oB,EAAa7oB,KAC/BipB,iBAAkBJ,EAAaI,iBAGrC5pD,GAAI22B,WACF/rB,SAAkB,WAClB6nC,IAAkB,WAClB9R,KAAkB,WAElBipB,iBAAkB,SACjBj5B,GAAGhK,GAENA,EAAQrD,QAERtjB,EAAI22B,UAAUgzB,GAAgBh5B,GAAGhK,GAE7BxhB,EAAI0kD,UAIN1kD,EAAI0kD,SAASH,EAAoBD,IAMvC5pD,GAAUQ,MAAM4mD,SAAS/nD,UAAU8oB,MAAQ,WACzC,GAOI8hC,GAPApmB,EAAwBpkC,KACxByqD,EAAwB1nD,EAAI6pB,cAAc,UAC1Cu6B,EAAwBnnD,KAAK8nD,SAASzgC,QACtCqjC,EAAwBvD,EAAgB9mB,aAAa,eACrDsqB,EAAwBD,GAAkBvD,EAAgBl4B,aAAa,eACvE27B,EAAwBzD,EAAgBz+B,MAAME,QAC9CiiC,EAAwB1D,EAAgBgB,QAG5CnoD,MAAK8qD,gBAAuBlB,EAAcx+C,WAAU,GACpDpL,KAAK+qD,eAAuBnB,EAAcx+C,WAAU,GACpDpL,KAAKgrD,mBAAuBpB,EAAcx+C,WAAU,GAGhDs/C,GACFvD,EAAgBpb,gBAAgB,eAG9Bob,IAAoBsD,GACtBtD,EAAgB8D,OAIlB9D,EAAgBgB,UAAW,EAG3BhB,EAAgBz+B,MAAME,QAAU4hC,EAAyB,QAEpDrD,EAAgBl4B,aAAa,SAA4D,SAAjDvuB,EAAIs1B,SAAS,UAAUC,KAAKkxB,IACpEA,EAAgBl4B,aAAa,SAA2D,SAAhDvuB,EAAIs1B,SAAS,SAASC,KAAKkxB,MACtEA,EAAgBz+B,MAAME,QAAU4hC,EAAyBI,GAI3DlqD,EAAIw2B,WAAW4yB,GAAgB7zB,KAAKkxB,GAAiB3wB,GAAGx2B,KAAK6jC,cAAclN,MAAM32B,KAAK+qD,gBAGtFrqD,EAAIw2B,WAAW2yB,GAAiB5zB,KAAKkxB,GAAiB3wB,GAAGx2B,KAAKqnB,SAASsP,MAAM32B,KAAK+qD,gBAGlFrqD,EAAIg6B,UAAUqvB,GAAsBtvB,KAAKz6B,KAAKqnB,QAAQ5b,eAGtD07C,EAAgBgB,UAAW,EAC3BznD,EAAIw2B,WAAW4yB,GAAgB7zB,KAAKkxB,GAAiB3wB,GAAGx2B,KAAKgrD,oBAC7DtqD,EAAIw2B,WAAW2yB,GAAiB5zB,KAAKkxB,GAAiB3wB,GAAGx2B,KAAKgrD,oBAC9D7D,EAAgBgB,SAAW0C,EAG3B1D,EAAgBz+B,MAAME,QAAUgiC,EAChCZ,EAAsB7C,GACtBA,EAAgBz+B,MAAME,QAAU4hC,EAEhC9pD,EAAIw2B,WAAW4yB,GAAgB7zB,KAAKkxB,GAAiB3wB,GAAGx2B,KAAK8qD,iBAC7DpqD,EAAIw2B,WAAW2yB,GAAiB5zB,KAAKkxB,GAAiB3wB,GAAGx2B,KAAK8qD,iBAG9D3D,EAAgBz+B,MAAME,QAAUgiC,EAEhClqD,EAAIw2B,YAAY,YAAYjB,KAAKkxB,GAAiB3wB,GAAGx2B,KAAK6jC,aAK1D,IAAIqnB,GAAsB3qD,EAAUM,KAAKyvB,MAAMw5B,GAAgBt5B,SAAS,WAmCxE,OAhCIi6B,GACFA,EAAsBzmC,QAEtBmjC,EAAgB8D,OAIdP,GACFvD,EAAgBt5B,aAAa,cAAe88B,GAI9C3qD,KAAKwJ,OAAO6nB,GAAG,iBAAkB,WAC/B3wB,EAAIw2B,WAAWg0B,GAAsBj1B,KAAKmO,EAAK0mB,iBAAiBt0B,GAAG4N,EAAKP,cACxEnjC,EAAIw2B,WAAW2yB,GAAsB5zB,KAAKmO,EAAK0mB,iBAAiBt0B,GAAG4N,EAAK/c,WAG1ErnB,KAAKwJ,OAAO6nB,GAAG,gBAAiB,WAC9B3wB,EAAIw2B,WAAWg0B,GAAsBj1B,KAAKmO,EAAK2mB,gBAAgBv0B,GAAG4N,EAAKP,cACvEnjC,EAAIw2B,WAAW2yB,GAAsB5zB,KAAKmO,EAAK2mB,gBAAgBv0B,GAAG4N,EAAK/c,WAGzErnB,KAAKwJ,OAAOqoB,QAAQ,mBAAoB,WACtCnxB,EAAIw2B,WAAWg0B,GAAsBj1B,KAAKmO,EAAK4mB,oBAAoBx0B,GAAG4N,EAAKP,cAC3EnjC,EAAIw2B,WAAW2yB,GAAsB5zB,KAAKmO,EAAK4mB,oBAAoBx0B,GAAG4N,EAAK/c,WAG7ErnB,KAAKwJ,OAAOqoB,QAAQ,kBAAmB,WACrCnxB,EAAIw2B,WAAWg0B,GAAsBj1B,KAAKmO,EAAK2mB,gBAAgBv0B,GAAG4N,EAAKP,cACvEnjC,EAAIw2B,WAAW2yB,GAAsB5zB,KAAKmO,EAAK2mB,gBAAgBv0B,GAAG4N,EAAK/c,WAGlErnB,OAERO,WASH,SAAUA,GACR,GAAIG,GAAYH,EAAUG,IACtB8qB,EAAYjrB,EAAUirB,QAItB2/B,GACEC,GAAM,OACNC,GAAM,SACNC,GAAM,aAGRC,EAAuB,SAASzqD,EAAW0qD,EAAYnkC,GAEzD,GAAIwuB,GAAW/0C,EAAUi0C,gBAAgByW,GAAY,GACjDC,EAAU3qD,EAAUuzC,iBAGxB,IADyB,IAArBoX,EAAQjkD,UAAkBikD,EAAQhiD,aAAe4d,IAAWokC,EAAUA,EAAQhiD,YAC9EosC,EACF,GAAwB,GAApB4V,EAAQjkD,SAAe,CACzB,GAAIkkD,GAAQD,EAAQz+C,UAEpB,IAAyB,GAArB6oC,EAASruC,SACX,KAAOikD,EAAQz+C,YACb6oC,EAASzuC,YAAYqkD,EAAQz+C,gBAG/B,MAAOy+C,EAAQz+C,YACbw+C,EAAW/hD,WAAWsB,aAAa0gD,EAAQz+C,WAAYw+C,EAGvDC,GAAQhiD,YACVgiD,EAAQhiD,WAAWqO,YAAY2zC,GAEjC3qD,EAAUkzC,UAAU0X,OAEK,IAArB7V,EAASruC,SACXquC,EAASzuC,YAAYqkD,GAErBD,EAAW/hD,WAAWsB,aAAa0gD,EAASD,GAE9C1qD,EAAUkzC,UAAUyX,IAKtBE,EAAuB,SAASn0B,EAAO12B,EAAWumB,EAASspB,GAC7D,GAAI7vC,EAAUyd,cACZ,GAAIzd,EAAU40C,qBAAqB,MACjCle,EAAM2D,iBACNwV,EAASlwC,SAASs2C,KAAK,mBAClB,IAAIj2C,EAAU40C,uBACnBle,EAAM2D,qBACD,CACL,GAAIywB,GAAmB9qD,EAAU80C,yBAG7BgW,KACFp0B,EAAM2D,iBACNowB,EAAqBzqD,EAAW8qD,EAAkBvkC,QAG7CvmB,GAAU8zC,uBACnBpd,EAAM2D,iBACNr6B,EAAUuW,mBAIVw0C,EAAmB,SAASlb,GAC9B,GAAKA,EAAS7vC,UAAUyd,eAEjB,GAAIoyB,EAAS7vC,UAAU40C,qBAAqB,OAC7C/E,EAASlwC,SAASs2C,KAAK,cAAe,WAF1CpG,GAAS7vC,UAAUuW,gBAMrBs5B,GAASlwC,SAASs2C,KAAK,aAAc,UAGvCx2C,GAAUQ,MAAM4mD,SAAS/nD,UAAUiyB,QAAU,WAC3C,GAAIuS,GAAsBpkC,KACtBy9C,EAAsBz9C,KAAK4mD,WAC3BpsC,EAAuBxa,KAAKkmD,QAAiB,UAAIlmD,KAAKkmD,QAAQliB,YAAchkC,KAAKkmD,QAAQhgB,qBACzF7e,EAAsBrnB,KAAKqnB,QAC3BykC,EAAuBtgC,EAAQsC,mCAAqC9tB,KAAKkmD,QAAQhgB,mBAAsB7e,EAAUrnB,KAAKkmD,QAAQx6C,YAC9HqgD,GAAuB,OAAQ,SAC/BC,GAAuB,OAAQ,QAAS,UAAW,QAAS,QAShE,IANAtrD,EAAImxB,QAAQrX,EAAW,iBAAkB,WACvCyxC,cAAcC,GACd9nB,EAAK56B,OAAOmoB,KAAK,uBAIdnG,EAAQ6E,yBACT,GAAI67B,GAAyBC,YAAY,WAClCzrD,EAAIib,SAAS/W,SAAS6J,gBAAiB+L,KAC1CyxC,cAAcC,GACd9nB,EAAK56B,OAAOmoB,KAAK,sBAElB,IAKPjxB,GAAImxB,QAAQi6B,EAAkBE,EAAmB,WAC/CpmB,WAAW,WACTxB,EAAK56B,OAAOmoB,KAAK,eAAeA,KAAK,yBACpC,KAID3xB,KAAK+D,OAAOqoD,eACXpsD,KAAK+C,IAAIypB,aAAejsB,EAAUirB,QAAQyC,gBAAgBjuB,KAAK+C,IAAK,yBAA2BxC,EAAUirB,QAAQyC,gBAAgBjuB,KAAK+C,IAAK,6BAC5I6iC,WAAW,WACTxB,EAAKrhC,IAAIypB,YAAY,wBAAwB,EAAO,SACpD4X,EAAKrhC,IAAIypB,YAAY,4BAA4B,EAAO,UACvD,GAELxsB,KAAKikD,eAAiB1jD,EAAUI,OAAOqwC,oBAAoB3pB,EAAS+c,EAAK56B,SAI3E9I,EAAImxB,QAAQi6B,EAAkB,QAAS,WACrC1nB,EAAK56B,OAAOmoB,KAAK,SAASA,KAAK,kBAI/BiU,WAAW,WAAa6X,EAAQrZ,EAAKwiB,YAAe,KAGtDlmD,EAAImxB,QAAQi6B,EAAkB,OAAQ,WAChCrO,IAAUrZ,EAAKwiB,YACjBxiB,EAAK56B,OAAOmoB,KAAK,UAAUA,KAAK,mBAElCyS,EAAK56B,OAAOmoB,KAAK,QAAQA,KAAK,mBAIhCjxB,EAAImxB,QAAQxK,EAAS,YAAa,WAChC+c,EAAK56B,OAAOmoB,KAAK,uBAGnBjxB,EAAImxB,QAAQxK,EAAS0kC,EAAa,WAChCnmB,WAAW,WACTxB,EAAK56B,OAAOmoB,KAAK,SAASA,KAAK,mBAC9B,KAILjxB,EAAImxB,QAAQxK,EAAS,QAAS,SAASmQ,GACrC,GAAI8uB,GAAU9uB,EAAM8uB,SAChBA,IAAY/lD,EAAUgB,WAAa+kD,IAAY/lD,EAAUc,YAC3D+iC,EAAK56B,OAAOmoB,KAAK,sBAIrB3xB,KAAKwJ,OAAO6nB,GAAG,iBAAkB,WAC/BuU,WAAW,WAAaxB,EAAK56B,OAAOmoB,KAAK,qBAAwB,KAI9DnG,EAAQ0D,oCACXxuB,EAAImxB,QAAQxK,EAAS,YAAa,SAASmQ,GACzC,GAAIC,GAASD,EAAMC,OACf40B,EAAYhlC,EAAQwF,iBAAiB,OACrCy/B,EAAcjlC,EAAQwF,iBAAiB,IAAMuX,EAAKrgC,OAAO++C,6BAA+B,QACxFyJ,EAAWhsD,EAAUM,KAAKyvB,MAAM+7B,GAAW77B,QAAQ87B,EAE/B,SAApB70B,EAAOxyB,UAAsB1E,EAAUM,KAAKyvB,MAAMi8B,GAAU5wC,SAAS8b,IACvE2M,EAAKtjC,UAAUmW,WAAWwgB,KAK3BjM,EAAQ0D,oCACTxuB,EAAImxB,QAAQxK,EAAS,OAAQ,WAEzBue,WAAW,WACPxB,EAAKtjC,UAAUigB,eAAe0E,mBAC/B,KAIP+F,EAAQ+B,mBAAqB/B,EAAQgE,2BACvC9uB,EAAImxB,QAAQxK,EAAS,UAAW,SAASmQ,GACvC,GAAKA,EAAM6uB,SAAY7uB,EAAM4uB,QAA7B,CAIA,GAAIE,GAAY9uB,EAAM8uB,QAClBzgD,EAAYwhB,EAAQ5b,cAAcE,YAClC7K,EAAY+E,EAAIkb,gBAEJ,KAAZulC,GAA8B,KAAZA,KACJ,KAAZA,IACFxlD,EAAU02C,OAAO,SAAU,OAAQ,gBAC9BhgB,EAAMgvB,UACT1lD,EAAUmmB,mBAGE,KAAZq/B,IACFxlD,EAAU02C,OAAO,SAAU,QAAS,gBAC/BhgB,EAAMgvB,UACT1lD,EAAUomB,iBAGdsQ,EAAM2D,qBAMZz6B,EAAImxB,QAAQxK,EAAS,UAAW,SAASmQ,GACvC,GAAI8uB,GAAW9uB,EAAM8uB,QACjB/3B,EAAW48B,EAAU7E,IACpB9uB,EAAM4uB,SAAW5uB,EAAM6uB,WAAa7uB,EAAM2uB,QAAU53B,IACvD6V,EAAK3jC,SAASs2C,KAAKxoB,GACnBiJ,EAAM2D,kBAEQ,IAAZmrB,EAEFqF,EAAqBn0B,EAAO4M,EAAKtjC,UAAWumB,EAAS+c,GAC5CA,EAAKrgC,OAAOyoD,cAA4B,IAAZlG,IACrC9uB,EAAM2D,iBACN0wB,EAAiBznB,EAAM/c,MAK3B3mB,EAAImxB,QAAQxK,EAAS,UAAW,SAASmQ,GACvC,GAEIhuB,GAFAiuB,EAAU2M,EAAKtjC,UAAUuzC,iBAAgB,GACzCiS,EAAU9uB,EAAM8uB,SAEhB7uB,GAA8B,QAApBA,EAAOxyB,UAAuBqhD,IAAY/lD,EAAUa,eAAiBklD,IAAY/lD,EAAUiB,aACvGgI,EAASiuB,EAAOhuB,WAEhBD,EAAOsO,YAAY2f,GAEK,MAApBjuB,EAAOvE,UAAqBuE,EAAOwD,YACrCxD,EAAOC,WAAWqO,YAAYtO,GAGhCo8B,WAAW,WAAarlC,EAAUI,OAAOowC,OAAO1pB,IAAa,GAC7DmQ,EAAM2D,qBAKLn7B,KAAK+D,OAAOgkD,qBAAuBv8B,EAAQ2E,wBAC9CzvB,EAAImxB,QAAQrX,EAAW,QAAS,WAC9BorB,WAAW,WACLxB,EAAKrhC,IAAI6pB,cAAc,YAAcwX,EAAK/c,SAC5C+c,EAAKpgB,SAEN,KAGLtjB,EAAImxB,QAAQ7xB,KAAKqnB,QAAS,OAAQ,WAChCue,WAAW,WACTxB,EAAKtjC,UAAUigB,eAAe0E,mBAC7B,KAKP,IAAIgnC,IACFC,IAAK,UACL37B,EAAK,SAGPrwB,GAAImxB,QAAQxK,EAAS,YAAa,SAASmQ,GACzC,GAEIm1B,GAFAl1B,EAAWD,EAAMC,OACjBxyB,EAAWwyB,EAAOxyB,QAEtB,IAAiB,MAAbA,GAAiC,QAAbA,EAAxB,CAGA,GAAI2nD,GAAWn1B,EAAO4I,aAAa,QAC/BusB,KACFD,EAAQF,EAAcxnD,IAAawyB,EAAOxI,aAAa,SAAWwI,EAAOxI,aAAa,QACtFwI,EAAO5J,aAAa,QAAS8+B,SAIlCpsD,WAIH,SAAUA,GACR,GAAIssD,GAAW,GAEftsD,GAAUQ,MAAM+rD,aAAe5iC,KAAKnjB,QAGlCwO,YAAa,SAASixB,EAAQshB,EAAUnX,GACtC3wC,KAAKwmC,OAAWA,EAChBxmC,KAAK8nD,SAAWA,EAChB9nD,KAAK2wC,SAAWA,EAEhB3wC,KAAKgmD,YAQP+G,uBAAwB,SAASC,GAC/BhtD,KAAK8nD,SAAS7gB,SAAS1mC,EAAUM,KAAK6xB,OAAO1yB,KAAK2wC,SAASiW,YAAYh0B,OAAQo6B,IAQjFC,uBAAwB,SAASD,GAC/B,GAAIE,GAAgBltD,KAAK8nD,SAASlB,UAC9BsG,GACFltD,KAAK2wC,SAAS1J,SAASimB,EAAeF,IAEtChtD,KAAK2wC,SAAS7J,QACd9mC,KAAKwmC,OAAO7U,KAAK,qBAQrBq3B,KAAM,SAASgE,GACwB,aAAjChtD,KAAKwmC,OAAO8gB,YAAYvhD,KAC1B/F,KAAKitD,uBAAuBD,GAE5BhtD,KAAK+sD,uBAAuBC,IAShChH,SAAU,WACR,GAAImH,GACA/oB,EAAgBpkC,KAChBuoD,EAAgBvoD,KAAK8nD,SAASzgC,QAAQkhC,KACtC6E,EAAgB,WACdD,EAAWhB,YAAY,WAAa/nB,EAAK2oB,0BAA6BF,IAExEQ,EAAgB,WACdpB,cAAckB,GACdA,EAAW,KAGjBC,KAEI7E,IAGFhoD,EAAUG,IAAImxB,QAAQ02B,EAAM,SAAU,WACpCnkB,EAAK4kB,MAAK,KAEZzoD,EAAUG,IAAImxB,QAAQ02B,EAAM,QAAS,WACnC3iB,WAAW,WAAaxB,EAAK6oB,0BAA6B,MAI9DjtD,KAAKwmC,OAAOnV,GAAG,cAAe,SAASoV,GACxB,aAATA,GAAwB0mB,EAGR,aAAT1mB,IACTrC,EAAK2oB,wBAAuB,GAC5BM,MAJAjpB,EAAK6oB,wBAAuB,GAC5BG,OAOJptD,KAAKwmC,OAAOnV,GAAG,mBAAoBg8B,OAGtC9sD,WACFA,UAAUQ,MAAMusD,SAAW/sD,UAAUQ,MAAMmmD,KAAKngD,QAE/ChB,KAAM,WAENwP,YAAa,SAAS/L,EAAQ29C,EAAiBpjD,GAC7C/D,KAAKuqB,KAAK/gB,EAAQ29C,EAAiBpjD,GAEnC/D,KAAKgmD,YAGPlf,MAAO,WACL9mC,KAAKqnB,QAAQyD,MAAQ,IAGvB87B,SAAU,SAASprB,GACjB,GAAI1Q,GAAQ9qB,KAAKgnC,UAAY,GAAKhnC,KAAKqnB,QAAQyD,KAI/C,OAHI0Q,KACF1Q,EAAQ9qB,KAAKwJ,OAAOgyB,MAAM1Q,IAErBA,GAGTmc,SAAU,SAASrP,EAAM4D,GACnBA,IACF5D,EAAO53B,KAAKwJ,OAAOgyB,MAAM5D,IAE3B53B,KAAKqnB,QAAQyD,MAAQ8M,GAGvBkE,QAAS,WACL,GAAIlE,GAAO53B,KAAKwJ,OAAOgyB,MAAMx7B,KAAKqnB,QAAQyD,MAC1C9qB,MAAKqnB,QAAQyD,MAAQ8M,GAGzBiP,kBAAmB,WACjB,GAAI0mB,GAAsBhtD,UAAUirB,QAAQmC,+BAA+B3tB,KAAKqnB,SAC5Eqf,EAAsB1mC,KAAKqnB,QAAQ4H,aAAa,gBAAkB,KAClEnE,EAAsB9qB,KAAKqnB,QAAQyD,MACnCkc,GAAuBlc,CAC3B,OAAQyiC,IAAuBvmB,GAAalc,IAAU4b,GAGxDM,QAAS,WACP,OAAQzmC,UAAUM,KAAK6xB,OAAO1yB,KAAKqnB,QAAQyD,OAAO8H,QAAU5yB,KAAK6mC,qBAGnEmf,SAAU,WACR,GAAI3+B,GAAUrnB,KAAKqnB,QACf7d,EAAUxJ,KAAKwJ,OACfgkD,GACEC,QAAU,QACVC,SAAU,QAMZn8B,EAAShxB,UAAUirB,QAAQ0B,cAAc,YAAc,UAAW,WAAY,WAAa,QAAS,OAAQ,SAEhH1jB,GAAO6nB,GAAG,aAAc,WACtB9wB,UAAUG,IAAImxB,QAAQxK,EAASkK,EAAQ,SAASiG,GAC9C,GAAI5J,GAAY4/B,EAAah2B,EAAM9Z,OAAS8Z,EAAM9Z,IAClDlU,GAAOmoB,KAAK/D,GAAW+D,KAAK/D,EAAY,eAG1CrtB,UAAUG,IAAImxB,QAAQxK,GAAU,QAAS,QAAS,WAChDue,WAAW,WAAap8B,EAAOmoB,KAAK,SAASA,KAAK,mBAAsB,UAoChF,SAAUpxB,GACR,GAAI89C,GAEAsP,GAEF5nD,KAAsBs4C,EAEtB31B,OAAsB,EAEtB9nB,QAAsBy9C,EAGtBuP,sBAAsB,EAEtBx6B,UAAsB,EAEtBg5B,cAAsB,EAEtBI,cAAsB,EAGtBqB,aAAwBlxB,MAAQmxB,MAAQvhB,QAAUwhB,OAASnsD,MAASu8B,YAEpE6vB,OAAsBztD,EAAUG,IAAI86B,MAEpCitB,kBAAsB,mBAEtBwF,cAAsB,sBAEtB/qB,eAAsB,EAEtBiC,eAEAuB,gBAAsB2X,EAEtB6P,qBAAsB,EAEtBpyB,SAAsB,EAEtBisB,qBAAqB,EAGrBjF,6BAA8B,iCAGhCviD,GAAU4tD,OAAS5tD,EAAUM,KAAKuwB,WAAWrqB,QAE3CwO,YAAa,SAASsyC,EAAiB9jD,GAerC,GAdA/D,KAAK6nD,gBAA+C,gBAAtB,GAAiCjjD,SAASsjB,eAAe2/B,GAAmBA,EAC1G7nD,KAAK+D,OAAmBxD,EAAUM,KAAKuqB,WAAW2G,MAAM47B,GAAe57B,MAAMhuB,GAAQlE,MACrFG,KAAKouD,cAAmB7tD,EAAUirB,QAAQ1nB,YAES,YAA/C9D,KAAK6nD,gBAAgB5iD,SAASC,gBAC9BlF,KAAK+D,OAAOgkD,qBAAsB,EAClC/nD,KAAK+D,OAAOqjD,YAAa,GAExBpnD,KAAK+D,OAAOqjD,aACbpnD,KAAK8nD,SAAmB,GAAIvnD,GAAUQ,MAAMusD,SAASttD,KAAMA,KAAK6nD,gBAAiB7nD,KAAK+D,QACtF/D,KAAKsnD,YAAmBtnD,KAAK8nD,WAI5B9nD,KAAKouD,gBAAmBpuD,KAAK+D,OAAOmqD,qBAAuB3tD,EAAUirB,QAAQyB,gBAAkB,CAClG,GAAImX,GAAOpkC,IAEX,YADA4lC,YAAW,WAAaxB,EAAKzS,KAAK,cAAcA,KAAK,SAAY,GAKnEpxB,EAAUG,IAAIk0B,SAAShwB,SAAS5B,KAAMhD,KAAK+D,OAAOkqD,eAElDjuD,KAAK2wC,SAAW,GAAIpwC,GAAUQ,MAAM4mD,SAAS3nD,KAAMA,KAAK6nD,gBAAiB7nD,KAAK+D,QAC9E/D,KAAKsnD,YAActnD,KAAK2wC,SAEW,kBAAxB3wC,MAAK+D,OAAa,QAC3B/D,KAAKquD,cAGPruD,KAAKqxB,GAAG,aAAcrxB,KAAKsuD,mBAG7BA,iBAAkB,WACTtuD,KAAK+D,OAAOqjD,aACbpnD,KAAKuuD,aAAe,GAAIhuD,GAAUQ,MAAM+rD,aAAa9sD,KAAMA,KAAK8nD,SAAU9nD,KAAK2wC,WAE/E3wC,KAAK+D,OAAOnD,UACdZ,KAAKY,QAAU,GAAIL,GAAUK,QAAQ4tD,QAAQxuD,KAAMA,KAAK+D,OAAOnD,QAASZ,KAAK+D,OAAO6pD;EAI1Fa,aAAc,WACZ,MAAOzuD,MAAKouD,eAGdtnB,MAAO,WAEL,MADA9mC,MAAKsnD,YAAYxgB,QACV9mC,MAGT4mD,SAAU,SAASprB,GACjB,MAAOx7B,MAAKsnD,YAAYV,SAASprB,IAGnCyL,SAAU,SAASrP,EAAM4D,GAGvB,MAFAx7B,MAAK2xB,KAAK,qBAELiG,GAIL53B,KAAKsnD,YAAYrgB,SAASrP,EAAM4D,GACzBx7B,MAJEA,KAAK8mC,SAOhBhL,QAAS,WACL97B,KAAKsnD,YAAYxrB,WAGrB9X,MAAO,SAASokC,GAEd,MADApoD,MAAKsnD,YAAYtjC,MAAMokC,GAChBpoD,MAMTynD,QAAS,WAEP,MADAznD,MAAKsnD,YAAYG,UACVznD,MAMT0nD,OAAQ,WAEN,MADA1nD,MAAKsnD,YAAYI,SACV1nD,MAGTgnC,QAAS,WACP,MAAOhnC,MAAKsnD,YAAYtgB,WAG1BH,kBAAmB,WACjB,MAAO7mC,MAAKsnD,YAAYzgB,qBAG1BrL,MAAO,SAASkzB,GACd,GAAIC,GAAgB3uD,KAAK+D,OAA0B,oBAAIa,SAAW5E,KAAK2wC,SAASuV,QAAQ16C,cACpFqK,EAAc7V,KAAK+D,OAAOiqD,OAAOU,GACnC/zB,MAAS36B,KAAK+D,OAAO8pD,YACrB/xB,QAAW97B,KAAK+D,OAAO+3B,QACvBxQ,QAAWqjC,EACXn5B,gBAAmBx1B,KAAK+D,OAAO++C,8BAKjC,OAH8B,gBAApB,IACRviD,EAAUI,OAAOowC,OAAO2d,GAEnB74C,GAOTw4C,YAAa,WACXruD,KAAKqxB,GAAG,iBAAkB,WACxB,GAAIu9B,IAAsB,EACtBxqB,EAAsBpkC,IAC1BokC,GAAKuM,SAAS7vC,UAAUi1C,kBAAkB,WACxCx1C,EAAUI,OAAOwvC,gBAAgB/L,EAAKuM,SAAStpB,SAC/C+c,EAAK5I,MAAM4I,EAAKuM,SAAStpB,UACxBunC,SAIRruD,WA+BH,SAAUA,GACR,GAAIG,GAA0BH,EAAUG,IACpCmuD,EAA0B,kCAC1BC,EAA0B,0BAC1BC,EAA0B,gCAC1BC,EAA0B,6BAG9BzuD,GAAUK,QAAQquD,OAAS1uD,EAAUM,KAAKuwB,WAAWrqB,QAEnDwO,YAAa,SAASulB,EAAMtgB,GAC1Bxa,KAAK86B,KAAaA,EAClB96B,KAAKwa,UAAaA,GAGpBwrC,SAAU,WACR,IAAIhmD,KAAKkvD,UAAT,CAIA,GAAI9qB,GAAOpkC,KACPmvD,EAAkB,SAAS33B,GACzB,GAAI+E,GAAa6H,EAAKgrB,YAClB7yB,IAAc6H,EAAKirB,gBACrBjrB,EAAKzS,KAAK,OAAQ4K,GAElB6H,EAAKzS,KAAK,OAAQ4K,GAEpB6H,EAAKojB,OACLhwB,EAAM2D,iBACN3D,EAAM4D,kBAGZ16B,GAAImxB,QAAQuS,EAAKtJ,KAAM,QAAS,WAC1Bp6B,EAAIo0B,SAASsP,EAAKtJ,KAAM+zB,IAC1BjpB,WAAW,WAAaxB,EAAKojB,QAAW,KAI5C9mD,EAAImxB,QAAQ7xB,KAAKwa,UAAW,UAAW,SAASgd,GAC9C,GAAI8uB,GAAU9uB,EAAM8uB,OAChBA,KAAY/lD,EAAUc,WACxB8tD,EAAgB33B,GAEd8uB,IAAY/lD,EAAUe,aACxB8iC,EAAKzS,KAAK,UACVyS,EAAKojB,UAIT9mD,EAAI42B,SAASt3B,KAAKwa,UAAW,sCAAuC,QAAS20C,GAE7EzuD,EAAI42B,SAASt3B,KAAKwa,UAAW,wCAAyC,QAAS,SAASgd,GACtF4M,EAAKzS,KAAK,UACVyS,EAAKojB,OACLhwB,EAAM2D,iBACN3D,EAAM4D,mBAOR,KAJA,GAAIk0B,GAAgBtvD,KAAKwa,UAAUqS,iBAAiBiiC,GAChDxsD,EAAgB,EAChBC,EAAgB+sD,EAAa/sD,OAC7BgtD,EAAiB,WAAatD,cAAc7nB,EAAK+oB,WAC5C5qD,EAAFD,EAAUA,IACf5B,EAAImxB,QAAQy9B,EAAahtD,GAAI,SAAUitD,EAGzCvvD,MAAKkvD,WAAY,IAOnBE,WAAY,WAMV,IALA,GAAIhiD,GAAUpN,KAAKqvD,oBACfG,EAAUxvD,KAAKwa,UAAUqS,iBAAiBkiC,GAC1CxsD,EAAUitD,EAAOjtD,OACjBD,EAAU,EAELC,EAAFD,EAAUA,IACf8K,EAAKoiD,EAAOltD,GAAG2sB,aAAa+/B,IAAqBQ,EAAOltD,GAAGwoB,KAE7D,OAAO1d,IAqBTqiD,aAAc,SAASC,GAQrB,IAPA,GAAIC,GACAC,EACAC,EACAC,EAAiBlrD,SAASgoB,cAAc,UACxC4iC,EAAiBxvD,KAAKwa,UAAUqS,iBAAiBkiC,GACjDxsD,EAAiBitD,EAAOjtD,OACxBD,EAAiB,EACZC,EAAFD,EAAUA,IACfqtD,EAAQH,EAAOltD,GAGXqtD,IAAUG,IAMVJ,GAAoC,WAAfC,EAAMjyC,OAI/BkyC,EAAYD,EAAM1gC,aAAa+/B,GAC/Ba,EAAa7vD,KAAKqvD,iBAAoD,iBAA1BrvD,MAAoB,gBAAoBA,KAAKqvD,gBAAgBpgC,aAAa2gC,IAAc,GAAMD,EAAMI,aAChJJ,EAAM7kC,MAAQ+kC,KAOlBtI,KAAM,SAAS8H,GACb,IAAI3uD,EAAIo0B,SAAS90B,KAAK86B,KAAM+zB,GAA5B,CAIA,GAAIzqB,GAAcpkC,KACdgwD,EAAchwD,KAAKwa,UAAUoS,cAAckiC,EAU/C,IATA9uD,KAAKqvD,gBAAkBA,EACvBrvD,KAAKgmD,WACLhmD,KAAKyvD,eACDJ,IACFrvD,KAAKmtD,SAAWhB,YAAY,WAAa/nB,EAAKqrB,cAAa,IAAU,MAEvE/uD,EAAIk0B,SAAS50B,KAAK86B,KAAM+zB,GACxB7uD,KAAKwa,UAAUkO,MAAME,QAAU,GAC/B5oB,KAAK2xB,KAAK,QACNq+B,IAAeX,EACjB,IACEW,EAAWhsC,QACX,MAAMtc,OAOZ8/C,KAAM,WACJyE,cAAcjsD,KAAKmtD,UACnBntD,KAAKqvD,gBAAkB,KACvB3uD,EAAIq0B,YAAY/0B,KAAK86B,KAAM+zB,GAC3B7uD,KAAKwa,UAAUkO,MAAME,QAAU,OAC/B5oB,KAAK2xB,KAAK,YAGbpxB,WAcH,SAAUA,GACR,GAAIG,GAAMH,EAAUG,IAEhBuvD,GACF3kD,SAAU,YAGR4kD,GACF7uB,KAAU,EACV8uB,OAAU,EACVC,QAAU,EACVz2B,SAAU,SACV02B,QAAU,EACV/kD,SAAU,WACV6nC,IAAU,EACVmd,OAAU,GAGRC,GACFC,OAAY,UACZ1R,SAAY,OACZ5e,OAAY,OACZuwB,UAAY,QACZC,QAAY,EACZL,QAAY,EACZ/kD,SAAY,WACZg2B,MAAY,OACZ6R,IAAY,OAGVwd,GACFC,kBAAmB,GACnBC,OAAmB,GAGrBtwD,GAAUK,QAAQkwD,OAAS,SAAStnD,EAAQsxB,GAC1C,GAAInL,GAAQ/qB,SAASuC,cAAc,QACnC,KAAK5G,EAAUirB,QAAQkE,oBAAoBC,GAEzC,YADAmL,EAAKpS,MAAME,QAAU,OAGvB,IAAI/nB,GAAO2I,EAAOg9B,OAAOshB,SAASzgC,QAAQ4H,aAAa,OACnDpuB,KACF8vD,EAAgB9vD,KAAOA,EAGzB,IAAIkwD,GAAUnsD,SAASuC,cAAc,MAErC5G,GAAUM,KAAKuqB,OAAO8kC,GAAen+B,OACnCkO,MAAQnF,EAAK7D,YAAe,KAC5BiJ,OAAQpF,EAAK0H,aAAe,OAG9B9hC,EAAIw1B,OAAOvG,GAAO8K,KAAKs2B,GACvBrwD,EAAIw1B,OAAO66B,GAASt2B,KAAKK,GAEzBp6B,EAAI22B,UAAUk5B,GAAal/B,GAAG1B,GAC9BjvB,EAAI0+B,cAAcuxB,GAAiBt/B,GAAG1B,GAEtCjvB,EAAI22B,UAAU64B,GAAe7+B,GAAG0/B,GAChCrwD,EAAI22B,UAAU44B,GAAY5+B,GAAGyJ,EAE7B,IAAIlN,GAAY,wBAA0B+B,GAAQ,qBAAuB,cACzEjvB,GAAImxB,QAAQlC,EAAO/B,EAAW,WAC5BpkB,EAAOgjB,YAAY,aAAcmD,EAAM7E,OACvC6E,EAAM7E,MAAQ,KAGhBpqB,EAAImxB,QAAQlC,EAAO,QAAS,SAAS6H,GAC/B92B,EAAIo0B,SAASgG,EAAM,+BACrBtD,EAAM2D,iBAGR3D,EAAM4D,sBAGT76B,WAiBH,SAAUA,GACR,GAAIywD,GAAgC,6BAChCC,EAAgC,8BAChCC,EAAgC,2BAChCC,EAAgC,0BAChCzwD,EAAgCH,EAAUG,GAE9CH,GAAUK,QAAQ4tD,QAAUtkC,KAAKnjB,QAE/BwO,YAAa,SAASixB,EAAQhsB,EAAW42C,GACvCpxD,KAAKwmC,OAAaA,EAClBxmC,KAAKwa,UAAmC,gBAAhB,GAA2B5V,SAASsjB,eAAe1N,GAAaA,EACxFxa,KAAK2wC,SAAanK,EAAOmK,SAEzB3wC,KAAKqxD,UAAU,WACfrxD,KAAKqxD,UAAU,UAEfrxD,KAAKgmD,WACDoL,GAAcpxD,KAAKunD,MAKvB,KAHA,GAAI+J,GAAoBtxD,KAAKwa,UAAUqS,iBAAiB,yCACpDtqB,EAAoB+uD,EAAiB/uD,OACrCD,EAAoB,EACfC,EAAFD,EAAUA,IACf,GAAI/B,GAAUK,QAAQkwD,OAAO9wD,KAAMsxD,EAAiBhvD,KAIxD+uD,UAAW,SAAS3zC,GAUlB,IATA,GAIIod,GACAy2B,EACAxrD,EACA+kB,EACA0mC,EARApI,EAAUppD,KAAK0d,EAAO,SAAWnd,EAAUM,KAAKyvB,MAAMtwB,KAAKwa,UAAUqS,iBAAiB,mBAAqBnP,EAAO,MAAM7d,MACxH0C,EAAU6mD,EAAM7mD,OAChBD,EAAU,EACV8+B,EAAUphC,KAAK0d,EAAO,cAMjBnb,EAAFD,EAAUA,IACfw4B,EAAUsuB,EAAM9mD,GAChByD,EAAU+0B,EAAK7L,aAAa,kBAAoBvR,GAChDoN,EAAUgQ,EAAK7L,aAAa,kBAAoBvR,EAAO,UACvD6zC,EAAUvxD,KAAKwa,UAAUoS,cAAc,mBAAqBlP,EAAO,WAAa3X,EAAO,MACvFyrD,EAAUxxD,KAAKyxD,WAAW32B,EAAM/0B,GAEhCq7B,EAAQr7B,EAAO,IAAM+kB,IACnBgQ,KAAQA,EACRy2B,MAAQA,EACRxrD,KAAQA,EACR+kB,MAAQA,EACR0mC,OAAQA,EACR/T,OAAQ,IAKdgU,WAAY,SAAS32B,EAAMvM,GACzB,GAEIijC,GACAE,EAHAttB,EAAgBpkC,KAChB2xD,EAAgB3xD,KAAKwa,UAAUoS,cAAc,2BAA6B2B,EAAU,KA+BxF,OA3BIojC,KAEEH,EADAjxD,EAAUK,QAAQ,UAAY2tB,GACrB,GAAIhuB,GAAUK,QAAQ,UAAY2tB,GAASuM,EAAM62B,GAEjD,GAAIpxD,GAAUK,QAAQquD,OAAOn0B,EAAM62B,GAGhDH,EAAOngC,GAAG,OAAQ,WAChBqgC,EAAgBttB,EAAKuM,SAAS7vC,UAAUgb,cAExCsoB,EAAKoC,OAAO7U,KAAK,eAAiBpD,QAASA,EAASqjC,gBAAiBD,EAAeE,YAAa/2B,MAGnG02B,EAAOngC,GAAG,OAAQ,SAASkL,GACrBm1B,GACFttB,EAAKuM,SAAS7vC,UAAUgzC,YAAY4d,GAEtCttB,EAAK0tB,aAAavjC,EAASgO,GAE3B6H,EAAKoC,OAAO7U,KAAK,eAAiBpD,QAASA,EAASqjC,gBAAiBD,EAAeE,YAAa/2B,MAGnG02B,EAAOngC,GAAG,SAAU,WAClB+S,EAAKoC,OAAOxiB,OAAM,GAClBogB,EAAKoC,OAAO7U,KAAK,iBAAmBpD,QAASA,EAASqjC,gBAAiBD,EAAeE,YAAa/2B,OAGhG02B,GASThlC,YAAa,SAAS+B,EAASwjC,GAC7B,IAAI/xD,KAAKgyD,iBAAT,CAIA,GAAIC,GAAajyD,KAAKkyD,eAAe3jC,EAAU,IAAMwjC,EAGjDE,IAAcA,EAAWT,SAAWS,EAAWxU,MACjDwU,EAAWT,OAAOjK,OAElBvnD,KAAK8xD,aAAavjC,EAASwjC,KAI/BD,aAAc,SAASvjC,EAASwjC,GAE9B/xD,KAAKwmC,OAAOxiB,OAAM,GAElBhkB,KAAK2wC,SAASlwC,SAASs2C,KAAKxoB,EAASwjC,GACrC/xD,KAAKmyD,qBAGPC,WAAY,SAASjvC,GACnB,GAAIqjB,GAASxmC,KAAKwmC,MACH,iBAAXrjB,GACEqjB,EAAOshB,WACHthB,EAAO8gB,cAAgB9gB,EAAOshB,SAChCthB,EAAO7U,KAAK,cAAe,YAE3B6U,EAAO7U,KAAK,cAAe,aAIrB,cAAVxO,GACAqjB,EAAO7U,KAAK,eAIlBq0B,SAAU,WAQR,IAPA,GAAI5hB,GAAYpkC,KACZwmC,EAAYxmC,KAAKwmC,OACjBhsB,EAAYxa,KAAKwa,UACjB4uC,EAAYppD,KAAKqyD,aAAat4B,OAAO/5B,KAAKsyD,aAC1C/vD,EAAY6mD,EAAM7mD,OAClBD,EAAY,EAEPC,EAAFD,EAAUA,IAGW,MAAtB8mD,EAAM9mD,GAAG2C,SACXvE,EAAI0+B,eACF2B,KAAc,eACdwxB,aAAc,OACblhC,GAAG+3B,EAAM9mD,IAEZ5B,EAAI0+B,eAAgBmzB,aAAc,OAAQlhC,GAAG+3B,EAAM9mD,GAKvD5B,GAAI42B,SAAS9c,EAAW,oDAAqD,YAAa,SAASgd,GAASA,EAAM2D,mBAElHz6B,EAAI42B,SAAS9c,EAAW,2BAA4B,QAAS,SAASgd,GACpE,GAAIsD,GAAgB96B,KAChBuuB,EAAgBuM,EAAK7L,aAAa,0BAClC8iC,EAAgBj3B,EAAK7L,aAAa,+BACtCmV,GAAK5X,YAAY+B,EAASwjC,GAC1Bv6B,EAAM2D,mBAGRz6B,EAAI42B,SAAS9c,EAAW,0BAA2B,QAAS,SAASgd,GACnE,GAAIrU,GAASnjB,KAAKivB,aAAa,wBAC/BmV,GAAKguB,WAAWjvC,GAChBqU,EAAM2D,mBAGRqL,EAAOnV,GAAG,uBAAwB,WAC9B+S,EAAK+tB,sBAGT3rB,EAAOnV,GAAG,iBAAkB,WAC1B+S,EAAKloB,SAAW,OAGdlc,KAAKwmC,OAAOziC,OAAOqoD,eACnB5lB,EAAOnV,GAAG,uBAAwB,WAC9B+S,EAAK5pB,UAAUqS,iBAAiB,wCAAwC,GAAGnE,MAAME,QAAU,KAE/F4d,EAAOnV,GAAG,yBAA0B,WAChC+S,EAAK5pB,UAAUqS,iBAAiB,wCAAwC,GAAGnE,MAAME,QAAU,UAInG4d,EAAOnV,GAAG,cAAe,SAASi2B,GAE5B9gB,EAAOshB,UACPliB,WAAW,WACTxB,EAAK4tB,iBAAoC,aAAhB1K,EACzBljB,EAAK+tB,oBACD/tB,EAAK4tB,iBACPtxD,EAAIk0B,SAASpa,EAAWy2C,GAExBvwD,EAAIq0B,YAAYva,EAAWy2C,IAE5B,MAKXkB,kBAAmB,WAEjB,GAEI7vD,GACAm7C,EACAt6B,EACAoL,EALA2jC,EAAoBlyD,KAAKkyD,eACzBM,EAAoBxyD,KAAKwyD,aAM7B,KAAKlwD,IAAK4vD,GACR3jC,EAAU2jC,EAAe5vD,GACrBtC,KAAKgyD,kBACPvU,GAAQ,EACR/8C,EAAIq0B,YAAYxG,EAAQuM,KAAMo2B,GAC1B3iC,EAAQgjC,OACV7wD,EAAIq0B,YAAYxG,EAAQgjC,MAAOL,GAE7B3iC,EAAQijC,QACVjjC,EAAQijC,OAAOhK,SAGjB/J,EAAQz9C,KAAK2wC,SAASlwC,SAASg9C,MAAMlvB,EAAQxoB,KAAMwoB,EAAQzD,OAC3DpqB,EAAIq0B,YAAYxG,EAAQuM,KAAMk2B,GAC1BziC,EAAQgjC,OACV7wD,EAAIq0B,YAAYxG,EAAQgjC,MAAOP,IAG/BziC,EAAQkvB,QAAUA,IAItBlvB,EAAQkvB,MAAQA,EACZA,GACF/8C,EAAIk0B,SAASrG,EAAQuM,KAAMo2B,GACvB3iC,EAAQgjC,OACV7wD,EAAIk0B,SAASrG,EAAQgjC,MAAOL,GAE1B3iC,EAAQijC,SACY,gBAAZ,IAAwBjxD,EAAUM,KAAKuqB,OAAOqyB,GAAOr9C,YAExDmuB,EAAQijC,OAAOiB,aAAelyD,EAAUM,KAAKuqB,OAAOqyB,GAAOr9C,YAK9Dq9C,EAAyB,IAAjBA,EAAMl7C,OAAek7C,EAAM,IAAK,EACxClvB,EAAQkvB,MAAQA,GAElBlvB,EAAQijC,OAAOjK,KAAK9J,IAEpBlvB,EAAQijC,OAAOhK,UAInB9mD,EAAIq0B,YAAYxG,EAAQuM,KAAMo2B,GAC1B3iC,EAAQgjC,OACV7wD,EAAIq0B,YAAYxG,EAAQgjC,MAAOL,GAE7B3iC,EAAQijC,QACVjjC,EAAQijC,OAAOhK,QAKrB,KAAKllD,IAAKkwD,GACRrvC,EAASqvC,EAAclwD,GAEH,gBAAhB6gB,EAAOpd,OACTod,EAAOs6B,MAAQz9C,KAAKwmC,OAAO8gB,cAAgBtnD,KAAKwmC,OAAOshB,SACnD3kC,EAAOs6B,MACT/8C,EAAIk0B,SAASzR,EAAO2X,KAAMq2B,GAE1BzwD,EAAIq0B,YAAY5R,EAAO2X,KAAMq2B,KAMrC5J,KAAM,WACJvnD,KAAKwa,UAAUkO,MAAME,QAAU,IAGjC4+B,KAAM,WACJxnD,KAAKwa,UAAUkO,MAAME,QAAU,WAIlCroB,WACF,SAAUA,GACPA,EAAUK,QAAQ8xD,mBAAqBnyD,EAAUK,QAAQquD,OAAOloD,QAC5DwgD,KAAM,SAAS8H,GACXrvD,KAAKuqB,KAAK8kC,OAKnB9uD,WACF,SAAUA,GACT,GACIwuD,IAD0BxuD,EAAUG,IACV,iCAC1BsuD,EAA0B,6BAE9BzuD,GAAUK,QAAQ+xD,sBAAwBpyD,EAAUK,QAAQquD,OAAOloD,QACjE0rD,aAAa,EAEbrD,WAAY,WAMV,IALA,GAAIhiD,MACAoiD,EAAUxvD,KAAKwa,UAAUqS,iBAAiBkiC,GAC1CxsD,EAAUitD,EAAOjtD,OACjBD,EAAU,EAELC,EAAFD,EAAUA,IACf8K,EAAKoiD,EAAOltD,GAAG2sB,aAAa+/B,IAAqBQ,EAAOltD,GAAGwoB,KAE7D,OAAO1d,IAGTqiD,aAAc,SAASC,GAYrB,IAXA,GAAIC,GAGAG,EAAiBlrD,SAASgoB,cAAc,UACxC4iC,EAAiBxvD,KAAKwa,UAAUqS,iBAAiBkiC,GACjDxsD,EAAiBitD,EAAOjtD,OACxBD,EAAiB,EACjBswD,EAAkB5yD,KAAoB,gBAAMO,EAAUM,KAAKuqB,OAAOprB,KAAKqvD,iBAAiBjvD,UAAaJ,KAAKqvD,gBAAgB,GAAKrvD,KAAKqvD,gBAAmB,KACvJ7P,EAAiB,EAAiBoT,EAAa3jC,aAAa,SAAW,KACvEmwB,EAAiB,EAAa7+C,EAAUI,OAAO2xC,YAAYC,WAAWiN,EAAU,SAAW,KAEtFj9C,EAAFD,EAAUA,IACfqtD,EAAQH,EAAOltD,GAEXqtD,IAAUG,IAIVJ,GAAoC,WAAfC,EAAMjyC,MAGc,UAAzCiyC,EAAM1gC,aAAa+/B,KAGjBW,EAAM7kC,MAFNs0B,EACEA,EAAM,IAAkB,GAAZA,EAAM,GACN,QAAUA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAExE,OAASA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGxD,oBAOvB7+C,WACF,SAAUA,GACqBA,EAAUG,GAIxCH,GAAUK,QAAQiyD,qBAAuBtyD,EAAUK,QAAQquD,OAAOloD,QAChE0rD,aAAa,EAEbrD,WAAY,WACV,OAAQrQ,KAAS/+C,KAAKwa,UAAUoS,cAAc,wCAAwC9B,QAGxF2kC,aAAc,WACZ,GAAIK,GAAiBlrD,SAASgoB,cAAc,UACxC+iC,EAAiB3vD,KAAKwa,UAAUoS,cAAc,wCAC9CgmC,EAAkB5yD,KAAoB,gBAAMO,EAAUM,KAAKuqB,OAAOprB,KAAKqvD,iBAAiBjvD,UAAaJ,KAAKqvD,gBAAgB,GAAKrvD,KAAKqvD,gBAAmB,KACvJpQ,EAAiB,EAAiB2T,EAAa3jC,aAAa,SAAW,KACvE8vB,EAAiB,EAAax+C,EAAUI,OAAO2xC,YAAYW,cAAcgM,GAAY,IAErF0Q,IAASA,IAAUG,GAAkB/Q,IAAS,QAAU3sC,KAAK2sC,KAC/D4Q,EAAM7kC,MAAQi0B,OAKnBx+C"}
\ No newline at end of file
diff --git a/dist/wysihtml5x.js b/dist/wysihtml5x.js
index 04c2423..44def5d 100644
--- a/dist/wysihtml5x.js
+++ b/dist/wysihtml5x.js
@@ -25,7 +25,7 @@ if(!Array.isArray) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
};/**
- * @license wysihtml5x v0.4.6
+ * @license wysihtml5x v0.4.7
* https://github.com/Edicy/wysihtml5
*
* Author: Christopher Blum (https://github.com/tiff)
@@ -36,7 +36,7 @@ if(!Array.isArray) {
*
*/
var wysihtml5 = {
- version: "0.4.6",
+ version: "0.4.7",
// namespaces
commands: {},
@@ -8598,7 +8598,7 @@ wysihtml5.quirks.ensureProperClearing = (function() {
node = selection.anchorNode,
offset = selection.anchorOffset;
if (ofNode) {
- return (offset === 0 && (node.nodeName && node.nodeName === ofNode.toUpperCase() || wysihtml5.dom.getParentElement(node.parentNode, ofNode, 1)));
+ return (offset === 0 && (node.nodeName && node.nodeName === ofNode.toUpperCase() || wysihtml5.dom.getParentElement(node.parentNode, { nodeName: ofNode }, 1)));
} else {
return (offset === 0 && !this.getPreviousNode(node, true));
}
diff --git a/dist/wysihtml5x.min.js b/dist/wysihtml5x.min.js
index 9f1df00..d108ea2 100644
--- a/dist/wysihtml5x.min.js
+++ b/dist/wysihtml5x.min.js
@@ -1,9 +1,9 @@
-/*! wysihtml5x - v0.4.6 (2014-06-02) */
+/*! wysihtml5x - v0.4.7 (2014-06-02) */
-Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(Element.prototype,"textContent").get&&!function(){var a=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");Object.defineProperty(Element.prototype,"textContent",{get:function(){return a.get.call(this)},set:function(b){return a.set.call(this,b)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});var wysihtml5={version:"0.4.6",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"",EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,DELETE_KEY:46};!function(a){function b(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function c(a,b){return!(typeof a[b]!=t||!a[b])}function d(a,b){return typeof a[b]!=v}function e(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function f(a){return a&&A(a,z)&&C(a,y)}function g(a){return c(a,"body")?a.body:a.getElementsByTagName("body")[0]}function h(a){c(window,"console")&&b(window.console,"log")&&window.console.log(a)}function i(a,b){b?window.alert(a):h(a)}function j(a){E.initialized=!0,E.supported=!1,i("Rangy is not supported on this page in your browser. Reason: "+a,E.config.alertOnFail)}function k(a){i("Rangy warning: "+a,E.config.alertOnWarn)}function l(a){return a.message||a.description||String(a)}function m(){if(!E.initialized){var a,c=!1,d=!1;b(document,"createRange")&&(a=document.createRange(),A(a,x)&&C(a,w)&&(c=!0),a.detach());var e=g(document);if(!e||"body"!=e.nodeName.toLowerCase())return void j("No body element found");if(e&&b(e,"createTextRange")&&(a=e.createTextRange(),f(a)&&(d=!0)),!c&&!d)return void j("Neither Range nor TextRange are available");E.initialized=!0,E.features={implementsDomRange:c,implementsTextRange:d};var i,k;for(var m in D)(i=D[m])instanceof o&&i.init(i,E);for(var n=0,p=G.length;p>n;++n)try{G[n](E)}catch(q){k="Rangy init listener threw an exception. Continuing. Detail: "+l(q),h(k)}}}function n(a){a=a||window,m();for(var b=0,c=H.length;c>b;++b)H[b](a)}function o(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function p(a,b,c,d){var e=new o(b,c,function(a){if(!a.initialized){a.initialized=!0;try{d(E,a),a.supported=!0}catch(c){var e="Module '"+b+"' failed to load: "+l(c);h(e)}}});D[b]=e}function q(){}function r(){}var s="function"==typeof a.define&&a.define.amd,t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=e(b),B=e(c),C=e(d),D={},E={version:"1.3alpha.804",initialized:!1,supported:!0,util:{isHostMethod:b,isHostObject:c,isHostProperty:d,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:f,getBody:g},features:{},modules:D,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1}};E.fail=j,E.warn=k,{}.hasOwnProperty?E.util.extend=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&E.util.extend(d,e,!0),a[f]=e);return a}:j("hasOwnProperty not supported"),function(){var a=document.createElement("div");a.appendChild(document.createElement("span"));var b,c=[].slice;try{1==c.call(a.childNodes,0)[0].nodeType&&(b=function(a){return c.call(a,0)})}catch(d){}b||(b=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),E.util.toArray=b}();var F;b(document,"addEventListener")?F=function(a,b,c){a.addEventListener(b,c,!1)}:b(document,"attachEvent")?F=function(a,b,c){a.attachEvent("on"+b,c)}:j("Document does not have required addEventListener or attachEvent method"),E.util.addListener=F;var G=[];E.init=m,E.addInitListener=function(a){E.initialized?a(E):G.push(a)};var H=[];E.addCreateMissingNativeApiListener=function(a){H.push(a)},E.createMissingNativeApi=n,o.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=D[b],!(a&&a instanceof o))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]),p(!1,a,c,b)},E.createCoreModule=function(a,b,c){p(!0,a,b,c)},E.RangePrototype=q,E.rangePrototype=new q,E.selectionPrototype=new r;var I=!1,J=function(){I||(I=!0,E.initialized||m())};return typeof window==v?void j("No window found"):typeof document==v?void j("No document found"):(b(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",J,!1),F(window,"load",J),s&&a.define(function(){return E.amd=!0,E}),void(a.rangy=E))}(this),rangy.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)["+e(a)+"]["+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),rangy.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(Q(a,b.startContainer)||Q(a,b.endContainer))}function c(a){return a.document||R(a.startContainer)}function d(a){return new M(a.parentNode,P(a))}function e(a){return new M(a.parentNode,P(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return O(b)?c==b.length?K.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:T(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(A(a),A(b),c(b)!=c(a))throw new N("WRONG_DOCUMENT_ERR");var e=S(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=S(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach(!0)),10==d.nodeType)throw new N("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(!0),c.stop)return}else for(d=K.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach(!0)):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach(!0)):a.remove(),10==b.nodeType)throw new N("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!O(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&O(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+K.inspectNode(a.startContainer)+":"+a.startOffset+", "+K.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&O(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||O(this.sc)?U(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||O(this.ec)?U(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){this.code=this[a],this.codeName=a,this.message="RangeException: "+this.codeName}function p(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,W(a,d))return e;e=e.parentNode}return null}}function q(a,b){if(eb(a,b))throw new o("INVALID_NODE_TYPE_ERR")}function r(a){if(!a.startContainer)throw new N("INVALID_STATE_ERR")}function s(a,b){if(!W(b,a.nodeType))throw new o("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(O(a)?a.length:a.childNodes.length))throw new N("INDEX_SIZE_ERR")}function u(a,b){if(cb(a,!0)!==cb(b,!0))throw new N("WRONG_DOCUMENT_ERR")}function v(a){if(db(a,!0))throw new N("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new N(b)}function x(a){return Y&&K.isBrokenNode(a)||!W($,a.nodeType)&&!cb(a,!0)}function y(a,b){return b<=(O(a)?a.length:a.childNodes.length)}function z(a){return!!a.startContainer&&!!a.endContainer&&!x(a.startContainer)&&!x(a.endContainer)&&y(a.startContainer,a.startOffset)&&y(a.endContainer,a.endOffset)}function A(a){if(r(a),!z(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function B(a,b){A(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;O(e)&&f>0&&f0&&d=P(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function C(a){a.START_TO_START=kb,a.START_TO_END=lb,a.END_TO_END=mb,a.END_TO_START=nb,a.NODE_BEFORE=ob,a.NODE_AFTER=pb,a.NODE_BEFORE_AND_AFTER=qb,a.NODE_INSIDE=rb}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){A(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=U(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,v),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function F(c,f,g){function h(a,b){return function(c){r(this),s(c,Z),s(X(c),$);var f=(a?d:e)(c);(b?i:l)(this,f.node,f.offset)}}function i(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((X(b)!=X(d)||1==S(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function l(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((X(b)!=X(d)||-1==S(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var m=function(){};m.prototype=a.rangePrototype,c.prototype=new m,L.extend(c.prototype,{setStart:function(a,b){r(this),q(a,!0),t(a,b),i(this,a,b)},setEnd:function(a,b){r(this),q(a,!0),t(a,b),l(this,a,b)},setStartAndEnd:function(){r(this);var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:h(!0,!0),setStartAfter:h(!1,!0),setEndBefore:h(!0,!1),setEndAfter:h(!1,!1),collapse:function(a){A(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(this),q(a,!0),f(this,a,0,a,V(a))},selectNode:function(a){r(this),q(a,!1),s(a,Z);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:E(k,f),deleteContents:E(j,f),canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},detach:function(){g(this)},splitBoundaries:function(){B(this)},splitBoundariesPreservingPositions:function(a){B(this,a)},normalizeBoundaries:function(){A(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=P(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(O(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&O(i)&&e(i)}h=!this.collapsed}if(h){if(O(a))0==b&&g(a);else if(bx",gb=3==fb.firstChild.nodeType}catch(hb){}a.features.htmlParsingConforms=gb;var ib=gb?function(a){var b=this.startContainer,c=R(b);if(!b)throw new N("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:O(b)&&(d=K.parentElement(b)),d=null===d||"HTML"==d.nodeName&&K.isHtmlNamespace(R(d).documentElement)&&K.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,K.fragmentFromNodeChildren(d)}:function(a){r(this);var b=c(this),d=b.createElement("body");return d.innerHTML=a,K.fragmentFromNodeChildren(d)},jb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],kb=0,lb=1,mb=2,nb=3,ob=0,pb=1,qb=2,rb=3;L.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){A(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==nb||a==kb?"start":"end",h=a==lb||a==kb?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],S(c,d,e,f)},insertNode:function(a){if(A(this),s(a,ab),v(this.startContainer),Q(a,this.startContainer))throw new N("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){A(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&O(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(s(a,bb),!this.canSurroundContents())throw new o("BAD_BOUNDARYPOINTS_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){A(this);for(var a,b=new J(c(this)),d=jb.length;d--;)a=jb[d],b[a]=this[a];return b},toString:function(){A(this);var a=this.startContainer;if(a===this.endContainer&&O(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){A(this);var b=a.parentNode,c=P(a);if(!b)throw new N("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qb:ob:e>0?pb:rb},comparePoint:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)<0?-1:S(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ib,toHtml:function(){A(this);var a=this.commonAncestorContainer.parentNode.cloneNode(!1);return a.appendChild(this.cloneContents()),a.innerHTML},intersectsNode:function(a,b){if(A(this),w(a,"NOT_FOUND_ERR"),R(a)!==c(this))return!1;var d=a.parentNode,e=P(a);w(d,"NOT_FOUND_ERR");var f=S(d,e,this.endContainer,this.endOffset),g=S(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)>=0&&S(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=S(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=S(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==S(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==S(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new o("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==rb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,V(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();b.setEnd(d,d.length);var e=this.containsRange(b);return b.detach(),e}return this.containsNodeContents(a)},getNodes:function(a,b){return A(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){r(this),this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){r(this),this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||K.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length,e.detach()),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return J.rangesEqual(this,a)},isValid:function(){return z(this)},inspect:function(){return m(this)}}),F(J,H,I),L.extend(J,{rangeProperties:jb,RangeIterator:n,copyComparisonConstants:D,createPrototypeRange:F,inspect:m,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=J,a.RangeException=o}),rangy.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=n.length;c--;)b=n[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}function k(a){a.nativeRange.detach(),a.detached=!0;for(var b=n.length;b--;)a[n[b]]=null}var l,m,n=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g,k),l=c.prototype,l.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},l.cloneContents=function(){return this.nativeRange.cloneContents()},l.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},l.collapse=function(a){this.nativeRange.collapse(a),d(this)},l.cloneRange=function(){return new c(this.nativeRange.cloneRange())},l.refresh=function(){d(this)},l.toString=function(){return this.nativeRange.toString()};var o=document.createTextNode("test");i(document).appendChild(o);var p=document.createRange();p.setStart(o,0),p.setEnd(o,0);try{p.setStart(o,1),l.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},l.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},m=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(q){l.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},l.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},m=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}l.setStartBefore=m("setStartBefore","setEndBefore"),l.setStartAfter=m("setStartAfter","setEndAfter"),l.setEndBefore=m("setEndBefore","setStartBefore"),l.setEndAfter=m("setEndAfter","setStartAfter"),l.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},p.selectNodeContents(o),p.setEnd(o,3);var r=document.createRange();r.selectNodeContents(o),r.setEnd(o,4),r.setStart(o,2),l.compareBoundaryPoints=-1==p.compareBoundaryPoints(p.START_TO_END,r)&&1==p.compareBoundaryPoints(p.END_TO_START,r)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var s=document.createElement("div");s.innerHTML="123";var t=s.firstChild,u=i(document);u.appendChild(s),p.setStart(t,1),p.setEnd(t,2),p.deleteContents(),"13"==t.data&&(l.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},l.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),u.removeChild(s),u=null,f.isHostMethod(p,"createContextualFragment")&&(l.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(o),p.detach(),r.detach(),l.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}
+Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(Element.prototype,"textContent").get&&!function(){var a=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");Object.defineProperty(Element.prototype,"textContent",{get:function(){return a.get.call(this)},set:function(b){return a.set.call(this,b)}})}(),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});var wysihtml5={version:"0.4.7",commands:{},dom:{},quirks:{},toolbar:{},lang:{},selection:{},views:{},INVISIBLE_SPACE:"",EMPTY_FUNCTION:function(){},ELEMENT_NODE:1,TEXT_NODE:3,BACKSPACE_KEY:8,ENTER_KEY:13,ESCAPE_KEY:27,SPACE_KEY:32,DELETE_KEY:46};!function(a){function b(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function c(a,b){return!(typeof a[b]!=t||!a[b])}function d(a,b){return typeof a[b]!=v}function e(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function f(a){return a&&A(a,z)&&C(a,y)}function g(a){return c(a,"body")?a.body:a.getElementsByTagName("body")[0]}function h(a){c(window,"console")&&b(window.console,"log")&&window.console.log(a)}function i(a,b){b?window.alert(a):h(a)}function j(a){E.initialized=!0,E.supported=!1,i("Rangy is not supported on this page in your browser. Reason: "+a,E.config.alertOnFail)}function k(a){i("Rangy warning: "+a,E.config.alertOnWarn)}function l(a){return a.message||a.description||String(a)}function m(){if(!E.initialized){var a,c=!1,d=!1;b(document,"createRange")&&(a=document.createRange(),A(a,x)&&C(a,w)&&(c=!0),a.detach());var e=g(document);if(!e||"body"!=e.nodeName.toLowerCase())return void j("No body element found");if(e&&b(e,"createTextRange")&&(a=e.createTextRange(),f(a)&&(d=!0)),!c&&!d)return void j("Neither Range nor TextRange are available");E.initialized=!0,E.features={implementsDomRange:c,implementsTextRange:d};var i,k;for(var m in D)(i=D[m])instanceof o&&i.init(i,E);for(var n=0,p=G.length;p>n;++n)try{G[n](E)}catch(q){k="Rangy init listener threw an exception. Continuing. Detail: "+l(q),h(k)}}}function n(a){a=a||window,m();for(var b=0,c=H.length;c>b;++b)H[b](a)}function o(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function p(a,b,c,d){var e=new o(b,c,function(a){if(!a.initialized){a.initialized=!0;try{d(E,a),a.supported=!0}catch(c){var e="Module '"+b+"' failed to load: "+l(c);h(e)}}});D[b]=e}function q(){}function r(){}var s="function"==typeof a.define&&a.define.amd,t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=e(b),B=e(c),C=e(d),D={},E={version:"1.3alpha.804",initialized:!1,supported:!0,util:{isHostMethod:b,isHostObject:c,isHostProperty:d,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:f,getBody:g},features:{},modules:D,config:{alertOnFail:!0,alertOnWarn:!1,preferTextRange:!1}};E.fail=j,E.warn=k,{}.hasOwnProperty?E.util.extend=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&E.util.extend(d,e,!0),a[f]=e);return a}:j("hasOwnProperty not supported"),function(){var a=document.createElement("div");a.appendChild(document.createElement("span"));var b,c=[].slice;try{1==c.call(a.childNodes,0)[0].nodeType&&(b=function(a){return c.call(a,0)})}catch(d){}b||(b=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),E.util.toArray=b}();var F;b(document,"addEventListener")?F=function(a,b,c){a.addEventListener(b,c,!1)}:b(document,"attachEvent")?F=function(a,b,c){a.attachEvent("on"+b,c)}:j("Document does not have required addEventListener or attachEvent method"),E.util.addListener=F;var G=[];E.init=m,E.addInitListener=function(a){E.initialized?a(E):G.push(a)};var H=[];E.addCreateMissingNativeApiListener=function(a){H.push(a)},E.createMissingNativeApi=n,o.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=D[b],!(a&&a instanceof o))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error("Module '"+this.name+"' failed to load: "+a)},warn:function(a){E.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){E.warn("DEPRECATED: "+a+" in module "+this.name+"is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},E.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]),p(!1,a,c,b)},E.createCoreModule=function(a,b,c){p(!0,a,b,c)},E.RangePrototype=q,E.rangePrototype=new q,E.selectionPrototype=new r;var I=!1,J=function(){I||(I=!0,E.initialized||m())};return typeof window==v?void j("No window found"):typeof document==v?void j("No document found"):(b(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",J,!1),F(window,"load",J),s&&a.define(function(){return E.amd=!0,E}),void(a.rangy=E))}(this),rangy.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==D||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(H(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=D)return a.ownerDocument;if(typeof a.document!=D)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=D)return c.defaultView;if(typeof c.parentWindow!=D)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=D)return a.contentDocument;if(typeof a.contentWindow!=D)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=D)return a.contentWindow;if(typeof a.contentDocument!=D)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&E.isHostMethod(a,"setTimeout")&&E.isHostObject(a,"document")}function t(a,b,c){var d;if(a?E.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)["+e(a)+"]["+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a){this.root=a,this._next=a}function A(a){return new z(a)}function B(a,b){this.node=a,this.offset=b}function C(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var D="undefined",E=a.util;E.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),E.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var F=document.createElement("div");E.areHostMethods(F,["insertBefore","appendChild","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),E.isHostProperty(F,"innerHTML")||b.fail("Element is missing innerHTML property");var G=document.createTextNode("test");E.areHostMethods(G,["splitText","deleteData","insertData","appendData","cloneNode"]||!E.areHostObjects(F,["previousSibling","nextSibling","childNodes","parentNode"])||!E.areHostProperties(G,["data"]))||b.fail("Incomplete Text Node implementation");var H=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},I=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="
",I=w(c),a.features.crashyTextNodes=I}();var J;typeof window.getComputedStyle!=D?J=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=D?J=function(a,b){return a.currentStyle[b]}:b.fail("No means of obtaining computed style properties found"),z.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},B.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},C.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11},C.prototype.toString=function(){return this.message},a.dom={arrayContains:H,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:E.getBody,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:J,fragmentFromNodeChildren:y,createIterator:A,DomPosition:B},a.DOMException=C}),rangy.createCoreModule("DomRange",["DomUtil"],function(a){function b(a,b){return 3!=a.nodeType&&(Q(a,b.startContainer)||Q(a,b.endContainer))}function c(a){return a.document||R(a.startContainer)}function d(a){return new M(a.parentNode,P(a))}function e(a){return new M(a.parentNode,P(a)+1)}function f(a,b,c){var d=11==a.nodeType?a.firstChild:a;return O(b)?c==b.length?K.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:T(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function g(a,b,d){if(A(a),A(b),c(b)!=c(a))throw new N("WRONG_DOCUMENT_ERR");var e=S(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=S(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return d?0>=e&&f>=0:0>e&&f>0}function h(a){for(var b,d,e,f=c(a.range).createDocumentFragment();d=a.next();){if(b=a.isPartiallySelectedSubtree(),d=d.cloneNode(!b),b&&(e=a.getSubtreeIterator(),d.appendChild(h(e)),e.detach(!0)),10==d.nodeType)throw new N("HIERARCHY_REQUEST_ERR");f.appendChild(d)}return f}function i(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),i(g,b,c),g.detach(!0),c.stop)return}else for(d=K.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function j(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),j(b),b.detach(!0)):a.remove()}function k(a){for(var b,d,e=c(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),d=a.getSubtreeIterator(),b.appendChild(k(d)),d.detach(!0)):a.remove(),10==b.nodeType)throw new N("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function l(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return i(new n(a,!1),function(b){if(!(e&&!d.test(b.nodeType)||f&&!c(b))){var h=a.startContainer;if(b!=h||!O(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&O(i)&&0==a.endOffset||g.push(b)}}}),g}function m(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+K.inspectNode(a.startContainer)+":"+a.startOffset+", "+K.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function n(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&O(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||O(this.sc)?U(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||O(this.ec)?U(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function o(a){this.code=this[a],this.codeName=a,this.message="RangeException: "+this.codeName}function p(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,W(a,d))return e;e=e.parentNode}return null}}function q(a,b){if(eb(a,b))throw new o("INVALID_NODE_TYPE_ERR")}function r(a){if(!a.startContainer)throw new N("INVALID_STATE_ERR")}function s(a,b){if(!W(b,a.nodeType))throw new o("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(O(a)?a.length:a.childNodes.length))throw new N("INDEX_SIZE_ERR")}function u(a,b){if(cb(a,!0)!==cb(b,!0))throw new N("WRONG_DOCUMENT_ERR")}function v(a){if(db(a,!0))throw new N("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new N(b)}function x(a){return Y&&K.isBrokenNode(a)||!W($,a.nodeType)&&!cb(a,!0)}function y(a,b){return b<=(O(a)?a.length:a.childNodes.length)}function z(a){return!!a.startContainer&&!!a.endContainer&&!x(a.startContainer)&&!x(a.endContainer)&&y(a.startContainer,a.startOffset)&&y(a.endContainer,a.endOffset)}function A(a){if(r(a),!z(a))throw new Error("Range error: Range is no longer valid after DOM mutation ("+a.inspect()+")")}function B(a,b){A(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;O(e)&&f>0&&f0&&d=P(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function C(a){a.START_TO_START=kb,a.START_TO_END=lb,a.END_TO_END=mb,a.END_TO_START=nb,a.NODE_BEFORE=ob,a.NODE_AFTER=pb,a.NODE_BEFORE_AND_AFTER=qb,a.NODE_INSIDE=rb}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){A(this);var c,d,f=this.startContainer,g=this.startOffset,h=this.commonAncestorContainer,j=new n(this,!0);f!==h&&(c=U(f,h,!0),d=e(c),f=d.node,g=d.offset),i(j,v),j.reset();var k=a(j);return j.detach(),b(this,f,g,f,g),k}}function F(c,f,g){function h(a,b){return function(c){r(this),s(c,Z),s(X(c),$);var f=(a?d:e)(c);(b?i:l)(this,f.node,f.offset)}}function i(a,b,c){var d=a.endContainer,e=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((X(b)!=X(d)||1==S(b,c,d,e))&&(d=b,e=c),f(a,b,c,d,e))}function l(a,b,c){var d=a.startContainer,e=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((X(b)!=X(d)||-1==S(b,c,d,e))&&(d=b,e=c),f(a,d,e,b,c))}var m=function(){};m.prototype=a.rangePrototype,c.prototype=new m,L.extend(c.prototype,{setStart:function(a,b){r(this),q(a,!0),t(a,b),i(this,a,b)},setEnd:function(a,b){r(this),q(a,!0),t(a,b),l(this,a,b)},setStartAndEnd:function(){r(this);var a=arguments,b=a[0],c=a[1],d=b,e=c;switch(a.length){case 3:e=a[2];break;case 4:d=a[2],e=a[3]}f(this,b,c,d,e)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:h(!0,!0),setStartAfter:h(!1,!0),setEndBefore:h(!0,!1),setEndAfter:h(!1,!1),collapse:function(a){A(this),a?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(this),q(a,!0),f(this,a,0,a,V(a))},selectNode:function(a){r(this),q(a,!1),s(a,Z);var b=d(a),c=e(a);f(this,b.node,b.offset,c.node,c.offset)},extractContents:E(k,f),deleteContents:E(j,f),canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},detach:function(){g(this)},splitBoundaries:function(){B(this)},splitBoundariesPreservingPositions:function(a){B(this,a)},normalizeBoundaries:function(){A(this);var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset,e=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(c=a,d=a.length,a.appendData(b.data),b.parentNode.removeChild(b))},g=function(e){var f=e.previousSibling;if(f&&f.nodeType==e.nodeType){a=e;var g=e.length;if(b=f.length,e.insertData(0,f.data),f.parentNode.removeChild(f),a==c)d+=b,c=a;else if(c==e.parentNode){var h=P(e);d==h?(c=e,d=g):d>h&&d--}}},h=!0;if(O(c))c.length==d&&e(c);else{if(d>0){var i=c.childNodes[d-1];i&&O(i)&&e(i)}h=!this.collapsed}if(h){if(O(a))0==b&&g(a);else if(bx",gb=3==fb.firstChild.nodeType}catch(hb){}a.features.htmlParsingConforms=gb;var ib=gb?function(a){var b=this.startContainer,c=R(b);if(!b)throw new N("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:O(b)&&(d=K.parentElement(b)),d=null===d||"HTML"==d.nodeName&&K.isHtmlNamespace(R(d).documentElement)&&K.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,K.fragmentFromNodeChildren(d)}:function(a){r(this);var b=c(this),d=b.createElement("body");return d.innerHTML=a,K.fragmentFromNodeChildren(d)},jb=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],kb=0,lb=1,mb=2,nb=3,ob=0,pb=1,qb=2,rb=3;L.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){A(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==nb||a==kb?"start":"end",h=a==lb||a==kb?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],S(c,d,e,f)},insertNode:function(a){if(A(this),s(a,ab),v(this.startContainer),Q(a,this.startContainer))throw new N("HIERARCHY_REQUEST_ERR");var b=f(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){A(this);var a,b;if(this.collapsed)return c(this).createDocumentFragment();if(this.startContainer===this.endContainer&&O(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=c(this).createDocumentFragment(),b.appendChild(a),b;var d=new n(this,!0);return a=h(d),d.detach(),a},canSurroundContents:function(){A(this),v(this.startContainer),v(this.endContainer);var a=new n(this,!0),c=a._first&&b(a._first,this)||a._last&&b(a._last,this);return a.detach(),!c},surroundContents:function(a){if(s(a,bb),!this.canSurroundContents())throw new o("BAD_BOUNDARYPOINTS_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);f(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){A(this);for(var a,b=new J(c(this)),d=jb.length;d--;)a=jb[d],b[a]=this[a];return b},toString:function(){A(this);var a=this.startContainer;if(a===this.endContainer&&O(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new n(this,!0);return i(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){A(this);var b=a.parentNode,c=P(a);if(!b)throw new N("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qb:ob:e>0?pb:rb},comparePoint:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)<0?-1:S(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ib,toHtml:function(){A(this);var a=this.commonAncestorContainer.parentNode.cloneNode(!1);return a.appendChild(this.cloneContents()),a.innerHTML},intersectsNode:function(a,b){if(A(this),w(a,"NOT_FOUND_ERR"),R(a)!==c(this))return!1;var d=a.parentNode,e=P(a);w(d,"NOT_FOUND_ERR");var f=S(d,e,this.endContainer,this.endOffset),g=S(d,e+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return A(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),S(a,b,this.startContainer,this.startOffset)>=0&&S(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return g(this,a,!1)},intersectsOrTouchesRange:function(a){return g(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=S(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=S(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==S(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==S(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new o("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==rb},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,V(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();b.setEnd(d,d.length);var e=this.containsRange(b);return b.detach(),e}return this.containsNodeContents(a)},getNodes:function(a,b){return A(this),l(this,a,b)},getDocument:function(){return c(this)},collapseBefore:function(a){r(this),this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){r(this),this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var d=c(this),e=a.createRange(d);b=b||K.getBody(d),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length,e.detach()),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return J.rangesEqual(this,a)},isValid:function(){return z(this)},inspect:function(){return m(this)}}),F(J,H,I),L.extend(J,{rangeProperties:jb,RangeIterator:n,copyComparisonConstants:D,createPrototypeRange:F,inspect:m,getRangeDocument:c,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=J,a.RangeException=o}),rangy.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=n.length;c--;)b=n[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}function k(a){a.nativeRange.detach(),a.detached=!0;for(var b=n.length;b--;)a[n[b]]=null}var l,m,n=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g,k),l=c.prototype,l.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},l.cloneContents=function(){return this.nativeRange.cloneContents()},l.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},l.collapse=function(a){this.nativeRange.collapse(a),d(this)},l.cloneRange=function(){return new c(this.nativeRange.cloneRange())},l.refresh=function(){d(this)},l.toString=function(){return this.nativeRange.toString()};var o=document.createTextNode("test");i(document).appendChild(o);var p=document.createRange();p.setStart(o,0),p.setEnd(o,0);try{p.setStart(o,1),l.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},l.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},m=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(q){l.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},l.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},m=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}l.setStartBefore=m("setStartBefore","setEndBefore"),l.setStartAfter=m("setStartAfter","setEndAfter"),l.setEndBefore=m("setEndBefore","setStartBefore"),l.setEndAfter=m("setEndAfter","setStartAfter"),l.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},p.selectNodeContents(o),p.setEnd(o,3);var r=document.createRange();r.selectNodeContents(o),r.setEnd(o,4),r.setStart(o,2),l.compareBoundaryPoints=-1==p.compareBoundaryPoints(p.START_TO_END,r)&&1==p.compareBoundaryPoints(p.END_TO_START,r)?function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var s=document.createElement("div");s.innerHTML="123";var t=s.firstChild,u=i(document);u.appendChild(s),p.setStart(t,1),p.setEnd(t,2),p.deleteContents(),"13"==t.data&&(l.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},l.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),u.removeChild(s),u=null,f.isHostMethod(p,"createContextualFragment")&&(l.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(o),p.detach(),r.detach(),l.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&l.parentNode.removeChild(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return l.parentNode.removeChild(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}
},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=hb;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;fh;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=bb.length;e--;)if(c=bb[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(bb.splice(e,1),!0):d;return"deleteAll"==b&&(bb.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);Q?(y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b}):O?(y=e,a.isSelectionValid=function(){return!0}):b.fail("Neither document.selection or window.getSelection() detected."),a.getNativeSelection=y;var R=y(),S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=M(document),j=i.appendChild(document.createElement("div"));j.contentEditable="false";var k=j.appendChild(document.createTextNode(" ")),l=document.createRange();if(l.setStart(k,1),l.collapse(!0),b.addRange(l),Y=1==b.rangeCount,b.removeAllRanges(),!d){var m=l.cloneRange();l.setStart(k,0),m.setEnd(k,3),m.setStart(k,2),b.addRange(l),b.addRange(m),X=2==b.rangeCount,m.detach()}for(i.removeChild(j),b.removeAllRanges(),l.detach(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var ab;E(R,"getRangeAt")?ab=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(ab=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var bb=[],cb=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),bb.push({win:a,selection:b})),b};a.getSelection=cb,a.getIframeSelection=function(c){return b.deprecationNotice("getIframeSelection()","getSelection(iframeEl)"),a.getSelection(C.getIframeWindow(c))};var db=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){db.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var eb=function(a,b){Z(a.nativeSelection,b),a.refresh()};db.addRange=W?function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)eb(this,b);else{var e;if(X?e=this.rangeCount:(this.removeAllRanges(),e=0),this.nativeSelection.addRange(k(b).cloneRange()),this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var f=ab(this.nativeSelection,this.rangeCount-1);f&&!N(f,b)&&(b=new G(f))}this._ranges[this.rangeCount-1]=b,h(this,b,hb(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:function(a,b){c(b)&&V?eb(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},db.setRanges=function(a){if(_&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;db.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},db.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},db.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}db.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fb;if(Q)fb=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fb=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],hb(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fb=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=ab(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}db.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fb(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var gb=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};db.removeRange=_?function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else gb(this,a)}:function(a){gb(this,a)};var hb;!Q&&U&&J.implementsDomRange?(hb=g,db.isBackward=function(){return hb(this)}):hb=db.isBackward=function(){return!1},db.isBackwards=db.isBackward,db.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},db.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},db.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},db.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},db.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},db.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),a.parentNode.removeChild(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},db.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},db.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},db.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},db.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b))}),c},db.setStart=w(!0),db.setEnd=w(!1),a.rangePrototype.select=function(a){cb(this.getDocument()).setSingleRange(this,a)},db.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},db.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)},db.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},db.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},db.toHtml=function(){return this.callMethodOnEachRange("toHtml").join("")},db.getName=function(){return"WrappedSelection"},db.inspect=function(){return x(this)},db.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=db,a.addCreateMissingNativeApiListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return cb(a)}),a=null})}),rangy.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(p)),f.insertNode(c),f.detach(),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),g.parentNode.removeChild(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString();return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:c,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(i.parentNode.removeChild(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),i.parentNode.removeChild(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[];b=b.slice(0),b.sort(f);for(var j=0,k=b.length;k>j;++j)i[j]=g(b[j],d);for(j=k-1;j>=0;--j)e=b[j],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[j].markerId,h)):(e.setEndBefore(c(i[j].endMarkerId,h)),e.setStartAfter(c(i[j].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],"backward"):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&d.parentNode.removeChild(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p="";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})});var Base=function(){};Base.extend=function(a,b){var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return"object"==a?f:e.valueOf()},c.call(f,b),"function"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&"function"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\bbase\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return"object"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||"function"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=["constructor","toString","valueOf"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;afoo";return b.innerHTML=c,b.innerHTML.toLowerCase()===c},supportsCommand:function(){var a={formatBlock:e,insertUnorderedList:e||g,insertOrderedList:e||g},b={insertHTML:f};return function(c,d){var e=a[d];if(!e){try{return c.queryCommandSupported(d)}catch(f){}try{return c.queryCommandEnabled(d)}catch(g){return!!b[d]}}return!1}}(),doesAutoLinkingInContentEditable:function(){return e},canDisableAutoLinking:function(){return this.supportsCommand(document,"AutoUrlDetect")},clearsContentEditableCorrectly:function(){return f||i||g},supportsGetAttributeCorrectly:function(){var a=document.createElement("td");return"1"!=a.getAttribute("rowspan")},canSelectImagesInContentEditable:function(){return f||e||i},autoScrollsToCaret:function(){return!g},autoClosesUnclosedTags:function(){var a,b,c=d.cloneNode(!1);return c.innerHTML="",b=c.innerHTML.toLowerCase(),a=""===b||""===b,this.autoClosesUnclosedTags=function(){return a},a},supportsNativeGetElementsByClassName:function(){return-1!==String(document.getElementsByClassName).indexOf("[native code]")},supportsSelectionModify:function(){return"getSelection"in window&&"modify"in window.getSelection()},needsSpaceAfterLineBreak:function(){return i},supportsSpeechApiOn:function(a){var b=c.match(/Chrome\/(\d+)/)||[void 0,0];return b[1]>=11&&("onwebkitspeechchange"in a||"speech"in a)},crashesWhenDefineProperty:function(a){return e&&("XMLHttpRequest"===a||"XDomainRequest"===a)},doesAsyncFocus:function(){return e},hasProblemsSettingCaretAfterImg:function(){return e},hasUndoInContextMenu:function(){return f||h||i},hasInsertNodeIssue:function(){return i},hasIframeFocusIssue:function(){return e},createsNestedInvalidMarkupAfterPaste:function(){return g},supportsMutationEvents:function(){return"MutationEvent"in window}}}(),wysihtml5.lang.array=function(a){return{contains:function(b){if(Array.isArray(b)){for(var c=b.length;c--;)if(-1!==wysihtml5.lang.array(a).indexOf(b[c]))return!0;return!1}return-1!==wysihtml5.lang.array(a).indexOf(b)},indexOf:function(b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},without:function(b){b=wysihtml5.lang.array(b);for(var c=[],d=0,e=a.length;e>d;d++)b.contains(a[d])||c.push(a[d]);return c},get:function(){for(var b=0,c=a.length,d=[];c>b;b++)d.push(a[b]);return d},map:function(b,c){if(Array.prototype.map)return a.map(b,c);for(var d=a.length>>>0,e=new Array(d),f=0;d>f;f++)e[f]=b.call(c,a[f],f,a);return e},unique:function(){for(var b=[],c=a.length,d=0;c>d;)wysihtml5.lang.array(b).contains(a[d])||b.push(a[d]),d++;return b}}},wysihtml5.lang.Dispatcher=Base.extend({on:function(a,b){return this.events=this.events||{},this.events[a]=this.events[a]||[],this.events[a].push(b),this},off:function(a,b){this.events=this.events||{};var c,d,e=0;if(a){for(c=this.events[a]||[],d=[];e"]/g,d={"&":"&","<":"<",">":">",'"':"""};wysihtml5.lang.string=function(e){return e=String(e),{trim:function(){return e.replace(a,"").replace(b,"")},interpolate:function(a){for(var b in a)e=this.replace("#{"+b+"}").by(a[b]);return e},replace:function(a){return{by:function(b){return e.split(a).join(b)}}},escapeHTML:function(){return e.replace(c,function(a){return d[a]})}}}}(),function(a){function b(a,b){return f(a,b)?a:(a===a.ownerDocument.documentElement&&(a=a.ownerDocument.body),g(a,b))}function c(a){return a.replace(i,function(a,b){var c=(b.match(j)||[])[1]||"",d=l[c];b=b.replace(j,""),b.split(d).length>b.split(c).length&&(b+=c,c="");var e=b,f=b;return b.length>k&&(f=f.substr(0,k)+"..."),"www."===e.substr(0,4)&&(e="http://"+e),''+f+""+c})}function d(a){var b=a._wysihtml5_tempElement;return b||(b=a._wysihtml5_tempElement=a.createElement("div")),b}function e(b){var e=b.parentNode,f=a.lang.string(b.data).escapeHTML(),g=d(e.ownerDocument);for(g.innerHTML=""+c(f),g.removeChild(g.firstChild);g.firstChild;)e.insertBefore(g.firstChild,b);e.removeChild(b)}function f(b,c){for(var d;b.parentNode;){if(b=b.parentNode,d=b.nodeName,b.className&&a.lang.array(b.className.split(" ")).contains(c))return!0;if(h.contains(d))return!0;if("body"===d)return!1}return!1}function g(b,c){if(!(h.contains(b.nodeName)||b.className&&a.lang.array(b.className.split(" ")).contains(c))){if(b.nodeType===a.TEXT_NODE&&b.data.match(i))return console.log(b),void e(b);for(var d=a.lang.array(b.childNodes).get(),f=d.length,j=0;f>j;j++)g(d[j],c);return b}}var h=a.lang.array(["CODE","PRE","A","SCRIPT","HEAD","TITLE","STYLE"]),i=/((https?:\/\/|www\.)[^\s<]{3,})/gi,j=/([^\w\/\-](,?))$/i,k=100,l={")":"(","]":"[","}":"{"};a.dom.autoLink=b,a.dom.autoLink.URL_REG_EXP=i}(wysihtml5),function(a){var b=a.dom;b.addClass=function(a,c){var d=a.classList;return d?d.add(c):void(b.hasClass(a,c)||(a.className+=" "+c))},b.removeClass=function(a,b){var c=a.classList;return c?c.remove(b):void(a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," "))},b.hasClass=function(a,b){var c=a.classList;if(c)return c.contains(b);var d=a.className;return d.length>0&&(d==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(d))}}(wysihtml5),wysihtml5.dom.contains=function(){var a=document.documentElement;return a.contains?function(a,b){return b.nodeType!==wysihtml5.ELEMENT_NODE&&(b=b.parentNode),a!==b&&a.contains(b)}:a.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:void 0}(),wysihtml5.dom.convertToList=function(){function a(a,b){var c=a.createElement("li");return b.appendChild(c),c}function b(a,b){return a.createElement(b)}function c(c,d,e){if("UL"===c.nodeName||"OL"===c.nodeName||"MENU"===c.nodeName)return c;var f,g,h,i,j,k,l,m,n,o=c.ownerDocument,p=b(o,d),q=c.querySelectorAll("br"),r=q.length;for(n=0;r>n;n++)for(i=q[n];(j=i.parentNode)&&j!==c&&j.lastChild===i;){if("block"===wysihtml5.dom.getStyle("display").from(j)){j.removeChild(i);break}wysihtml5.dom.insert(i).after(i.parentNode)}for(f=wysihtml5.lang.array(c.childNodes).get(),g=f.length,n=0;g>n;n++)m=m||a(o,p),h=f[n],k="block"===wysihtml5.dom.getStyle("display").from(h),l="BR"===h.nodeName,!k||e&&wysihtml5.dom.hasClass(h,e)?l?m=m.firstChild?null:m:m.appendChild(h):(m=m.firstChild?a(o,p):m,m.appendChild(h),m=null);return 0===f.length&&a(o,p),c.parentNode.replaceChild(p,c),p}return c}(),wysihtml5.dom.copyAttributes=function(a){return{from:function(b){return{to:function(c){for(var d,e=0,f=a.length;f>e;e++)d=a[e],"undefined"!=typeof b[d]&&""!==b[d]&&(c[d]=b[d]);return{andTo:arguments.callee}}}}}},function(a){var b=["-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing"],c=function(b){return d(b)?parseInt(a.getStyle("width").from(b),10)d;d++)if("border-box"===a.getStyle(b[d]).from(c))return b[d]};a.copyStyles=function(d){return{from:function(e){c(e)&&(d=wysihtml5.lang.array(d).without(b));for(var f,g="",h=d.length,i=0;h>i;i++)f=d[i],g+=f+":"+a.getStyle(f).from(e)+";";return{to:function(b){return a.setStyles(g).on(b),{andTo:arguments.callee}}}}}}}(wysihtml5.dom),function(a){a.dom.delegate=function(b,c,d,e){return a.dom.observe(b,d,function(d){for(var f=d.target,g=a.lang.array(b.querySelectorAll(c));f&&f!==b;){if(g.contains(f)){e.call(f,d);break}f=f.parentNode}})}}(wysihtml5),wysihtml5.dom.getAsDom=function(){var a=function(a,b){var c=b.createElement("div");c.style.display="none",b.body.appendChild(c);try{c.innerHTML=a}catch(d){}return b.body.removeChild(c),c},b=function(a){if(!a._wysihtml5_supportsHTML5Tags){for(var b=0,d=c.length;d>b;b++)a.createElement(c[b]);a._wysihtml5_supportsHTML5Tags=!0}},c=["abbr","article","aside","audio","bdi","canvas","command","datalist","details","figcaption","figure","footer","header","hgroup","keygen","mark","meter","nav","output","progress","rp","rt","ruby","svg","section","source","summary","time","track","video","wbr"];return function(c,d){d=d||document;var e;return"object"==typeof c&&c.nodeType?(e=d.createElement("div"),e.appendChild(c)):wysihtml5.browser.supportsHTML5Tags(d)?(e=d.createElement("div"),e.innerHTML=c):(b(d),e=a(c,d)),e}}(),wysihtml5.dom.getParentElement=function(){function a(a,b){return b&&b.length?"string"==typeof b?a===b:wysihtml5.lang.array(b).contains(a):!0}function b(a){return a.nodeType===wysihtml5.ELEMENT_NODE}function c(a,b,c){var d=(a.className||"").match(c)||[];return b?d[d.length-1]===b:!!d.length}function d(a,b,c){var d=(a.getAttribute("style")||"").match(c)||[];return b?d[d.length-1]===b:!!d.length}return function(e,f,g,h){var i=f.cssStyle||f.styleRegExp,j=f.className||f.classRegExp;for(g=g||50;g--&&e&&"BODY"!==e.nodeName&&(!h||e!==h);){if(b(e)&&a(e.nodeName,f.nodeName)&&(!i||d(e,f.cssStyle,f.styleRegExp))&&(!j||c(e,f.className,f.classRegExp)))return e;e=e.parentNode}return null}}(),wysihtml5.dom.getNextElement=function(a){for(var b=a.nextSibling;b&&1!=b.nodeType;)b=b.nextSibling;return b},wysihtml5.dom.getPreviousElement=function(a){for(var b=a.previousSibling;b&&1!=b.nodeType;)b=b.previousSibling;return b},wysihtml5.dom.getStyle=function(){function a(a){return a.replace(c,function(a){return a.charAt(1).toUpperCase()})}var b={"float":"styleFloat"in document.createElement("div").style?"styleFloat":"cssFloat"},c=/\-[a-z]/g;return function(c){return{from:function(d){if(d.nodeType===wysihtml5.ELEMENT_NODE){var e=d.ownerDocument,f=b[c]||a(c),g=d.style,h=d.currentStyle,i=g[f];if(i)return i;if(h)try{return h[f]}catch(j){}var k,l,m=e.defaultView||e.parentWindow,n=("height"===c||"width"===c)&&"TEXTAREA"===d.nodeName;return m.getComputedStyle?(n&&(k=g.overflow,g.overflow="hidden"),l=m.getComputedStyle(d,null).getPropertyValue(c),n&&(g.overflow=k||""),l):void 0}}}}}(),wysihtml5.dom.getTextNodes=function(a){var b=[];for(a=a.firstChild;a;a=a.nextSibling)3==a.nodeType?b.push(a):b=b.concat(wysihtml5.dom.getTextNodes(a));return b},wysihtml5.dom.hasElementWithTagName=function(){function a(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=c++)}var b={},c=1;return function(c,d){var e=a(c)+":"+d,f=b[e];return f||(f=b[e]=c.getElementsByTagName(d)),f.length>0}}(),function(a){function b(a){return a._wysihtml5_identifier||(a._wysihtml5_identifier=d++)
}var c={},d=1;a.dom.hasElementWithClassName=function(d,e){if(!a.browser.supportsNativeGetElementsByClassName())return!!d.querySelector("."+e);var f=b(d)+":"+e,g=c[f];return g||(g=c[f]=d.getElementsByClassName(e)),g.length>0}}(wysihtml5),wysihtml5.dom.insert=function(a){return{after:function(b){b.parentNode.insertBefore(a,b.nextSibling)},before:function(b){b.parentNode.insertBefore(a,b)},into:function(b){b.appendChild(a)}}},wysihtml5.dom.insertCSS=function(a){return a=a.join("\n"),{into:function(b){var c=b.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(b.createTextNode(a));var d=b.querySelector("head link");if(d)return void d.parentNode.insertBefore(c,d);var e=b.querySelector("head");e&&e.appendChild(c)}}},wysihtml5.dom.observe=function(a,b,c){b="string"==typeof b?[b]:b;for(var d,e,f=0,g=b.length;g>f;f++)e=b[f],a.addEventListener?a.addEventListener(e,c,!1):(d=function(b){"target"in b||(b.target=b.srcElement),b.preventDefault=b.preventDefault||function(){this.returnValue=!1},b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0},c.call(a,b)},a.attachEvent("on"+e,d));return{stop:function(){for(var e,f=0,g=b.length;g>f;f++)e=b[f],a.removeEventListener?a.removeEventListener(e,c,!1):a.detachEvent("on"+e,d)}}},wysihtml5.dom.parse=function(){function a(a,c){wysihtml5.lang.object(o).merge(n).merge(c.rules).get();var d,e,f,g=c.context||a.ownerDocument||document,h=g.createDocumentFragment(),i="string"==typeof a;for(c.uneditableClass&&(p=c.uneditableClass),d=i?wysihtml5.dom.getAsDom(a,g):a;d.firstChild;)f=d.firstChild,e=b(f,c.cleanUp),d.removeChild(f),e&&h.appendChild(e);return d.innerHTML="",d.appendChild(h),i?wysihtml5.quirks.getCorrectInnerHTML(d):d}function b(a,c){var d,e,f,g=a.nodeType,h=a.childNodes,i=h.length,j=k[g],m=0;if(p&&1===g&&wysihtml5.dom.hasClass(a,p))return a;if(e=j&&j(a),!e){if(e===!1){for(d=a.ownerDocument.createDocumentFragment(),m=i;m--;)f=b(h[m],c),f&&d.insertBefore(f,d.firstChild);return wysihtml5.lang.array(["div","pre","p","table","td","th","ul","ol","li","dd","dl","footer","header","section","h1","h2","h3","h4","h5","h6"]).contains(a.nodeName.toLowerCase())&&a.parentNode.lastChild!==a&&(a.nextSibling&&3===a.nextSibling.nodeType&&/^\s/.test(a.nextSibling.nodeValue)||d.appendChild(a.ownerDocument.createTextNode(" "))),d.normalize&&d.normalize(),d}return null}for(m=0;i>m;m++)f=b(h[m],c),f&&e.appendChild(f);if(c&&e.nodeName.toLowerCase()===l&&(!e.childNodes.length||/^\s*$/gi.test(e.innerHTML)&&"_wysihtml5-temp-placeholder"!==a.className&&"rangySelectionBoundary"!==a.className||!e.attributes.length)){for(d=e.ownerDocument.createDocumentFragment();e.firstChild;)d.appendChild(e.firstChild);return d.normalize&&d.normalize(),d}return e.normalize&&e.normalize(),e}function c(a){var b,c,e=o.tags,h=a.nodeName.toLowerCase(),i=a.scopeName;if(a._wysihtml5)return null;if(a._wysihtml5=1,"wysihtml5-temp"===a.className)return null;if(i&&"HTML"!=i&&(h=i+":"+h),"outerHTML"in a&&(wysihtml5.browser.autoClosesUnclosedTags()||"P"!==a.nodeName||""===a.outerHTML.slice(-4).toLowerCase()||(h="div")),h in e){if(b=e[h],!b||b.remove)return null;if(b.unwrap)return!1;b="string"==typeof b?{rename_tag:b}:b}else{if(!a.firstChild)return null;b={rename_tag:l}}return c=a.ownerDocument.createElement(b.rename_tag||h),g(a,c,b),f(a,c,b),b.one_of_type&&!d(a,o,b.one_of_type)?b.remove_action&&"unwrap"==b.remove_action?!1:null:(a=null,c.normalize&&c.normalize(),c)}function d(a,b,c){var d,f;if("SPAN"===a.nodeName&&("_wysihtml5-temp-placeholder"===a.className||"rangySelectionBoundary"===a.className))return!0;for(f in c)if(c.hasOwnProperty(f)&&b.type_definitions&&b.type_definitions[f]&&(d=b.type_definitions[f],e(a,d)))return!0;return!1}function e(a,b){var c,d,e,f,g,i=a.getAttribute("class"),j=a.getAttribute("style");if(b.methods)for(var k in b.methods)if(b.methods.hasOwnProperty(k)&&v[k]&&v[k](a))return!0;if(i&&b.classes){i=i.replace(/^\s+/g,"").replace(/\s+$/g,"").split(m),c=i.length;for(var l=0;c>l;l++)if(b.classes[i[l]])return!0}if(j&&b.styles){j=j.split(";");for(d in b.styles)if(b.styles.hasOwnProperty(d))for(var n=j.length;n--;)if(g=j[n].split(":"),g[0].replace(/\s/g,"").toLowerCase()===d&&(b.styles[d]===!0||1===b.styles[d]||wysihtml5.lang.array(b.styles[d]).contains(g[1].replace(/\s/g,"").toLowerCase())))return!0}if(b.attrs)for(e in b.attrs)if(b.attrs.hasOwnProperty(e)&&(f=h(a,e),"string"==typeof f&&f.search(b.attrs[e])>-1))return!0;return!1}function f(a,b,c){var d;if(c&&c.keep_styles)for(d in c.keep_styles)c.keep_styles.hasOwnProperty(d)&&("float"==d?(a.style.styleFloat&&(b.style.styleFloat=a.style.styleFloat),a.style.cssFloat&&(b.style.cssFloat=a.style.cssFloat)):a.style[d]&&(b.style[d]=a.style[d]))}function g(a,b,c){var d,e,f,g,i,j,k={},l=c.set_class,n=c.add_class,p=c.add_style,q=c.set_attributes,r=c.check_attributes,v=o.classes,w=0,x=[],y=[],z=[],A=[];if(q&&(k=wysihtml5.lang.object(q).clone()),r)for(g in r)j=s[r[g]],j&&(oldAttribute=h(a,g),(oldAttribute||"alt"===g&&"IMG"==a.nodeName)&&(i=j(oldAttribute),"string"==typeof i&&(k[g]=i)));if(l&&x.push(l),n)for(g in n)j=u[n[g]],j&&(f=j(h(a,g)),"string"==typeof f&&x.push(f));if(p)for(g in p)j=t[p[g]],j&&(newStyle=j(h(a,g)),"string"==typeof newStyle&&y.push(newStyle));if("string"==typeof v&&"any"===v&&a.getAttribute("class"))k["class"]=a.getAttribute("class");else{for(v["_wysihtml5-temp-placeholder"]=1,v._rangySelectionBoundary=1,A=a.getAttribute("class"),A&&(x=x.concat(A.split(m))),d=x.length;d>w;w++)e=x[w],v[e]&&z.push(e);z.length&&(k["class"]=wysihtml5.lang.array(z).unique().join(" "))}y.length&&(k.style=wysihtml5.lang.array(y).unique().join(" "));for(g in k)try{b.setAttribute(g,k[g])}catch(B){}k.src&&("undefined"!=typeof k.width&&b.setAttribute("width",k.width),"undefined"!=typeof k.height&&b.setAttribute("height",k.height))}function h(a,b){b=b.toLowerCase();var c=a.nodeName;if("IMG"==c&&"src"==b&&i(a)===!0)return a.src;if(q&&"outerHTML"in a){var d=a.outerHTML.toLowerCase(),e=-1!=d.indexOf(" "+b+"=");return e?a.getAttribute(b):null}return a.getAttribute(b)}function i(a){try{return a.complete&&!a.mozMatchesSelector(":-moz-broken")}catch(b){if(a.complete&&"complete"===a.readyState)return!0}}function j(a){var b=a.nextSibling;if(!b||b.nodeType!==wysihtml5.TEXT_NODE){var c=a.data.replace(r,"");return a.ownerDocument.createTextNode(c)}b.data=a.data.replace(r,"")+b.data.replace(r,"")}var k={1:c,3:j},l="span",m=/\s+/,n={tags:{},classes:{}},o={},p=!1,q=!wysihtml5.browser.supportsGetAttributeCorrectly(),r=/\uFEFF/g,s={url:function(){var a=/^https?:\/\//i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),src:function(){var a=/^(\/|https?:\/\/)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),href:function(){var a=/^(#|\/|https?:\/\/|mailto:)/i;return function(b){return b&&b.match(a)?b.replace(a,function(a){return a.toLowerCase()}):null}}(),alt:function(){var a=/[^ a-z0-9_\-]/gi;return function(b){return b?b.replace(a,""):""}}(),numbers:function(){var a=/\D/g;return function(b){return b=(b||"").replace(a,""),b||null}}(),any:function(){return function(a){return a}}()},t={align_text:function(){var a={left:"text-align: left;",right:"text-align: right;",center:"text-align: center;"};return function(b){return a[String(b).toLowerCase()]}}()},u={align_img:function(){var a={left:"wysiwyg-float-left",right:"wysiwyg-float-right"};return function(b){return a[String(b).toLowerCase()]}}(),align_text:function(){var a={left:"wysiwyg-text-align-left",right:"wysiwyg-text-align-right",center:"wysiwyg-text-align-center",justify:"wysiwyg-text-align-justify"};return function(b){return a[String(b).toLowerCase()]}}(),clear_br:function(){var a={left:"wysiwyg-clear-left",right:"wysiwyg-clear-right",both:"wysiwyg-clear-both",all:"wysiwyg-clear-both"};return function(b){return a[String(b).toLowerCase()]}}(),size_font:function(){var a={1:"wysiwyg-font-size-xx-small",2:"wysiwyg-font-size-small",3:"wysiwyg-font-size-medium",4:"wysiwyg-font-size-large",5:"wysiwyg-font-size-x-large",6:"wysiwyg-font-size-xx-large",7:"wysiwyg-font-size-xx-large","-":"wysiwyg-font-size-smaller","+":"wysiwyg-font-size-larger"};return function(b){return a[String(b).charAt(0)]}}()},v={has_visible_contet:function(){var a,b=["img","video","picture","br","script","noscript","style","table","iframe","object","embed","audio","svg","input","button","select","textarea","canvas"];return function(c){if(a=(c.innerText||c.textContent).replace(/\s/g,""),a&&a.length>0)return!0;for(var d=b.length;d--;)if(c.querySelector(b[d]))return!0;return c.offsetWidth&&c.offsetWidth>0&&c.offsetHeight&&c.offsetHeight>0?!0:!1}}()};return a}(),wysihtml5.dom.removeEmptyTextNodes=function(a){for(var b,c=wysihtml5.lang.array(a.childNodes).get(),d=c.length,e=0;d>e;e++)b=c[e],b.nodeType===wysihtml5.TEXT_NODE&&""===b.data&&b.parentNode.removeChild(b)},wysihtml5.dom.renameElement=function(a,b){for(var c,d=a.ownerDocument.createElement(b);c=a.firstChild;)d.appendChild(c);return wysihtml5.dom.copyAttributes(["align","className"]).from(a).to(d),a.parentNode.replaceChild(d,a),d},wysihtml5.dom.replaceWithChildNodes=function(a){if(a.parentNode){if(!a.firstChild)return void a.parentNode.removeChild(a);for(var b=a.ownerDocument.createDocumentFragment();a.firstChild;)b.appendChild(a.firstChild);a.parentNode.replaceChild(b,a),a=b=null}},function(a){function b(b){return"block"===a.getStyle("display").from(b)}function c(a){return"BR"===a.nodeName}function d(a){var b=a.ownerDocument.createElement("br");a.appendChild(b)}function e(a,e){if(a.nodeName.match(/^(MENU|UL|OL)$/)){var f,g,h,i,j,k,l=a.ownerDocument,m=l.createDocumentFragment(),n=a.previousElementSibling||a.previousSibling;if(e)for(!n||b(n)||c(n)||d(m);k=a.firstElementChild||a.firstChild;){for(g=k.lastChild;f=k.firstChild;)h=f===g,i=h&&!b(f)&&!c(f),m.appendChild(f),i&&d(m);k.parentNode.removeChild(k)}else for(;k=a.firstElementChild||a.firstChild;){if(k.querySelector&&k.querySelector("div, p, ul, ol, menu, blockquote, h1, h2, h3, h4, h5, h6"))for(;f=k.firstChild;)m.appendChild(f);else{for(j=l.createElement("p");f=k.firstChild;)j.appendChild(f);m.appendChild(j)}k.parentNode.removeChild(k)}a.parentNode.replaceChild(m,a)}}a.resolveList=e}(wysihtml5.dom),function(a){var b=document,c=["parent","top","opener","frameElement","frames","localStorage","globalStorage","sessionStorage","indexedDB"],d=["open","close","openDialog","showModalDialog","alert","confirm","prompt","openDatabase","postMessage","XMLHttpRequest","XDomainRequest"],e=["referrer","write","open","close"];a.dom.Sandbox=Base.extend({constructor:function(b,c){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.editableArea=this._createIframe()},insertInto:function(a){"string"==typeof a&&(a=b.getElementById(a)),a.appendChild(this.editableArea)},getIframe:function(){return this.editableArea},getWindow:function(){this._readyError()},getDocument:function(){this._readyError()},destroy:function(){var a=this.getIframe();a.parentNode.removeChild(a)},_readyError:function(){throw new Error("wysihtml5.Sandbox: Sandbox iframe isn't loaded yet")},_createIframe:function(){var c=this,d=b.createElement("iframe");return d.className="wysihtml5-sandbox",a.dom.setAttributes({security:"restricted",allowtransparency:"true",frameborder:0,width:0,height:0,marginwidth:0,marginheight:0}).on(d),a.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()&&(d.src="javascript:''"),d.onload=function(){d.onreadystatechange=d.onload=null,c._onLoadIframe(d)},d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&(d.onreadystatechange=d.onload=null,c._onLoadIframe(d))},d},_onLoadIframe:function(f){if(a.dom.contains(b.documentElement,f)){var g=this,h=f.contentWindow,i=f.contentWindow.document,j=b.characterSet||b.charset||"utf-8",k=this._getHtml({charset:j,stylesheets:this.config.stylesheets});if(i.open("text/html","replace"),i.write(k),i.close(),this.getWindow=function(){return f.contentWindow},this.getDocument=function(){return f.contentWindow.document},h.onerror=function(a,b,c){throw new Error("wysihtml5.Sandbox: "+a,b,c)},!a.browser.supportsSandboxedIframes()){var l,m;for(l=0,m=c.length;m>l;l++)this._unset(h,c[l]);for(l=0,m=d.length;m>l;l++)this._unset(h,d[l],a.EMPTY_FUNCTION);for(l=0,m=e.length;m>l;l++)this._unset(i,e[l]);this._unset(i,"cookie","",!0)}this.loaded=!0,setTimeout(function(){g.callback(g)},0)}},_getHtml:function(b){var c,d=b.stylesheets,e="",f=0;if(d="string"==typeof d?[d]:d)for(c=d.length;c>f;f++)e+='';return b.stylesheets=e,a.lang.string('#{stylesheets}').interpolate(b)},_unset:function(b,c,d,e){try{b[c]=d}catch(f){}try{b.__defineGetter__(c,function(){return d})}catch(f){}if(e)try{b.__defineSetter__(c,function(){})}catch(f){}if(!a.browser.crashesWhenDefineProperty(c))try{var g={get:function(){return d}};e&&(g.set=function(){}),Object.defineProperty(b,c,g)}catch(f){}}})}(wysihtml5),function(a){var b=document;a.dom.ContentEditableArea=Base.extend({getContentEditable:function(){return this.element},getWindow:function(){return this.element.ownerDocument.defaultView},getDocument:function(){return this.element.ownerDocument},constructor:function(b,c,d){this.callback=b||a.EMPTY_FUNCTION,this.config=a.lang.object({}).merge(c).get(),this.element=d?this._bindElement(d):this._createElement()},_createElement:function(){var a=b.createElement("div");return a.className="wysihtml5-sandbox",this._loadElement(a),a},_bindElement:function(a){return a.className=a.className&&""!=a.className?a.className+" wysihtml5-sandbox":"wysihtml5-sandbox",this._loadElement(a,!0),a},_loadElement:function(a,b){var c=this;if(!b){var d=this._getHtml();a.innerHTML=d}this.getWindow=function(){return a.ownerDocument.defaultView},this.getDocument=function(){return a.ownerDocument},this.loaded=!0,setTimeout(function(){c.callback(c)},0)},_getHtml:function(){return""}})}(wysihtml5),function(){var a={className:"class"};wysihtml5.dom.setAttributes=function(b){return{on:function(c){for(var d in b)c.setAttribute(a[d]||d,b[d])}}}}(),wysihtml5.dom.setStyles=function(a){return{on:function(b){var c=b.style;if("string"==typeof a)return void(c.cssText+=";"+a);for(var d in a)"float"===d?(c.cssFloat=a[d],c.styleFloat=a[d]):c[d]=a[d]}}},function(a){a.simulatePlaceholder=function(b,c,d){var e="placeholder",f=function(){c.hasPlaceholderSet()&&c.clear(),c.placeholderSet=!1,a.removeClass(c.element,e)},g=function(){c.isEmpty()&&(c.placeholderSet=!0,c.setValue(d),a.addClass(c.element,e))};b.on("set_placeholder",g).on("unset_placeholder",f).on("focus:composer",f).on("paste:composer",f).on("blur:composer",g),g()}}(wysihtml5.dom),function(a){var b=document.documentElement;"textContent"in b?(a.setTextContent=function(a,b){a.textContent=b},a.getTextContent=function(a){return a.textContent}):"innerText"in b?(a.setTextContent=function(a,b){a.innerText=b},a.getTextContent=function(a){return a.innerText}):(a.setTextContent=function(a,b){a.nodeValue=b},a.getTextContent=function(a){return a.nodeValue})}(wysihtml5.dom),wysihtml5.dom.getAttribute=function(a,b){var c=!wysihtml5.browser.supportsGetAttributeCorrectly();b=b.toLowerCase();var d=a.nodeName;if("IMG"==d&&"src"==b&&_isLoadedImage(a)===!0)return a.src;if(c&&"outerHTML"in a){var e=a.outerHTML.toLowerCase(),f=-1!=e.indexOf(" "+b+"=");return f?a.getAttribute(b):null}return a.getAttribute(b)},function(a){function b(a,b){for(var c,d=[],e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d}function d(a){a.parentNode.removeChild(a)}function e(a,b){a.parentNode.insertBefore(b,a.nextSibling)}function f(a,b){for(var c=a.nextSibling;1!=c.nodeType;)if(c=c.nextSibling,!b||b==c.tagName.toLowerCase())return c;return null}var g=a.dom,h=function(a){this.el=a,this.isColspan=!1,this.isRowspan=!1,this.firstCol=!0,this.lastCol=!0,this.firstRow=!0,this.lastRow=!0,this.isReal=!0,this.spanCollection=[],this.modified=!1},i=function(a,b){a?(this.cell=a,this.table=g.getParentElement(a,{nodeName:["TABLE"]})):b&&(this.table=b,this.cell=this.table.querySelectorAll("th, td")[0])};i.prototype={addSpannedCellToMap:function(a,b,c,d,e,f){for(var g=[],i=c+(f?parseInt(f,10)-1:0),j=d+(e?parseInt(e,10)-1:0),k=c;i>=k;k++){"undefined"==typeof b[k]&&(b[k]=[]);for(var l=d;j>=l;l++)b[k][l]=new h(a),b[k][l].isColspan=e&&parseInt(e,10)>1,b[k][l].isRowspan=f&&parseInt(f,10)>1,b[k][l].firstCol=l==d,b[k][l].lastCol=l==j,b[k][l].firstRow=k==c,b[k][l].lastRow=k==i,b[k][l].isReal=l==d&&k==c,b[k][l].spanCollection=g,g.push(b[k][l])}},setCellAsModified:function(a){if(a.modified=!0,a.spanCollection.length>0)for(var b=0,c=a.spanCollection.length;c>b;b++)a.spanCollection[b].modified=!0},setTableMap:function(){var a,b,c,d,e,f,i,j,k=[],l=this.getTableRows();for(a=0;a0?a.lang.array(f).without(e):f;return g},getTableRows:function(){var c=this.table.querySelectorAll("table"),d=c?b(c,"tr"):[],e=this.table.querySelectorAll("tr"),f=d.length>0?a.lang.array(e).without(d):e;return f},getMapIndex:function(a){for(var b=this.map.length,c=this.map&&this.map[0]?this.map[0].length:0,d=0;b>d;d++)for(var e=0;c>e;e++)if(this.map[d][e].el===a)return{row:d,col:e};return!1},getElementAtIndex:function(a){return this.setTableMap(),this.map[a.row]&&this.map[a.row][a.col]&&this.map[a.row][a.col].el?this.map[a.row][a.col].el:null},getMapElsTo:function(a){var b=[];if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var c=this.idx_start;this.idx_start=this.idx_end,this.idx_end=c}if(this.idx_start.col>this.idx_end.col){var d=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=d}if(null!=this.idx_start&&null!=this.idx_end)for(var e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)b.push(this.map[e][g].el);return b},orderSelectionEnds:function(a){if(this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(a),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}return{start:this.map[this.idx_start.row][this.idx_start.col].el,end:this.map[this.idx_end.row][this.idx_end.col].el}},createCells:function(a,b,c){for(var d,e=this.table.ownerDocument,f=e.createDocumentFragment(),g=0;b>g;g++){if(d=e.createElement(a),c)for(var h in c)c.hasOwnProperty(h)&&d.setAttribute(h,c[h]);d.appendChild(document.createTextNode(" ")),f.appendChild(d)}return f},correctColIndexForUnreals:function(a,b){for(var c=this.map[b],d=-1,e=0;a>e;e++)c[e].isReal&&d++;return d},getLastNewCellOnRow:function(a,b){for(var c,d,e=this.getRowCells(a),f=0,g=e.length;g>f;f++)if(c=e[f],d=this.getMapIndex(c),d===!1||"undefined"!=typeof b&&d.row!=b)return c;return null},removeEmptyTable:function(){var a=this.table.querySelectorAll("td, th");return a&&0!=a.length?!1:(d(this.table),!0)},splitRowToCells:function(a){if(a.isColspan){var b=parseInt(g.getAttribute(a.el,"colspan")||1,10),c=a.el.tagName.toLowerCase();if(b>1){var d=this.createCells(c,b-1);e(a.el,d)}a.el.removeAttribute("colspan")}},getRealRowEl:function(a,b){var c=null,d=null;b=b||this.idx;for(var e=0,f=this.map[b.row].length;f>e;e++)if(d=this.map[b.row][e],d.isReal&&(c=g.getParentElement(d.el,{nodeName:["TR"]})))return c;return null===c&&a&&(c=g.getParentElement(this.map[b.row][b.col].el,{nodeName:["TR"]})||null),c},injectRowAt:function(a,b,c,d,f){var h=this.getRealRowEl(!1,{row:a,col:b}),i=this.createCells(d,c);if(h){var j=this.correctColIndexForUnreals(b,a);j>=0?e(this.getRowCells(h)[j],i):h.insertBefore(i,h.firstChild)}else{var k=this.table.ownerDocument.createElement("tr");k.appendChild(i),e(g.getParentElement(f.el,{nodeName:["TR"]}),k)}},canMerge:function(a){if(this.to=a,this.setTableMap(),this.idx_start=this.getMapIndex(this.cell),this.idx_end=this.getMapIndex(this.to),this.idx_start.row>this.idx_end.row||this.idx_start.row==this.idx_end.row&&this.idx_start.col>this.idx_end.col){var b=this.idx_start;this.idx_start=this.idx_end,this.idx_end=b}if(this.idx_start.col>this.idx_end.col){var c=this.idx_start.col;this.idx_start.col=this.idx_end.col,this.idx_end.col=c}for(var d=this.idx_start.row,e=this.idx_end.row;e>=d;d++)for(var f=this.idx_start.col,g=this.idx_end.col;g>=f;f++)if(this.map[d][f].isColspan||this.map[d][f].isRowspan)return!1;return!0},decreaseCellSpan:function(a,b){var c=parseInt(g.getAttribute(a.el,b),10)-1;c>=1?a.el.setAttribute(b,c):(a.el.removeAttribute(b),"colspan"==b&&(a.isColspan=!1),"rowspan"==b&&(a.isRowspan=!1),a.firstCol=!0,a.lastCol=!0,a.firstRow=!0,a.lastRow=!0,a.isReal=!0)},removeSurplusLines:function(){var a,b,c,e,f,h,i;if(this.setTableMap(),this.map){for(c=0,e=this.map.length;e>c;c++){for(a=this.map[c],i=!0,f=0,h=a.length;h>f;f++)if(b=a[f],!(g.getAttribute(b.el,"rowspan")&&parseInt(g.getAttribute(b.el,"rowspan"),10)>1&&b.firstRow!==!0)){i=!1;break}if(i)for(f=0;h>f;f++)this.decreaseCellSpan(a[f],"rowspan")}var j=this.getTableRows();for(c=0,e=j.length;e>c;c++)a=j[c],0==a.childNodes.length&&/^\s*$/.test(a.textContent||a.innerText)&&d(a)}},fillMissingCells:function(){var a=0,b=0,c=null;if(this.setTableMap(),this.map){a=this.map.length;for(var d=0;a>d;d++)this.map[d].length>b&&(b=this.map[d].length);for(var f=0;a>f;f++)for(var g=0;b>g;g++)this.map[f]&&!this.map[f][g]&&g>0&&(this.map[f][g]=new h(this.createCells("td",1)),c=this.map[f][g-1],c&&c.el&&c.el.parent&&e(this.map[f][g-1].el,this.map[f][g].el))}},rectify:function(){return this.removeEmptyTable()?!1:(this.removeSurplusLines(),this.fillMissingCells(),!0)},unmerge:function(){if(this.rectify()&&(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx)){var a=this.map[this.idx.row][this.idx.col],b=g.getAttribute(a.el,"colspan")?parseInt(g.getAttribute(a.el,"colspan"),10):1,c=a.el.tagName.toLowerCase();if(a.isRowspan){var d=parseInt(g.getAttribute(a.el,"rowspan"),10);if(d>1)for(var e=1,f=d-1;f>=e;e++)this.injectRowAt(this.idx.row+e,this.idx.col,b,c,a);a.el.removeAttribute("rowspan")}this.splitRowToCells(a)}},merge:function(a){if(this.rectify())if(this.canMerge(a)){for(var b=this.idx_end.row-this.idx_start.row+1,c=this.idx_end.col-this.idx_start.col+1,e=this.idx_start.row,f=this.idx_end.row;f>=e;e++)for(var g=this.idx_start.col,h=this.idx_end.col;h>=g;g++)e==this.idx_start.row&&g==this.idx_start.col?(b>1&&this.map[e][g].el.setAttribute("rowspan",b),c>1&&this.map[e][g].el.setAttribute("colspan",c)):(/^\s*
\s*$/.test(this.map[e][g].el.innerHTML.toLowerCase())||(this.map[this.idx_start.row][this.idx_start.col].el.innerHTML+=" "+this.map[e][g].el.innerHTML),d(this.map[e][g].el));this.rectify()}else window.console&&console.log("Do not know how to merge allready merged cells.")},collapseCellToNextRow:function(a){var b=this.getMapIndex(a.el),c=b.row+1,d={row:c,col:b.col};if(c=0)e(this.getRowCells(f)[h],a.el);else{var i=this.getLastNewCellOnRow(f,c);null!==i?e(i,a.el):f.insertBefore(a.el,f.firstChild)}parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")}}},removeRowCell:function(a){a.isReal?a.isRowspan?this.collapseCellToNextRow(a):d(a.el):parseInt(g.getAttribute(a.el,"rowspan"),10)>2?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)-1):a.el.removeAttribute("rowspan")},getRowElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,d=b.length;d>c;c++)b[c].isReal&&a.push(b[c].el);return a},getColumnElementsByCell:function(){var a=[];if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=0,c=this.map.length;c>b;b++)this.map[b][this.idx.col]&&this.map[b][this.idx.col].isReal&&a.push(this.map[b][this.idx.col].el);return a},removeRow:function(){var a=g.getParentElement(this.cell,{nodeName:["TR"]});if(a){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var b=this.map[this.idx.row],c=0,e=b.length;e>c;c++)b[c].modified||(this.setCellAsModified(b[c]),this.removeRowCell(b[c]));d(a)}},removeColCell:function(a){a.isColspan?parseInt(g.getAttribute(a.el,"colspan"),10)>2?a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)-1):a.el.removeAttribute("colspan"):a.isReal&&d(a.el)},removeColumn:function(){if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),this.idx!==!1)for(var a=0,b=this.map.length;b>a;a++)this.map[a][this.idx.col].modified||(this.setCellAsModified(this.map[a][this.idx.col]),this.removeColCell(this.map[a][this.idx.col]))},remove:function(a){if(this.rectify()){switch(a){case"row":this.removeRow();break;case"column":this.removeColumn()}this.rectify()}},addRow:function(a){var b=this.table.ownerDocument;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"below"==a&&g.getAttribute(this.cell,"rowspan")&&(this.idx.row=this.idx.row+parseInt(g.getAttribute(this.cell,"rowspan"),10)-1),this.idx!==!1){for(var c=this.map[this.idx.row],d=b.createElement("tr"),f=0,h=c.length;h>f;f++)c[f].modified||(this.setCellAsModified(c[f]),this.addRowCell(c[f],d,a));switch(a){case"below":e(this.getRealRowEl(!0),d);break;case"above":var i=g.getParentElement(this.map[this.idx.row][this.idx.col].el,{nodeName:["TR"]});i&&i.parentNode.insertBefore(d,i)}}},addRowCell:function(a,b,d){var e=a.isColspan?{colspan:g.getAttribute(a.el,"colspan")}:null;a.isReal?"above"!=d&&a.isRowspan?a.el.setAttribute("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1):b.appendChild(this.createCells("td",1,e)):"above"!=d&&a.isRowspan&&a.lastRow?b.appendChild(this.createCells("td",1,e)):c.isRowspan&&a.el.attr("rowspan",parseInt(g.getAttribute(a.el,"rowspan"),10)+1)},add:function(a){this.rectify()&&(("below"==a||"above"==a)&&this.addRow(a),("before"==a||"after"==a)&&this.addColumn(a))},addColCell:function(a,b,d){var f,h=a.el.tagName.toLowerCase();switch(d){case"before":f=!a.isColspan||a.firstCol;break;case"after":f=!a.isColspan||a.lastCol||a.isColspan&&c.el==this.cell}if(f){switch(d){case"before":a.el.parentNode.insertBefore(this.createCells(h,1),a.el);break;case"after":e(a.el,this.createCells(h,1))}a.isRowspan&&this.handleCellAddWithRowspan(a,b+1,d)}else a.el.setAttribute("colspan",parseInt(g.getAttribute(a.el,"colspan"),10)+1)},addColumn:function(a){var b,c;if(this.setTableMap(),this.idx=this.getMapIndex(this.cell),"after"==a&&g.getAttribute(this.cell,"colspan")&&(this.idx.col=this.idx.col+parseInt(g.getAttribute(this.cell,"colspan"),10)-1),this.idx!==!1)for(var d=0,e=this.map.length;e>d;d++)b=this.map[d],b[this.idx.col]&&(c=b[this.idx.col],c.modified||(this.setCellAsModified(c),this.addColCell(c,d,a)))},handleCellAddWithRowspan:function(a,b,c){for(var d,h,i,j=parseInt(g.getAttribute(this.cell,"rowspan"),10)-1,k=g.getParentElement(a.el,{nodeName:["TR"]}),l=a.el.tagName.toLowerCase(),m=this.table.ownerDocument,n=0;j>n;n++)if(d=this.correctColIndexForUnreals(this.idx.col,b+n),k=f(k,"tr"))if(d>0)switch(c){case"before":h=this.getRowCells(k),d>0&&this.map[b+n][this.idx.col].el!=h[d]&&d==h.length-1?e(h[d],this.createCells(l,1)):h[d].parentNode.insertBefore(this.createCells(l,1),h[d]);break;case"after":e(this.getRowCells(k)[d],this.createCells(l,1))}else k.insertBefore(this.createCells(l,1),k.firstChild);else i=m.createElement("tr"),i.appendChild(this.createCells(l,1)),this.table.appendChild(i)}},g.table={getCellsBetween:function(a,b){var c=new i(a);return c.getMapElsTo(b)},addCells:function(a,b){var c=new i(a);c.add(b)},removeCells:function(a,b){var c=new i(a);c.remove(b)},mergeCellsBetween:function(a,b){var c=new i(a);c.merge(b)},unmergeCell:function(a){var b=new i(a);b.unmerge()},orderSelectionEnds:function(a,b){var c=new i(a);return c.orderSelectionEnds(b)},indexOf:function(a){var b=new i(a);return b.setTableMap(),b.getMapIndex(a)},findCell:function(a,b){var c=new i(null,a);return c.getElementAtIndex(b)},findRowByCell:function(a){var b=new i(a);return b.getRowElementsByCell()},findColumnByCell:function(a){var b=new i(a);return b.getColumnElementsByCell()},canMerge:function(a,b){var c=new i(a);return c.canMerge(b)}}}(wysihtml5),wysihtml5.dom.query=function(a,b){var c,d=[];a.nodeType&&(a=[a]);for(var e=0,f=a.length;f>e;e++)if(c=a[e].querySelectorAll(b))for(var g=c.length;g--;d.unshift(c[g]));return d},wysihtml5.dom.compareDocumentPosition=function(){var a=document.documentElement;return a.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)}:function(a,b){var c,d;if(c=9===a.nodeType?a:a.ownerDocument,d=9===b.nodeType?b:b.ownerDocument,a===b)return 0;if(a===b.ownerDocument)return 20;if(a.ownerDocument===b)return 10;if(c!==d)return 1;if(2===a.nodeType&&a.childNodes&&-1!==wysihtml5.lang.array(a.childNodes).indexOf(b))return 20;if(2===b.nodeType&&b.childNodes&&-1!==wysihtml5.lang.array(b.childNodes).indexOf(a))return 10;for(var e=a,f=[],g=null;e;){if(e==b)return 10;f.push(e),e=e.parentNode}for(e=b,g=null;e;){if(e==a)return 20;var h=wysihtml5.lang.array(f).indexOf(e);if(-1!==h){var i=f[h],j=wysihtml5.lang.array(i.childNodes).indexOf(f[h-1]),k=wysihtml5.lang.array(i.childNodes).indexOf(g);return j>k?2:4}g=e,e=e.parentNode}return 1}}(),wysihtml5.quirks.cleanPastedHTML=function(){function a(a,c,d){c=c||b,d=d||a.ownerDocument||document;var e,f,g,h,i,j,k="string"==typeof a,l=0;e=k?wysihtml5.dom.getAsDom(a,d):a;for(i in c)for(g=e.querySelectorAll(i),f=c[i],h=g.length;h>l;l++)f(g[l]);var m=wysihtml5.dom.getTextNodes(e);for(j=m.length;j--;)m[j].nodeValue=m[j].nodeValue.replace(/([\S\u00A0])\u00A0/gi,"$1 ");return g=a=c=null,k?e.innerHTML:e}var b={"a u":wysihtml5.dom.replaceWithChildNodes};return a}(),wysihtml5.quirks.ensureProperClearing=function(){var a=function(){var a=this;setTimeout(function(){var b=a.innerHTML.toLowerCase();("
"==b||"
"==b)&&(a.innerHTML="")},0)};return function(b){wysihtml5.dom.observe(b.element,["cut","keydown"],a)}}(),function(a){var b="%7E";a.quirks.getCorrectInnerHTML=function(c){var d=c.innerHTML;if(-1===d.indexOf(b))return d;var e,f,g,h,i=c.querySelectorAll("[href*='~'], [src*='~']");for(h=0,g=i.length;g>h;h++)e=i[h].href||i[h].src,f=a.lang.string(e).replace("~").by(b),d=a.lang.string(d).replace(f).by(e);return d}}(wysihtml5),function(a){var b="wysihtml5-quirks-redraw";a.quirks.redraw=function(c){a.dom.addClass(c,b),a.dom.removeClass(c,b);try{var d=c.ownerDocument;d.execCommand("italic",!1,null),d.execCommand("italic",!1,null)}catch(e){}}}(wysihtml5),wysihtml5.quirks.tableCellsSelection=function(a,b){function c(){return k.observe(a,"mousedown",function(a){var b=wysihtml5.dom.getParentElement(a.target,{nodeName:["TD","TH"]});b&&d(b)}),l}function d(c){l.start=c,l.end=c,l.cells=[c],l.table=k.getParentElement(l.start,{nodeName:["TABLE"]}),l.table&&(e(),k.addClass(c,m),n=k.observe(a,"mousemove",g),o=k.observe(a,"mouseup",h),b.fire("tableselectstart").fire("tableselectstart:composer"))}function e(){if(a){var b=a.querySelectorAll("."+m);if(b.length>0)for(var c=0;c1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){n.stop(),o.stop(),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){var c=k.observe(a.ownerDocument,"click",function(a){c.stop(),k.getParentElement(a.target,{nodeName:["TABLE"]})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))})}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{nodeName:["TABLE"]}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=null,o=null;return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},setAfter:function(a){var b=rangy.createRange(this.doc);return b.setStartAfter(a),b.setEndAfter(a),this.setSelection(b)},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){for(var a=this.getOwnRanges(),b=a.length;b--;)a[b].deleteContents();this.setSelection(a[0])},getPreviousNode:function(b,c){if(!b){var d=this.getSelection();b=d.anchorNode}if(b===this.contain)return!1;var e,f=b.previousSibling;return f===this.contain?!1:(f&&3!==f.nodeType&&1!==f.nodeType?f=this.getPreviousNode(f,c):f&&3===f.nodeType&&/^\s*$/.test(f.textContent)?f=this.getPreviousNode(f,c):c&&f&&1===f.nodeType&&!a.lang.array(["BR","HR","IMG"]).contains(f.nodeName)&&/^[\s]*$/.test(f.innerHTML)?f=this.getPreviousNode(f,c):f||b===this.contain||(e=b.parentNode,e!==this.contain&&(f=this.getPreviousNode(e,c))),f!==this.contain?f:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{nodeName:["LI"]},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var a=rangy.createRange(this.doc),b=this.getSelection();return a.selectNodeContents(this.getRange().commonAncestorContainer),a.collapse(!0),this.isCollapsed()&&(a.startContainer===b.anchorNode||a.endContainer===b.anchorNode)&&a.startOffset===b.anchorOffset},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,b,1)):0===e&&!this.getPreviousNode(d,!0)},caretIsBeforeUneditable:function(){var a=this.getSelection(),b=a.anchorNode,c=a.anchorOffset;if(0===c){var d=this.getPreviousNode(b,!0);if(d)for(var e=this.getOwnUneditables(),f=0,g=e.length;g>f;f++)if(d===e[f])return e[f]}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b=rangy.createRange(this.doc),c=b.createContextualFragment(a),d=c.lastChild;this.insertNode(c),d&&this.setAfter(d)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b.nodeName,b.className),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes([a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){return position=e.compareDocumentPosition(a.startContainer,a.endContainer),0==a.endOffset&&4&position},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a)},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function k(a,b){return a.className.replace(s," ")==b.className.replace(s," ")}function l(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.normalize&&b.normalize(),b.removeChild(a)}function m(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function n(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},q.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new p(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new p(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&k(a,c)&&m(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&n(b.endContainer,b.endOffset)&&(o(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&n(b.startContainer,b.startOffset)&&(f=o(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===j(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&l(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getAncestorWithClass(g)||this.applyToTextNode(g),this.getAncestorWithStyle(g)||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f,g=b.length;g--;){if(c=b[g].getNodes([a.TEXT_NODE]),c.length)b[g].splitBoundaries(),c=b[g].getNodes([a.TEXT_NODE]);else{var h=b[g].endContainer.ownerDocument,i=h.createTextNode(a.INVISIBLE_SPACE);b[g].insertNode(i),b[g].selectNode(i),c=[i]}for(var j=0,k=c.length;k>j;++j)b[g].isValid()&&(d=c[j],e=this.getAncestorWithClass(d),f=this.getAncestorWithStyle(d),e?this.undoToTextNode(d,b[g],e):f&&this.undoToTextNode(d,b[g],!1,f));1==k?this.selectNode(b[g],c[0]):(b[g].setStart(c[0],0),d=c[c.length-1],b[g].setEnd(d,d.length),this.normalize&&this.postApply(c,b[g]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f=b.length;f--;){if(d=b[f].getNodes([a.TEXT_NODE]),!d.length)return c=this.getAncestorWithClass(b[f].startContainer),c||(c=this.getAncestorWithStyle(b[f].startContainer)),c?[c]:!1;for(var g,h=0,i=d.length;i>h;++h)g=this.getTextSelectedByRange(d[h],b[f]),c=this.getAncestorWithClass(d[h]),c||(c=this.getAncestorWithStyle(d[h])),c&&""!=g&&e.push(c)}return e.length?e:!1},toggleRange:function(a){this.isAppliedToRange(a)?this.undoToRange(a):this.applyToRange(a)}},a.selection.HTMLApplier=q}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(a,d,e){var f=this.state(a,d);f?a.selection.executeAndRestore(function(){c(a,f,e)}):(e="object"==typeof e?e:{href:e},b(a,e))},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){function b(a,b){for(var d,e,f,g=b.length,h=0;g>h;h++)d=b[h],e=c.getParentElement(d,{nodeName:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b,c,e){b.className?(d(b,e),b.className=a.lang.string(b.className+" "+c).trim()):b.className=c}function c(b,c,d){e(b,d),b.getAttribute("style")?b.setAttribute("style",a.lang.string(b.getAttribute("style")+" "+c).trim()):b.setAttribute("style",c)}function d(b,c){var d=c.test(b.className);return b.className=b.className.replace(c,""),""==a.lang.string(b.className).trim()&&b.removeAttribute("class"),d}function e(b,c){var d=c.test(b.getAttribute("style"));return b.setAttribute("style",(b.getAttribute("style")||"").replace(c,"")),""==a.lang.string(b.getAttribute("style")||"").trim()&&b.removeAttribute("style"),d}function f(b){return b.nodeType===a.TEXT_NODE&&!a.lang.string(b.data).trim()}function g(a){for(var b=a.previousSibling;b&&f(b);)b=b.previousSibling;return b}function h(a){for(var b=a.nextSibling;b&&f(b);)b=b.nextSibling;return b}function i(a){var b=a.ownerDocument,c=h(a),d=g(a);c&&!m(c)&&a.parentNode.insertBefore(b.createElement("br"),c),d&&!m(d)&&a.parentNode.insertBefore(b.createElement("br"),a)}function j(a){var b=h(a),c=g(a);b&&l(b)&&b.parentNode.removeChild(b),c&&l(c)&&c.parentNode.removeChild(c)}function k(a){var b=a.lastChild;b&&l(b)&&b.parentNode.removeChild(b)}function l(a){return"BR"===a.nodeName}function m(a){return l(a)?!0:"block"===q.getStyle("display").from(a)?!0:!1}function n(a,b){a.selection.isCollapsed()&&a.selection.selectLine();for(var c=a.selection.surround(b),d=0,e=c.length;e>d;d++)j(c[d]),k(c[d])}function o(b){return!!a.lang.string(b.className).trim()}function p(b){return!!a.lang.string(b.getAttribute("style")||"").trim()}var q=a.dom,r=["H1","H2","H3","H4","H5","H6","P","PRE","BLOCKQUOTE","DIV"];a.commands.formatBlock={exec:function(f,g,h,j,k,l,m){var s,t,u,v,w=(f.doc,this.state(f,g,h,j,k,l,m)),x=f.config.useLineBreaks,y=x?"DIV":"P";return h="string"==typeof h?h.toUpperCase():h,w.length?void f.selection.executeAndRestoreRangy(function(){for(var a=w.length;a--;){if(k&&(t=d(w[a],k)),m&&(v=e(w[a],m)),(v||t)&&null===h&&w[a].nodeName!=y)return;var b=o(w[a]),c=p(w[a]);b||c||!x&&"P"!==h?q.renameElement(w[a],"P"===h?"DIV":y):(i(w[a]),q.replaceWithChildNodes(w[a]))}}):void((null!==h&&!a.lang.array(r).contains(h)||(s=f.selection.findNodesInSelection(r).concat(f.selection.getSelectedOwnNodes()),f.selection.executeAndRestoreRangy(function(){for(var a=s.length;a--;)blockElement=q.getParentElement(s[a],{nodeName:r}),blockElement==f.element&&(blockElement=null),blockElement&&(h&&(blockElement=q.renameElement(blockElement,h)),j&&b(blockElement,j,k),l&&c(blockElement,l,m),u=!0)}),!u))&&n(f,{nodeName:h||y,className:j||null,cssStyle:l||null}))},state:function(b,c,d,e,f,g,h){var i,j=b.selection.getSelectedOwnNodes(),k=[];d="string"==typeof d?d.toUpperCase():d;for(var l=0,m=j.length;m>l;l++)i=q.getParentElement(j[l],{nodeName:d,className:e,classRegExp:f,cssStyle:g,styleRegExp:h}),i&&-1==a.lang.array(k).indexOf(i)&&k.push(i);return 0==k.length?!1:k}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{nodeName:"CODE"})&&wysihtml5.dom.getParentElement(b,{nodeName:"PRE"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange();return ownRanges=a.selection.getOwnRanges(),ownRanges&&0!=ownRanges.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(ownRanges),void(i?j||a.cleanUp():(k.setStart(ownRanges[0].startContainer,ownRanges[0].startOffset),k.setEnd(ownRanges[ownRanges.length-1].endContainer,ownRanges[ownRanges.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l=b.doc,m=d[f]||f;return a.dom.hasElementWithTagName(l,f)||a.dom.hasElementWithTagName(l,m)?g&&!a.dom.hasElementWithClassName(l,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?c(f,g,h,i,j,b.element).isAppliedToRange(k):!1):!1}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);i=h.createElement(b);for(var j in e)i.setAttribute("className"===j?"class":j,e[j]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)
+g&&l.table&&l.start&&(d=k.getParentElement(g,{nodeName:["TABLE"]}),d&&d===l.table&&(e(),c=l.end,l.end=g,l.cells=k.table.getCellsBetween(l.start,g),l.cells.length>1&&b.composer.selection.deselect(),f(l.cells),l.end!==c&&b.fire("tableselectchange").fire("tableselectchange:composer")))}function h(){n.stop(),o.stop(),b.fire("tableselect").fire("tableselect:composer"),setTimeout(function(){i()},0)}function i(){var c=k.observe(a.ownerDocument,"click",function(a){c.stop(),k.getParentElement(a.target,{nodeName:["TABLE"]})!=l.table&&(e(),l.table=null,l.start=null,l.end=null,b.fire("tableunselect").fire("tableunselect:composer"))})}function j(a,c){l.start=a,l.end=c,l.table=k.getParentElement(l.start,{nodeName:["TABLE"]}),selectedCells=k.table.getCellsBetween(l.start,l.end),f(selectedCells),i(),b.fire("tableselect").fire("tableselect:composer")}var k=wysihtml5.dom,l={table:null,start:null,end:null,cells:null,select:j},m="wysiwyg-tmp-selected-cell",n=null,o=null;return c()},function(a){var b=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([\d\.]+)\s*\)/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,d=/^#([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/i,e=/^#([0-9a-f])([0-9a-f])([0-9a-f])/i,f=function(a){return new RegExp("(^|\\s|;)"+a+"\\s*:\\s*[^;$]+","gi")};a.quirks.styleParser={parseColor:function(g,h){var i,j,k=f(h),l=g.match(k),m=10;if(l){for(var n=l.length;n--;)l[n]=a.lang.string(l[n].split(":")[1]).trim();if(i=l[l.length-1],b.test(i))j=i.match(b);else if(c.test(i))j=i.match(c);else if(d.test(i))j=i.match(d),m=16;else if(e.test(i))return j=i.match(e),j.shift(),j.push(1),a.lang.array(j).map(function(a,b){return 3>b?16*parseInt(a,16)+parseInt(a,16):parseFloat(a)});if(j)return j.shift(),j[3]||j.push(1),a.lang.array(j).map(function(a,b){return 3>b?parseInt(a,m):parseFloat(a)})}return!1},unparseColor:function(a,b){if(b){if("hex"==b)return a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("hash"==b)return"#"+a[0].toString(16).toUpperCase()+a[1].toString(16).toUpperCase()+a[2].toString(16).toUpperCase();if("rgb"==b)return"rgb("+a[0]+","+a[1]+","+a[2]+")";if("rgba"==b)return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")";if("csv"==b)return a[0]+","+a[1]+","+a[2]+","+a[3]}return a[3]&&1!==a[3]?"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")":"rgb("+a[0]+","+a[1]+","+a[2]+")"},parseFontSize:function(b){var c=b.match(f("font-size"));return c?a.lang.string(c[c.length-1].split(":")[1]).trim():!1}}}(wysihtml5),function(a){function b(a){var b=0;if(a.parentNode)do b+=a.offsetTop||0,a=a.offsetParent;while(a);return b}function c(a,b){for(var c=0;b!==a;)if(c++,b=b.parentNode,!b)throw new Error("not a descendant of ancestor!");return c}function d(a){if(!a.canSurroundContents())for(var b=a.commonAncestorContainer,d=c(b,a.startContainer),e=c(b,a.endContainer);!a.canSurroundContents();)d>e?(a.setStartBefore(a.startContainer),d=c(b,a.startContainer)):(a.setEndAfter(a.endContainer),e=c(b,a.endContainer))}var e=a.dom;a.Selection=Base.extend({constructor:function(a,b,c){window.rangy.init(),this.editor=a,this.composer=a.composer,this.doc=this.composer.doc,this.contain=b,this.unselectableClass=c||!1},getBookmark:function(){var a=this.getRange();return a&&d(a),a&&a.cloneRange()},setBookmark:function(a){a&&this.setSelection(a)},setBefore:function(a){var b=rangy.createRange(this.doc);return b.setStartBefore(a),b.setEndBefore(a),this.setSelection(b)},setAfter:function(a){var b=rangy.createRange(this.doc);return b.setStartAfter(a),b.setEndAfter(a),this.setSelection(b)},selectNode:function(b,c){var d=rangy.createRange(this.doc),f=b.nodeType===a.ELEMENT_NODE,g="canHaveHTML"in b?b.canHaveHTML:"IMG"!==b.nodeName,h=f?b.innerHTML:b.data,i=""===h||h===a.INVISIBLE_SPACE,j=e.getStyle("display").from(b),k="block"===j||"list-item"===j;if(i&&f&&g&&!c)try{b.innerHTML=a.INVISIBLE_SPACE}catch(l){}g?d.selectNodeContents(b):d.selectNode(b),g&&i&&f?d.collapse(k):g&&i&&(d.setStartAfter(b),d.setEndAfter(b)),this.setSelection(d)},getSelectedNode:function(a){var b,c;return a&&this.doc.selection&&"Control"===this.doc.selection.type&&(c=this.doc.selection.createRange(),c&&c.length)?c.item(0):(b=this.getSelection(this.doc),b.focusNode===b.anchorNode?b.focusNode:(c=this.getRange(this.doc),c?c.commonAncestorContainer:this.doc.body))},getSelectedOwnNodes:function(){for(var a=this.getOwnRanges(),b=[],c=0,d=a.length;d>c;c++)b.push(a[c].commonAncestorContainer||this.doc.body);return b},findNodesInSelection:function(b){for(var c,d=this.getOwnRanges(),e=[],f=0,g=d.length;g>f;f++)c=d[f].getNodes([1],function(c){return a.lang.array(b).contains(c.nodeName)}),e=e.concat(c);return e},containsUneditable:function(){for(var a=this.getOwnUneditables(),b=this.getSelection(),c=0,d=a.length;d>c;c++)if(b.containsNode(a[c]))return!0;return!1},deleteContents:function(){for(var a=this.getOwnRanges(),b=a.length;b--;)a[b].deleteContents();this.setSelection(a[0])},getPreviousNode:function(b,c){if(!b){var d=this.getSelection();b=d.anchorNode}if(b===this.contain)return!1;var e,f=b.previousSibling;return f===this.contain?!1:(f&&3!==f.nodeType&&1!==f.nodeType?f=this.getPreviousNode(f,c):f&&3===f.nodeType&&/^\s*$/.test(f.textContent)?f=this.getPreviousNode(f,c):c&&f&&1===f.nodeType&&!a.lang.array(["BR","HR","IMG"]).contains(f.nodeName)&&/^[\s]*$/.test(f.innerHTML)?f=this.getPreviousNode(f,c):f||b===this.contain||(e=b.parentNode,e!==this.contain&&(f=this.getPreviousNode(e,c))),f!==this.contain?f:!1)},getSelectionParentsByTag:function(){for(var b,c=this.getSelectedOwnNodes(),d=[],e=0,f=c.length;f>e;e++)b=c[e].nodeName&&"LI"===c[e].nodeName?c[e]:a.dom.getParentElement(c[e],{nodeName:["LI"]},!1,this.contain),b&&d.push(b);return d.length?d:null},getRangeToNodeEnd:function(){if(this.isCollapsed()){var a=this.getRange(),b=a.startContainer,c=a.startOffset,d=rangy.createRange(this.doc);return d.selectNodeContents(b),d.setStart(b,c),d}},caretIsLastInSelection:function(){var a=(rangy.createRange(this.doc),this.getSelection(),this.getRangeToNodeEnd().cloneContents()),b=a.textContent;return/^\s*$/.test(b)},caretIsFirstInSelection:function(){var a=rangy.createRange(this.doc),b=this.getSelection();return a.selectNodeContents(this.getRange().commonAncestorContainer),a.collapse(!0),this.isCollapsed()&&(a.startContainer===b.anchorNode||a.endContainer===b.anchorNode)&&a.startOffset===b.anchorOffset},caretIsInTheBeginnig:function(b){var c=this.getSelection(),d=c.anchorNode,e=c.anchorOffset;return b?0===e&&(d.nodeName&&d.nodeName===b.toUpperCase()||a.dom.getParentElement(d.parentNode,{nodeName:b},1)):0===e&&!this.getPreviousNode(d,!0)},caretIsBeforeUneditable:function(){var a=this.getSelection(),b=a.anchorNode,c=a.anchorOffset;if(0===c){var d=this.getPreviousNode(b,!0);if(d)for(var e=this.getOwnUneditables(),f=0,g=e.length;g>f;f++)if(d===e[f])return e[f]}return!1},executeAndRestoreRangy:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.saveSelection(b);if(c)try{a()}catch(d){setTimeout(function(){throw d},0)}else a();rangy.restoreSelection(c)},executeAndRestore:function(b,c){var d,f,g,h,i,j,k,l,m=this.doc.body,n=c&&m.scrollTop,o=c&&m.scrollLeft,p="_wysihtml5-temp-placeholder",q=''+a.INVISIBLE_SPACE+"",r=this.getRange(!0);if(!r)return void b(m,m);r.collapsed||(k=r.cloneRange(),j=k.createContextualFragment(q),k.collapse(!1),k.insertNode(j),k.detach()),i=r.createContextualFragment(q),r.insertNode(i),j&&(d=this.contain.querySelectorAll("."+p),r.setStartBefore(d[0]),r.setEndAfter(d[d.length-1])),this.setSelection(r);try{b(r.startContainer,r.endContainer)}catch(s){setTimeout(function(){throw s},0)}if(d=this.contain.querySelectorAll("."+p),d&&d.length){l=rangy.createRange(this.doc),g=d[0].nextSibling,d.length>1&&(h=d[d.length-1].previousSibling),h&&g?(l.setStartBefore(g),l.setEndAfter(h)):(f=this.doc.createTextNode(a.INVISIBLE_SPACE),e.insert(f).after(d[0]),l.setStartBefore(f),l.setEndAfter(f)),this.setSelection(l);for(var t=d.length;t--;)d[t].parentNode.removeChild(d[t])}else this.contain.focus();c&&(m.scrollTop=n,m.scrollLeft=o);try{d.parentNode.removeChild(d)}catch(u){}},set:function(a,b){var c=rangy.createRange(this.doc);c.setStart(a,b||0),this.setSelection(c)},insertHTML:function(a){var b=rangy.createRange(this.doc),c=b.createContextualFragment(a),d=c.lastChild;this.insertNode(c),d&&this.setAfter(d)},insertNode:function(a){var b=this.getRange();b&&b.insertNode(a)},surround:function(a){var b,c=this.getOwnRanges(),d=[];if(0==c.length)return d;for(var e=c.length;e--;){b=this.doc.createElement(a.nodeName),d.push(b),a.className&&(b.className=a.className),a.cssStyle&&b.setAttribute("style",a.cssStyle);try{c[e].surroundContents(b),this.selectNode(b)}catch(f){b.appendChild(c[e].extractContents()),c[e].insertNode(b)}}return d},deblockAndSurround:function(b){var c,d,e,f=this.doc.createElement("div"),g=rangy.createRange(this.doc);if(f.className=b.className,this.composer.commands.exec("formatBlock",b.nodeName,b.className),c=this.contain.querySelectorAll("."+b.className),c[0])for(c[0].parentNode.insertBefore(f,c[0]),g.setStartBefore(c[0]),g.setEndAfter(c[c.length-1]),d=g.extractContents();d.firstChild;)if(e=d.firstChild,1==e.nodeType&&a.dom.hasClass(e,b.className)){for(;e.firstChild;)f.appendChild(e.firstChild);"BR"!==e.nodeName&&f.appendChild(this.doc.createElement("br")),d.removeChild(e)}else f.appendChild(e);else f=null;return f},scrollIntoView:function(){var c,d=this.doc,e=5,f=d.documentElement.scrollHeight>d.documentElement.offsetHeight,g=d._wysihtml5ScrollIntoViewElement=d._wysihtml5ScrollIntoViewElement||function(){var b=d.createElement("span");return b.innerHTML=a.INVISIBLE_SPACE,b}();f&&(this.insertNode(g),c=b(g),g.parentNode.removeChild(g),c>=d.body.scrollTop+d.documentElement.offsetHeight-e&&(d.body.scrollTop=c))},selectLine:function(){a.browser.supportsSelectionModify()?this._selectLine_W3C():this.doc.selection&&this._selectLine_MSIE()},_selectLine_W3C:function(){var a=this.doc.defaultView,b=a.getSelection();b.modify("move","left","lineboundary"),b.modify("extend","right","lineboundary")},_selectLine_MSIE:function(){var a,b,c,d,e,f=this.doc.selection.createRange(),g=f.boundingTop,h=this.doc.body.scrollWidth;if(f.moveToPoint){for(0===g&&(c=this.doc.createElement("span"),this.insertNode(c),g=c.offsetTop,c.parentNode.removeChild(c)),g+=1,d=-10;h>d;d+=2)try{f.moveToPoint(d,g);break}catch(i){}for(a=g,b=this.doc.selection.createRange(),e=h;e>=0;e--)try{b.moveToPoint(e,a);break}catch(j){}f.setEndPoint("EndToEnd",b),f.select()}},getText:function(){var a=this.getSelection();return a?a.toString():""},getNodes:function(a,b){var c=this.getRange();return c?c.getNodes([a],b):[]},fixRangeOverflow:function(a){if(this.contain&&this.contain.firstChild&&a){var b=a.compareNode(this.contain);if(2!==b)1===b&&a.setStartBefore(this.contain.firstChild),0===b&&a.setEndAfter(this.contain.lastChild),3===b&&(a.setStartBefore(this.contain.firstChild),a.setEndAfter(this.contain.lastChild));else if(this._detectInlineRangeProblems(a)){var c=a.endContainer.previousElementSibling;c&&a.setEnd(c,this._endOffsetForNode(c))}}},_endOffsetForNode:function(a){var b=document.createRange();return b.selectNodeContents(a),b.endOffset},_detectInlineRangeProblems:function(a){return position=e.compareDocumentPosition(a.startContainer,a.endContainer),0==a.endOffset&&4&position},getRange:function(a){var b=this.getSelection(),c=b&&b.rangeCount&&b.getRangeAt(0);return a!==!0&&this.fixRangeOverflow(c),c},getOwnUneditables:function(){var b=e.query(this.contain,"."+this.unselectableClass),c=e.query(b,"."+this.unselectableClass);return a.lang.array(b).without(c)},getOwnRanges:function(){var a,b=[],c=this.getRange();if(c&&b.push(c),this.unselectableClass&&this.contain&&c){var d,e=this.getOwnUneditables();if(e.length>0)for(var f=0,g=e.length;g>f;f++){a=[];for(var h=0,i=b.length;i>h;h++){if(b[h])switch(b[h].compareNode(e[f])){case 2:break;case 3:d=b[h].cloneRange(),d.setEndBefore(e[f]),a.push(d),d=b[h].cloneRange(),d.setStartAfter(e[f]),a.push(d);break;default:a.push(b[h])}b=a}}}return b},getSelection:function(){return rangy.getSelection(this.doc.defaultView||this.doc.parentWindow)},setSelection:function(a){var b=this.doc.defaultView||this.doc.parentWindow,c=rangy.getSelection(b);return c.setSingleRange(a)},createRange:function(){return rangy.createRange(this.doc)},isCollapsed:function(){return this.getSelection().isCollapsed},deselect:function(){var a=this.getSelection();a&&a.removeAllRanges()}})}(wysihtml5),function(a,b){function c(a,b,c){if(!a.className)return!1;var d=a.className.match(c)||[];return d[d.length-1]===b}function d(a,b){if(!a.getAttribute||!a.getAttribute("style"))return!1;a.getAttribute("style").match(b);return a.getAttribute("style").match(b)?!0:!1}function e(a,b,c){a.getAttribute("style")?(h(a,c),a.getAttribute("style")&&!/^\s*$/.test(a.getAttribute("style"))?a.setAttribute("style",b+";"+a.getAttribute("style")):a.setAttribute("style",b)):a.setAttribute("style",b)}function f(a,b,c){a.className?(g(a,c),a.className+=" "+b):a.className=b}function g(a,b){a.className&&(a.className=a.className.replace(b,""))}function h(a,b){var c,d=[];if(a.getAttribute("style")){c=a.getAttribute("style").split(";");for(var e=c.length;e--;)c[e].match(b)||/^\s*$/.test(c[e])||d.push(c[e]);d.length?a.setAttribute("style",d.join(";")):a.removeAttribute("style")}}function i(a,b){var c=[],d=b.split(";"),e=a.getAttribute("style");if(e){e=e.replace(/\s/gi,"").toLowerCase(),c.push(new RegExp("(^|\\s|;)"+b.replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var f=d.length;f-->0;)/^\s*$/.test(d[f])||c.push(new RegExp("(^|\\s|;)"+d[f].replace(/\s/gi,"").replace(/([\(\)])/gi,"\\$1").toLowerCase().replace(";",";?").replace(/rgb\\\((\d+),(\d+),(\d+)\\\)/gi,"\\s?rgb\\($1,\\s?$2,\\s?$3\\)"),"gi"));for(var g=0,h=c.length;h>g;g++)if(e.match(c[g]))return c[g]}return!1}function j(a,b,c){var d=i(a,b);return d?(h(a,d),"remove"):(e(a,b,c),"change")}function k(a,b){return a.className.replace(s," ")==b.className.replace(s," ")}function l(a){for(var b=a.parentNode;a.firstChild;)b.insertBefore(a.firstChild,a);b.normalize&&b.normalize(),b.removeChild(a)}function m(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function n(a,c){return b.dom.isCharacterDataNode(a)?0==c?!!a.previousSibling:c==a.length?!!a.nextSibling:!0:c>0&&ce;++e)a=this.textNodes[e],b=a.parentNode,d[e]=a.data,e&&(b.removeChild(a),b.hasChildNodes()||b.parentNode.removeChild(b));return this.firstTextNode.data=c=d.join(""),c},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){for(var a=[],b=0,c=this.textNodes.length;c>b;++b)a[b]="'"+this.textNodes[b].data+"'";return"[Merge("+a.join(",")+")]"}},q.prototype={getAncestorWithClass:function(d){for(var e;d;){if(e=this.cssClass?c(d,this.cssClass,this.similarClassRegExp):""!==this.cssStyle?!1:!0,d.nodeType==a.ELEMENT_NODE&&"false"!=d.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,d.tagName.toLowerCase())&&e)return d;d=d.parentNode}return!1},getAncestorWithStyle:function(c){for(var e;c;){if(e=this.cssStyle?d(c,this.similarStyleRegExp):!1,c.nodeType==a.ELEMENT_NODE&&"false"!=c.getAttribute("contenteditable")&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&e)return c;c=c.parentNode}return!1},postApply:function(a,b){for(var c,d,e,f=a[0],g=a[a.length-1],h=[],i=f,j=g,k=0,l=g.length,m=0,n=a.length;n>m;++m)d=a[m],e=null,d&&d.parentNode&&(e=this.getAdjacentMergeableTextNode(d.parentNode,!1)),e?(c||(c=new p(e),h.push(c)),c.textNodes.push(d),d===f&&(i=c.firstTextNode,k=i.length),d===g&&(j=c.firstTextNode,l=c.getLength())):c=null;if(g&&g.parentNode){var o=this.getAdjacentMergeableTextNode(g.parentNode,!0);o&&(c||(c=new p(g),h.push(c)),c.textNodes.push(o))}if(h.length){for(m=0,n=h.length;n>m;++m)h[m].doMerge();b.setStart(i,k),b.setEnd(j,l)}},getAdjacentMergeableTextNode:function(b,c){var d,e=b.nodeType==a.TEXT_NODE,f=e?b.parentNode:b,g=c?"nextSibling":"previousSibling";if(e){if(d=b[g],d&&d.nodeType==a.TEXT_NODE)return d}else if(d=f[g],d&&this.areElementsMergeable(b,d))return d[c?"firstChild":"lastChild"];return null},areElementsMergeable:function(a,c){return b.dom.arrayContains(this.tagNames,(a.tagName||"").toLowerCase())&&b.dom.arrayContains(this.tagNames,(c.tagName||"").toLowerCase())&&k(a,c)&&m(a,c)},createContainer:function(a){var b=a.createElement(this.tagNames[0]);return this.cssClass&&(b.className=this.cssClass),this.cssStyle&&b.setAttribute("style",this.cssStyle),b},applyToTextNode:function(a){var c=a.parentNode;if(1==c.childNodes.length&&b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase()))this.cssClass&&f(c,this.cssClass,this.similarClassRegExp),this.cssStyle&&e(c,this.cssStyle,this.similarStyleRegExp);else{var d=this.createContainer(b.dom.getDocument(a));a.parentNode.insertBefore(d,a),d.appendChild(a)}},isRemovable:function(c){return b.dom.arrayContains(this.tagNames,c.tagName.toLowerCase())&&""===a.lang.string(c.className).trim()&&(!c.getAttribute("style")||""===a.lang.string(c.getAttribute("style")).trim())},undoToTextNode:function(a,b,c,d){var e=c?!1:!0,f=c||d,h=!1;if(!b.containsNode(f)){var i=b.cloneRange();i.selectNode(f),i.isPointInRange(b.endContainer,b.endOffset)&&n(b.endContainer,b.endOffset)&&(o(f,b.endContainer,b.endOffset,this.container),b.setEndAfter(f)),i.isPointInRange(b.startContainer,b.startOffset)&&n(b.startContainer,b.startOffset)&&(f=o(f,b.startContainer,b.startOffset,this.container))}!e&&this.similarClassRegExp&&g(f,this.similarClassRegExp),e&&this.similarStyleRegExp&&(h="change"===j(f,this.cssStyle,this.similarStyleRegExp)),this.isRemovable(f)&&!h&&l(f)},applyToRange:function(b){for(var c,d=b.length;d--;){if(c=b[d].getNodes([a.TEXT_NODE]),!c.length)try{var e=this.createContainer(b[d].endContainer.ownerDocument);return b[d].surroundContents(e),void this.selectNode(b[d],e)}catch(f){}if(b[d].splitBoundaries(),c=b[d].getNodes([a.TEXT_NODE]),c.length){for(var g,h=0,i=c.length;i>h;++h)g=c[h],this.getAncestorWithClass(g)||this.applyToTextNode(g),this.getAncestorWithStyle(g)||this.applyToTextNode(g);b[d].setStart(c[0],0),g=c[c.length-1],b[d].setEnd(g,g.length),this.normalize&&this.postApply(c,b[d])}}},undoToRange:function(b){for(var c,d,e,f,g=b.length;g--;){if(c=b[g].getNodes([a.TEXT_NODE]),c.length)b[g].splitBoundaries(),c=b[g].getNodes([a.TEXT_NODE]);else{var h=b[g].endContainer.ownerDocument,i=h.createTextNode(a.INVISIBLE_SPACE);b[g].insertNode(i),b[g].selectNode(i),c=[i]}for(var j=0,k=c.length;k>j;++j)b[g].isValid()&&(d=c[j],e=this.getAncestorWithClass(d),f=this.getAncestorWithStyle(d),e?this.undoToTextNode(d,b[g],e):f&&this.undoToTextNode(d,b[g],!1,f));1==k?this.selectNode(b[g],c[0]):(b[g].setStart(c[0],0),d=c[c.length-1],b[g].setEnd(d,d.length),this.normalize&&this.postApply(c,b[g]))}},selectNode:function(b,c){var d=c.nodeType===a.ELEMENT_NODE,e="canHaveHTML"in c?c.canHaveHTML:!0,f=d?c.innerHTML:c.data,g=""===f||f===a.INVISIBLE_SPACE;if(g&&d&&e)try{c.innerHTML=a.INVISIBLE_SPACE}catch(h){}b.selectNodeContents(c),g&&d?b.collapse(!1):g&&(b.setStartAfter(c),b.setEndAfter(c))},getTextSelectedByRange:function(a,b){var c=b.cloneRange();c.selectNodeContents(a);var d=c.intersection(b),e=d?d.toString():"";return c.detach(),e},isAppliedToRange:function(b){for(var c,d,e=[],f=b.length;f--;){if(d=b[f].getNodes([a.TEXT_NODE]),!d.length)return c=this.getAncestorWithClass(b[f].startContainer),c||(c=this.getAncestorWithStyle(b[f].startContainer)),c?[c]:!1;for(var g,h=0,i=d.length;i>h;++h)g=this.getTextSelectedByRange(d[h],b[f]),c=this.getAncestorWithClass(d[h]),c||(c=this.getAncestorWithStyle(d[h])),c&&""!=g&&e.push(c)}return e.length?e:!1},toggleRange:function(a){this.isAppliedToRange(a)?this.undoToRange(a):this.applyToRange(a)}},a.selection.HTMLApplier=q}(wysihtml5,rangy),wysihtml5.Commands=Base.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.doc=this.composer.doc},support:function(a){return wysihtml5.browser.supportsCommand(this.doc,a)},exec:function(a,b){var c=wysihtml5.commands[a],d=wysihtml5.lang.array(arguments).get(),e=c&&c.exec,f=null;if(this.editor.fire("beforecommand:composer"),e)d.unshift(this.composer),f=e.apply(c,d);else try{f=this.doc.execCommand(a,!1,b)}catch(g){}return this.editor.fire("aftercommand:composer"),f},state:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.state;if(d)return c.unshift(this.composer),d.apply(b,c);try{return this.doc.queryCommandState(a)}catch(e){return!1}},stateValue:function(a){var b=wysihtml5.commands[a],c=wysihtml5.lang.array(arguments).get(),d=b&&b.stateValue;return d?(c.unshift(this.composer),d.apply(b,c)):!1}}),wysihtml5.commands.bold={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"b")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"b")}},function(a){function b(b,c){var g,h,i,j,k,l,m,n,o,p=b.doc,q="_wysihtml5-temp-"+ +new Date,r=/non-matching-class/g,s=0;for(a.commands.formatInline.exec(b,d,e,q,r,d,d,!0,!0),h=p.querySelectorAll(e+"."+q),g=h.length;g>s;s++){i=h[s],i.removeAttribute("class");for(o in c)"text"!==o&&i.setAttribute(o,c[o])}l=i,1===g&&(m=f.getTextContent(i),j=!!i.querySelector("*"),k=""===m||m===a.INVISIBLE_SPACE,!j&&k&&(f.setTextContent(i,c.text||i.href),n=p.createTextNode(" "),b.selection.setAfter(i),f.insert(n).after(i),l=n)),b.selection.setAfter(l)}function c(a,b,c){for(var d,e=b.length;e--;){d=b[e].attributes;for(var f=d.length;f--;)b[e].removeAttribute(d.item(f).name);for(var g in c)c.hasOwnProperty(g)&&b[e].setAttribute(g,c[g])}}var d,e="A",f=a.dom;a.commands.createLink={exec:function(a,d,e){var f=this.state(a,d);f?a.selection.executeAndRestore(function(){c(a,f,e)}):(e="object"==typeof e?e:{href:e},b(a,e))},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){function b(a,b){for(var d,e,f,g=b.length,h=0;g>h;h++)d=b[h],e=c.getParentElement(d,{nodeName:"code"}),f=c.getTextContent(d),f.match(c.autoLink.URL_REG_EXP)&&!e?e=c.renameElement(d,"code"):c.replaceWithChildNodes(d)}var c=a.dom;a.commands.removeLink={exec:function(a,c){var d=this.state(a,c);d&&a.selection.executeAndRestore(function(){b(a,d)})},state:function(b,c){return a.commands.formatInline.state(b,c,"A")}}}(wysihtml5),function(a){var b=/wysiwyg-font-size-[0-9a-z\-]+/g;a.commands.fontSize={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-font-size-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-font-size-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)font-size\s*:\s*[^;\s]+;?/gi;a.commands.fontSizeStyle={exec:function(c,d,e){e="object"==typeof e?e.size:e,/^\s*$/.test(e)||a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,"font-size:"+e,b)},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"font-size",b)},stateValue:function(b,c){var d,e=this.state(b,c);return e&&a.lang.object(e).isArray()&&(e=e[0]),e&&(d=e.getAttribute("style"))?a.quirks.styleParser.parseFontSize(d):!1}}}(wysihtml5),function(a){var b=/wysiwyg-color-[0-9a-z]+/g;a.commands.foreColor={exec:function(c,d,e){a.commands.formatInline.execWithToggle(c,d,"span","wysiwyg-color-"+e,b)},state:function(c,d,e){return a.commands.formatInline.state(c,d,"span","wysiwyg-color-"+e,b)}}}(wysihtml5),function(a){var b=/(\s|^)color\s*:\s*[^;\s]+;?/gi;a.commands.foreColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"color:"+e.color:"color:"+e,"color");g&&(f="color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c);return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"),e&&e)?(val=a.quirks.styleParser.parseColor(e,"color"),a.quirks.styleParser.unparseColor(val,d)):!1}}}(wysihtml5),function(a){var b=/(\s|^)background-color\s*:\s*[^;\s]+;?/gi;a.commands.bgColorStyle={exec:function(c,d,e){var f,g=a.quirks.styleParser.parseColor("object"==typeof e?"background-color:"+e.color:"background-color:"+e,"background-color");g&&(f="background-color: rgb("+g[0]+","+g[1]+","+g[2]+");",1!==g[3]&&(f+="background-color: rgba("+g[0]+","+g[1]+","+g[2]+","+g[3]+");"),a.commands.formatInline.execWithToggle(c,d,"span",!1,!1,f,b))},state:function(c,d){return a.commands.formatInline.state(c,d,"span",!1,!1,"background-color",b)},stateValue:function(b,c,d){var e,f=this.state(b,c),g=!1;return f&&a.lang.object(f).isArray()&&(f=f[0]),f&&(e=f.getAttribute("style"))?(g=a.quirks.styleParser.parseColor(e,"background-color"),a.quirks.styleParser.unparseColor(g,d)):!1}}}(wysihtml5),function(a){function b(b,c,e){b.className?(d(b,e),b.className=a.lang.string(b.className+" "+c).trim()):b.className=c}function c(b,c,d){e(b,d),b.getAttribute("style")?b.setAttribute("style",a.lang.string(b.getAttribute("style")+" "+c).trim()):b.setAttribute("style",c)}function d(b,c){var d=c.test(b.className);return b.className=b.className.replace(c,""),""==a.lang.string(b.className).trim()&&b.removeAttribute("class"),d}function e(b,c){var d=c.test(b.getAttribute("style"));return b.setAttribute("style",(b.getAttribute("style")||"").replace(c,"")),""==a.lang.string(b.getAttribute("style")||"").trim()&&b.removeAttribute("style"),d}function f(b){return b.nodeType===a.TEXT_NODE&&!a.lang.string(b.data).trim()}function g(a){for(var b=a.previousSibling;b&&f(b);)b=b.previousSibling;return b}function h(a){for(var b=a.nextSibling;b&&f(b);)b=b.nextSibling;return b}function i(a){var b=a.ownerDocument,c=h(a),d=g(a);c&&!m(c)&&a.parentNode.insertBefore(b.createElement("br"),c),d&&!m(d)&&a.parentNode.insertBefore(b.createElement("br"),a)}function j(a){var b=h(a),c=g(a);b&&l(b)&&b.parentNode.removeChild(b),c&&l(c)&&c.parentNode.removeChild(c)}function k(a){var b=a.lastChild;b&&l(b)&&b.parentNode.removeChild(b)}function l(a){return"BR"===a.nodeName}function m(a){return l(a)?!0:"block"===q.getStyle("display").from(a)?!0:!1}function n(a,b){a.selection.isCollapsed()&&a.selection.selectLine();for(var c=a.selection.surround(b),d=0,e=c.length;e>d;d++)j(c[d]),k(c[d])}function o(b){return!!a.lang.string(b.className).trim()}function p(b){return!!a.lang.string(b.getAttribute("style")||"").trim()}var q=a.dom,r=["H1","H2","H3","H4","H5","H6","P","PRE","BLOCKQUOTE","DIV"];a.commands.formatBlock={exec:function(f,g,h,j,k,l,m){var s,t,u,v,w=(f.doc,this.state(f,g,h,j,k,l,m)),x=f.config.useLineBreaks,y=x?"DIV":"P";return h="string"==typeof h?h.toUpperCase():h,w.length?void f.selection.executeAndRestoreRangy(function(){for(var a=w.length;a--;){if(k&&(t=d(w[a],k)),m&&(v=e(w[a],m)),(v||t)&&null===h&&w[a].nodeName!=y)return;var b=o(w[a]),c=p(w[a]);b||c||!x&&"P"!==h?q.renameElement(w[a],"P"===h?"DIV":y):(i(w[a]),q.replaceWithChildNodes(w[a]))}}):void((null!==h&&!a.lang.array(r).contains(h)||(s=f.selection.findNodesInSelection(r).concat(f.selection.getSelectedOwnNodes()),f.selection.executeAndRestoreRangy(function(){for(var a=s.length;a--;)blockElement=q.getParentElement(s[a],{nodeName:r}),blockElement==f.element&&(blockElement=null),blockElement&&(h&&(blockElement=q.renameElement(blockElement,h)),j&&b(blockElement,j,k),l&&c(blockElement,l,m),u=!0)}),!u))&&n(f,{nodeName:h||y,className:j||null,cssStyle:l||null}))},state:function(b,c,d,e,f,g,h){var i,j=b.selection.getSelectedOwnNodes(),k=[];d="string"==typeof d?d.toUpperCase():d;for(var l=0,m=j.length;m>l;l++)i=q.getParentElement(j[l],{nodeName:d,className:e,classRegExp:f,cssStyle:g,styleRegExp:h}),i&&-1==a.lang.array(k).indexOf(i)&&k.push(i);return 0==k.length?!1:k}}}(wysihtml5),wysihtml5.commands.formatCode={exec:function(a,b,c){var d,e,f,g=this.state(a);g?a.selection.executeAndRestore(function(){d=g.querySelector("code"),wysihtml5.dom.replaceWithChildNodes(g),d&&wysihtml5.dom.replaceWithChildNodes(d)}):(e=a.selection.getRange(),f=e.extractContents(),g=a.doc.createElement("pre"),d=a.doc.createElement("code"),c&&(d.className=c),g.appendChild(d),d.appendChild(f),e.insertNode(g),a.selection.selectNode(g))},state:function(a){var b=a.selection.getSelectedNode();return b&&b.nodeName&&"PRE"==b.nodeName&&b.firstChild&&b.firstChild.nodeName&&"CODE"==b.firstChild.nodeName?b:wysihtml5.dom.getParentElement(b,{nodeName:"CODE"})&&wysihtml5.dom.getParentElement(b,{nodeName:"PRE"})}},function(a){function b(a){var b=d[a];return b?[a.toLowerCase(),b.toLowerCase()]:[a.toLowerCase()]}function c(c,d,f,g,h,i){var j=c;return d&&(j+=":"+d),g&&(j+=":"+g),e[j]||(e[j]=new a.selection.HTMLApplier(b(c),d,f,!0,g,h,i)),e[j]}var d={strong:"b",em:"i",b:"strong",i:"em"},e={};a.commands.formatInline={exec:function(a,b,d,e,f,g,h,i,j){var k=a.selection.createRange();return ownRanges=a.selection.getOwnRanges(),ownRanges&&0!=ownRanges.length?(a.selection.getSelection().removeAllRanges(),c(d,e,f,g,h,a.element).toggleRange(ownRanges),void(i?j||a.cleanUp():(k.setStart(ownRanges[0].startContainer,ownRanges[0].startOffset),k.setEnd(ownRanges[ownRanges.length-1].endContainer,ownRanges[ownRanges.length-1].endOffset),a.selection.setSelection(k),a.selection.executeAndRestore(function(){j||a.cleanUp()},!0,!0)))):!1},execWithToggle:function(b,c,d,e,f,g,h){var i=this;if(this.state(b,c,d,e,f,g,h)&&b.selection.isCollapsed()&&!b.selection.caretIsLastInSelection()&&!b.selection.caretIsFirstInSelection()){var j=i.state(b,c,d,e,f)[0];b.selection.executeAndRestoreRangy(function(){j.parentNode;b.selection.selectNode(j,!0),a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)})}else this.state(b,c,d,e,f,g,h)&&!b.selection.isCollapsed()?b.selection.executeAndRestoreRangy(function(){a.commands.formatInline.exec(b,c,d,e,f,g,h,!0,!0)}):a.commands.formatInline.exec(b,c,d,e,f,g,h)},state:function(b,e,f,g,h,i,j){var k,l=b.doc,m=d[f]||f;return a.dom.hasElementWithTagName(l,f)||a.dom.hasElementWithTagName(l,m)?g&&!a.dom.hasElementWithClassName(l,g)?!1:(k=b.selection.getOwnRanges(),k&&0!==k.length?c(f,g,h,i,j,b.element).isAppliedToRange(k):!1):!1}}}(wysihtml5),wysihtml5.commands.insertHTML={exec:function(a,b,c){a.commands.support(b)?a.doc.execCommand(b,!1,c):a.selection.insertHTML(c)},state:function(){return!1}},function(a){var b="IMG";a.commands.insertImage={exec:function(c,d,e){e="object"==typeof e?e:{src:e};var f,g,h=c.doc,i=this.state(c);if(i)return c.selection.setBefore(i),g=i.parentNode,g.removeChild(i),a.dom.removeEmptyTextNodes(g),"A"!==g.nodeName||g.firstChild||(c.selection.setAfter(g),g.parentNode.removeChild(g)),void a.quirks.redraw(c.element);i=h.createElement(b);for(var j in e)i.setAttribute("className"===j?"class":j,e[j]);c.selection.insertNode(i),a.browser.hasProblemsSettingCaretAfterImg()?(f=h.createTextNode(a.INVISIBLE_SPACE),c.selection.insertNode(f),c.selection.setAfter(f)):c.selection.setAfter(i)
},state:function(c){var d,e,f,g=c.doc;return a.dom.hasElementWithTagName(g,b)&&(d=c.selection.getSelectedNode())?d.nodeName===b?d:d.nodeType!==a.ELEMENT_NODE?!1:(e=c.selection.getText(),(e=a.lang.string(e).trim())?!1:(f=c.selection.getNodes(a.ELEMENT_NODE,function(a){return"IMG"===a.nodeName}),1!==f.length?!1:f[0])):!1}}}(wysihtml5),function(a){var b="
"+(a.browser.needsSpaceAfterLineBreak()?" ":"");a.commands.insertLineBreak={exec:function(c,d){c.commands.support(d)?(c.doc.execCommand(d,!1,null),a.browser.autoScrollsToCaret()||c.selection.scrollIntoView()):c.commands.exec("insertHTML",b)},state:function(){return!1}}}(wysihtml5),wysihtml5.commands.insertOrderedList={exec:function(a,b){var c,d,e=a.doc,f=a.selection.getSelectedNode(),g=wysihtml5.dom.getParentElement(f,{nodeName:"OL"}),h=wysihtml5.dom.getParentElement(f,{nodeName:"UL"}),i="_wysihtml5-temp-"+(new Date).getTime();return g&&!a.element.contains(g)&&(g=null),h&&!a.element.contains(h)&&(h=null),g||h||!a.commands.support(b)?void(g?a.selection.executeAndRestore(function(){wysihtml5.dom.resolveList(g,a.config.useLineBreaks)}):h?a.selection.executeAndRestore(function(){wysihtml5.dom.renameElement(h,"ol")}):a.selection.executeAndRestoreRangy(function(){d=a.selection.deblockAndSurround({nodeName:"div",className:i});var b=/\uFEFF/g;d.innerHTML=d.innerHTML.replace(b,""),d&&(c=""===d.innerHTML||d.innerHTML===wysihtml5.INVISIBLE_SPACE||"
"===d.innerHTML,g=wysihtml5.dom.convertToList(d,"ol",a.parent.config.uneditableContainerClassname),c&&a.selection.selectNode(g.querySelector("li"),!0))})):void e.execCommand(b,!1,null)},state:function(a){var b=a.selection.getSelectedNode(),c=wysihtml5.dom.getParentElement(b,{nodeName:"OL"});return a.element.contains(c)?c:!1}},wysihtml5.commands.insertUnorderedList={exec:function(a,b){var c,d,e=a.doc,f=a.selection.getSelectedNode(),g=wysihtml5.dom.getParentElement(f,{nodeName:"UL"}),h=wysihtml5.dom.getParentElement(f,{nodeName:"OL"}),i="_wysihtml5-temp-"+(new Date).getTime();return g&&!a.element.contains(g)&&(g=null),h&&!a.element.contains(h)&&(h=null),g||h||!a.commands.support(b)?void(g?a.selection.executeAndRestore(function(){wysihtml5.dom.resolveList(g,a.config.useLineBreaks)}):h?a.selection.executeAndRestore(function(){wysihtml5.dom.renameElement(h,"ul")}):a.selection.executeAndRestoreRangy(function(){d=a.selection.deblockAndSurround({nodeName:"div",className:i});var b=/\uFEFF/g;d.innerHTML=d.innerHTML.replace(b,""),d&&(c=""===d.innerHTML||d.innerHTML===wysihtml5.INVISIBLE_SPACE||"
"===d.innerHTML,g=wysihtml5.dom.convertToList(d,"ul",a.parent.config.uneditableContainerClassname),c&&a.selection.selectNode(g.querySelector("li"),!0))})):void e.execCommand(b,!1,null)},state:function(a){var b=a.selection.getSelectedNode(),c=wysihtml5.dom.getParentElement(b,{nodeName:"UL"});return a.element.contains(c)?c:!1}},wysihtml5.commands.italic={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"i")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"i")}},function(a){var b="wysiwyg-text-align-center",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyCenter={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="wysiwyg-text-align-left",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyLeft={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="wysiwyg-text-align-right",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyRight={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="wysiwyg-text-align-justify",c=/wysiwyg-text-align-[0-9a-z]+/g;a.commands.justifyFull={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,b,c)}}}(wysihtml5),function(a){var b="text-align: right;",c=/(\s|^)text-align\s*:\s*[^;\s]+;?/gi;a.commands.alignRightStyle={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,null,null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,null,null,b,c)}}}(wysihtml5),function(a){var b="text-align: left;",c=/(\s|^)text-align\s*:\s*[^;\s]+;?/gi;a.commands.alignLeftStyle={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,null,null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,null,null,b,c)}}}(wysihtml5),function(a){var b="text-align: center;",c=/(\s|^)text-align\s*:\s*[^;\s]+;?/gi;a.commands.alignCenterStyle={exec:function(d){return a.commands.formatBlock.exec(d,"formatBlock",null,null,null,b,c)},state:function(d){return a.commands.formatBlock.state(d,"formatBlock",null,null,null,b,c)}}}(wysihtml5),wysihtml5.commands.redo={exec:function(a){return a.undoManager.redo()},state:function(){return!1}},wysihtml5.commands.underline={exec:function(a,b){wysihtml5.commands.formatInline.execWithToggle(a,b,"u")},state:function(a,b){return wysihtml5.commands.formatInline.state(a,b,"u")}},wysihtml5.commands.undo={exec:function(a){return a.undoManager.undo()},state:function(){return!1}},wysihtml5.commands.createTable={exec:function(a,b,c){var d,e,f;if(c&&c.cols&&c.rows&&parseInt(c.cols,10)>0&&parseInt(c.rows,10)>0){for(f=c.tableStyle?'':"",f+="",e=0;e",d=0;d ";f+=""}f+="
",a.commands.exec("insertHTML",f)}},state:function(){return!1}},wysihtml5.commands.mergeTableCells={exec:function(a,b){a.tableSelection&&a.tableSelection.start&&a.tableSelection.end&&(this.state(a,b)?wysihtml5.dom.table.unmergeCell(a.tableSelection.start):wysihtml5.dom.table.mergeCellsBetween(a.tableSelection.start,a.tableSelection.end))},state:function(a){if(a.tableSelection){var b=a.tableSelection.start,c=a.tableSelection.end;if(b&&c&&b==c&&(wysihtml5.dom.getAttribute(b,"colspan")&&parseInt(wysihtml5.dom.getAttribute(b,"colspan"),10)>1||wysihtml5.dom.getAttribute(b,"rowspan")&&parseInt(wysihtml5.dom.getAttribute(b,"rowspan"),10)>1))return[b]}return!1}},wysihtml5.commands.addTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end);"before"==c||"above"==c?wysihtml5.dom.table.addCells(d.start,c):("after"==c||"below"==c)&&wysihtml5.dom.table.addCells(d.end,c),setTimeout(function(){a.tableSelection.select(d.start,d.end)},0)}},state:function(){return!1}},wysihtml5.commands.deleteTableCells={exec:function(a,b,c){if(a.tableSelection&&a.tableSelection.start&&a.tableSelection.end){var d,e=wysihtml5.dom.table.orderSelectionEnds(a.tableSelection.start,a.tableSelection.end),f=wysihtml5.dom.table.indexOf(e.start),g=a.tableSelection.table;wysihtml5.dom.table.removeCells(e.start,c),setTimeout(function(){d=wysihtml5.dom.table.findCell(g,f),d||("row"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row-1,col:f.col})),"column"==c&&(d=wysihtml5.dom.table.findCell(g,{row:f.row,col:f.col-1}))),d&&a.tableSelection.select(d,d)},0)}},state:function(){return!1}},wysihtml5.commands.indentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPushLiLevel(b,a.selection):!1},state:function(){return!1},tryToPushLiLevel:function(a,b){var c,d,e,f,g,h=!1;return b.executeAndRestoreRangy(function(){for(var b=a.length;b--;)f=a[b],c="OL"===f.parentNode.nodeName?"OL":"UL",d=f.ownerDocument.createElement(c),e=wysihtml5.dom.getPreviousElement(f),g=e?e.querySelector("ul, ol"):null,e&&(g?g.appendChild(f):(d.appendChild(f),e.appendChild(d)),h=!0)}),h}},wysihtml5.commands.outdentList={exec:function(a){var b=a.selection.getSelectionParentsByTag("LI");return b?this.tryToPullLiLevel(b,a):!1},state:function(){return!1},tryToPullLiLevel:function(a,b){var c,d,e,f,g,h=!1,i=this;return b.selection.executeAndRestoreRangy(function(){for(var j=a.length;j--;)if(f=a[j],f.parentNode&&(c=f.parentNode,"OL"===c.tagName||"UL"===c.tagName)){if(h=!0,d=wysihtml5.dom.getParentElement(c.parentNode,{nodeName:["OL","UL"]},!1,b.element),e=wysihtml5.dom.getParentElement(c.parentNode,{nodeName:["LI"]},!1,b.element),d&&e)f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g)),d.insertBefore(f,e.nextSibling);else{f.nextSibling&&(g=i.getAfterList(c,f),f.appendChild(g));for(var k=f.childNodes.length;k--;)c.parentNode.insertBefore(f.childNodes[k],c.nextSibling);c.parentNode.insertBefore(document.createElement("br"),c.nextSibling),f.parentNode.removeChild(f)}0===c.childNodes.length&&c.parentNode.removeChild(c)}}),h},getAfterList:function(a,b){for(var c=a.nodeName,d=document.createElement(c);b.nextSibling;)d.appendChild(b.nextSibling);return d}},function(a){var b=90,c=89,d=8,e=46,f=25,g="data-wysihtml5-selection-node",h="data-wysihtml5-selection-offset",i=(''+a.INVISIBLE_SPACE+"",''+a.INVISIBLE_SPACE+"",a.dom);a.UndoManager=a.lang.Dispatcher.extend({constructor:function(a){this.editor=a,this.composer=a.composer,this.element=this.composer.element,this.position=0,this.historyStr=[],this.historyDom=[],this.transact(),this._observe()},_observe:function(){{var a,f=this;this.composer.sandbox.getDocument()}i.observe(this.element,"keydown",function(a){if(!a.altKey&&(a.ctrlKey||a.metaKey)){var d=a.keyCode,e=d===b&&!a.shiftKey,g=d===b&&a.shiftKey||d===c;e?(f.undo(),a.preventDefault()):g&&(f.redo(),a.preventDefault())}}),i.observe(this.element,"keydown",function(b){var c=b.keyCode;c!==a&&(a=c,(c===d||c===e)&&f.transact())}),this.editor.on("newword:composer",function(){f.transact()}).on("beforecommand:composer",function(){f.transact()})},transact:function(){var b=this.historyStr[this.position-1],c=this.composer.getValue();if(c!==b){var d=this.historyStr.length=this.historyDom.length=this.position;d>f&&(this.historyStr.shift(),this.historyDom.shift(),this.position--),this.position++;var e,i,j=this.composer.selection.getRange(),k=j&&j.startContainer?j.startContainer:this.element,l=j&&j.startOffset?j.startOffset:0;k.nodeType===a.ELEMENT_NODE?e=k:(e=k.parentNode,i=this.getChildNodeIndex(e,k)),e.setAttribute(h,l),"undefined"!=typeof i&&e.setAttribute(g,i);var m=this.element.cloneNode(!!c);this.historyDom.push(m),this.historyStr.push(c),e.removeAttribute(h),e.removeAttribute(g)}},undo:function(){this.transact(),this.undoPossible()&&(this.set(this.historyDom[--this.position-1]),this.editor.fire("undo:composer"))},redo:function(){this.redoPossible()&&(this.set(this.historyDom[++this.position-1]),this.editor.fire("redo:composer"))},undoPossible:function(){return this.position>1},redoPossible:function(){return this.positionb;b++)this.element.appendChild(c[b].cloneNode(!0));var e,f,i;a.hasAttribute(h)?(e=a.getAttribute(h),i=a.getAttribute(g),f=this.element):(f=this.element.querySelector("["+h+"]")||this.element,e=f.getAttribute(h),i=f.getAttribute(g),f.removeAttribute(h),f.removeAttribute(g)),null!==i&&(f=this.getChildNodeByIndex(f,+i)),this.composer.selection.set(f,e)},getChildNodeIndex:function(a,b){for(var c=0,d=a.childNodes,e=d.length;e>c;c++)if(d[c]===b)return c},getChildNodeByIndex:function(a,b){return a.childNodes[b]}})}(wysihtml5),wysihtml5.views.View=Base.extend({constructor:function(a,b,c){this.parent=a,this.element=b,this.config=c,this.config.noTextarea||this._observeViewChange()},_observeViewChange:function(){var a=this;this.parent.on("beforeload",function(){a.parent.on("change_view",function(b){b===a.name?(a.parent.currentView=a,a.show(),setTimeout(function(){a.focus()},0)):a.hide()})})},focus:function(){if(this.element.ownerDocument.querySelector(":focus")!==this.element)try{this.element.focus()}catch(a){}},hide:function(){this.element.style.display="none"},show:function(){this.element.style.display=""},disable:function(){this.element.setAttribute("disabled","disabled")},enable:function(){this.element.removeAttribute("disabled")}}),function(a){var b=a.dom,c=a.browser;a.views.Composer=a.views.View.extend({name:"composer",CARET_HACK:"
",constructor:function(a,b,c){this.base(a,b,c),this.config.noTextarea?this.editableArea=b:this.textarea=this.parent.textarea,this.config.contentEditableMode?this._initContentEditableArea():this._initSandbox()},clear:function(){this.element.innerHTML=c.displaysCaretInEmptyContentEditableCorrectly()?"":this.CARET_HACK},getValue:function(b){var c=this.isEmpty()?"":a.quirks.getCorrectInnerHTML(this.element);return b&&(c=this.parent.parse(c)),c},setValue:function(a,b){b&&(a=this.parent.parse(a));try{this.element.innerHTML=a}catch(c){this.element.innerText=a}},cleanUp:function(){this.parent.parse(this.element)},show:function(){this.editableArea.style.display=this._displayStyle||"",this.config.noTextarea||this.textarea.element.disabled||(this.disable(),this.enable())},hide:function(){this._displayStyle=b.getStyle("display").from(this.editableArea),"none"===this._displayStyle&&(this._displayStyle=null),this.editableArea.style.display="none"},disable:function(){this.parent.fire("disable:composer"),this.element.removeAttribute("contentEditable")},enable:function(){this.parent.fire("enable:composer"),this.element.setAttribute("contentEditable","true")},focus:function(b){a.browser.doesAsyncFocus()&&this.hasPlaceholderSet()&&this.clear(),this.base();var c=this.element.lastChild;b&&c&&this.selection&&("BR"===c.nodeName?this.selection.setBefore(this.element.lastChild):this.selection.setAfter(this.element.lastChild))},getTextContent:function(){return b.getTextContent(this.element)},hasPlaceholderSet:function(){return this.getTextContent()==(this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder"))&&this.placeholderSet},isEmpty:function(){var a=this.element.innerHTML.toLowerCase();return""===a||"
"===a||""===a||"
"===a||this.hasPlaceholderSet()},_initContentEditableArea:function(){var a=this;this.config.noTextarea?this.sandbox=new b.ContentEditableArea(function(){a._create()},{},this.editableArea):(this.sandbox=new b.ContentEditableArea(function(){a._create()}),this.editableArea=this.sandbox.getContentEditable(),b.insert(this.editableArea).after(this.textarea.element),this._createWysiwygFormField())},_initSandbox:function(){var a=this;this.sandbox=new b.Sandbox(function(){a._create()},{stylesheets:this.config.stylesheets}),this.editableArea=this.sandbox.getIframe();var c=this.textarea.element;b.insert(this.editableArea).after(c),this._createWysiwygFormField()},_createWysiwygFormField:function(){if(this.textarea.element.form){var a=document.createElement("input");a.type="hidden",a.name="_wysihtml5_mode",a.value=1,b.insert(a).after(this.textarea.element)}},_create:function(){var d=this;this.doc=this.sandbox.getDocument(),this.element=this.config.contentEditableMode?this.sandbox.getContentEditable():this.doc.body,this.config.noTextarea?this.cleanUp():(this.textarea=this.parent.textarea,this.element.innerHTML=this.textarea.getValue(!0)),this.selection=new a.Selection(this.parent,this.element,this.config.uneditableContainerClassname),this.commands=new a.Commands(this.parent),this.config.noTextarea||b.copyAttributes(["className","spellcheck","title","lang","dir","accessKey"]).from(this.textarea.element).to(this.element),b.addClass(this.element,this.config.composerClassName),this.config.style&&!this.config.contentEditableMode&&this.style(),this.observe();var e=this.config.name;e&&(b.addClass(this.element,e),this.config.contentEditableMode||b.addClass(this.editableArea,e)),this.enable(),!this.config.noTextarea&&this.textarea.element.disabled&&this.disable();var f="string"==typeof this.config.placeholder?this.config.placeholder:this.config.noTextarea?this.editableArea.getAttribute("data-placeholder"):this.textarea.element.getAttribute("placeholder");f&&b.simulatePlaceholder(this.parent,this,f),this.commands.exec("styleWithCSS",!1),this._initAutoLinking(),this._initObjectResizing(),this._initUndoManager(),this._initLineBreaking(),this.config.noTextarea||!this.textarea.element.hasAttribute("autofocus")&&document.querySelector(":focus")!=this.textarea.element||c.isIos()||setTimeout(function(){d.focus(!0)},100),c.clearsContentEditableCorrectly()||a.quirks.ensureProperClearing(this),this.initSync&&this.config.sync&&this.initSync(),this.config.noTextarea||this.textarea.hide(),this.parent.fire("beforeload").fire("load")},_initAutoLinking:function(){var d=this,e=c.canDisableAutoLinking(),f=c.doesAutoLinkingInContentEditable();if(e&&this.commands.exec("autoUrlDetect",!1),this.config.autoLink){(!f||f&&e)&&(this.parent.on("newword:composer",function(){b.getTextContent(d.element).match(b.autoLink.URL_REG_EXP)&&d.selection.executeAndRestore(function(c,e){for(var f=d.element.querySelectorAll("."+d.config.uneditableContainerClassname),g=!1,h=f.length;h--;)a.dom.contains(f[h],e)&&(g=!0);g||b.autoLink(e.parentNode,[d.config.uneditableContainerClassname])})}),b.observe(this.element,"blur",function(){b.autoLink(d.element,[d.config.uneditableContainerClassname])}));var g=this.sandbox.getDocument().getElementsByTagName("a"),h=b.autoLink.URL_REG_EXP,i=function(c){var d=a.lang.string(b.getTextContent(c)).trim();return"www."===d.substr(0,4)&&(d="http://"+d),d};b.observe(this.element,"keydown",function(a){if(g.length){var c,e=d.selection.getSelectedNode(a.target.ownerDocument),f=b.getParentElement(e,{nodeName:"A"},4);f&&(c=i(f),setTimeout(function(){var a=i(f);a!==c&&a.match(h)&&f.setAttribute("href",a)},0))}})}},_initObjectResizing:function(){if(this.commands.exec("enableObjectResizing",!0),c.supportsEvent("resizeend")){var d=["width","height"],e=d.length,f=this.element;b.observe(f,"resizeend",function(b){var c,g=b.target||b.srcElement,h=g.style,i=0;if("IMG"===g.nodeName){for(;e>i;i++)c=d[i],h[c]&&(g.setAttribute(c,parseInt(h[c],10)),h[c]="");a.quirks.redraw(f)}})}},_initUndoManager:function(){this.undoManager=new a.UndoManager(this.parent)},_initLineBreaking:function(){function d(a){var c=b.getParentElement(a,{nodeName:["P","DIV"]},2);c&&b.contains(e.element,c)&&e.selection.executeAndRestore(function(){e.config.useLineBreaks?b.replaceWithChildNodes(c):"P"!==c.nodeName&&b.renameElement(c,"p")})}var e=this,f=["LI","P","H1","H2","H3","H4","H5","H6"],g=["UL","OL","MENU"];this.config.useLineBreaks||b.observe(this.element,["focus","keydown"],function(){if(e.isEmpty()){var a=e.doc.createElement("P");e.element.innerHTML="",e.element.appendChild(a),c.displaysCaretInEmptyContentEditableCorrectly()?e.selection.selectNode(a,!0):(a.innerHTML="
",e.selection.setBefore(a.firstChild))}}),b.observe(this.element,"keydown",function(c){var h=c.keyCode;if(!c.shiftKey&&(h===a.ENTER_KEY||h===a.BACKSPACE_KEY)){var i=b.getParentElement(e.selection.getSelectedNode(),{nodeName:f},4);return i?void setTimeout(function(){var c,f=e.selection.getSelectedNode();if("LI"===i.nodeName){if(!f)return;c=b.getParentElement(f,{nodeName:g},2),c||d(f)}h===a.ENTER_KEY&&i.nodeName.match(/^H[1-6]$/)&&d(f)},0):void(e.config.useLineBreaks&&h===a.ENTER_KEY&&!a.browser.insertsLineBreaksOnReturn()&&(c.preventDefault(),e.commands.exec("insertLineBreak")))}})}})}(wysihtml5),function(a){var b=a.dom,c=document,d=window,e=c.createElement("div"),f=["background-color","color","cursor","font-family","font-size","font-style","font-variant","font-weight","line-height","letter-spacing","text-align","text-decoration","text-indent","text-rendering","word-break","word-wrap","word-spacing"],g=["background-color","border-collapse","border-bottom-color","border-bottom-style","border-bottom-width","border-left-color","border-left-style","border-left-width","border-right-color","border-right-style","border-right-width","border-top-color","border-top-style","border-top-width","clear","display","float","margin-bottom","margin-left","margin-right","margin-top","outline-color","outline-offset","outline-width","outline-style","padding-left","padding-right","padding-top","padding-bottom","position","top","left","right","bottom","z-index","vertical-align","text-align","-webkit-box-sizing","-moz-box-sizing","-ms-box-sizing","box-sizing","-webkit-box-shadow","-moz-box-shadow","-ms-box-shadow","box-shadow","-webkit-border-top-right-radius","-moz-border-radius-topright","border-top-right-radius","-webkit-border-bottom-right-radius","-moz-border-radius-bottomright","border-bottom-right-radius","-webkit-border-bottom-left-radius","-moz-border-radius-bottomleft","border-bottom-left-radius","-webkit-border-top-left-radius","-moz-border-radius-topleft","border-top-left-radius","width","height"],h=["html { height: 100%; }","body { height: 100%; padding: 1px 0 0 0; margin: -1px 0 0 0; }","body > p:first-child { margin-top: 0; }","._wysihtml5-temp { display: none; }",a.browser.isGecko?"body.placeholder { color: graytext !important; }":"body.placeholder { color: #a9a9a9 !important; }","img:-moz-broken { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }"],i=function(a){if(a.setActive)try{a.setActive()}catch(e){}else{var f=a.style,g=c.documentElement.scrollTop||c.body.scrollTop,h=c.documentElement.scrollLeft||c.body.scrollLeft,i={position:f.position,top:f.top,left:f.left,WebkitUserSelect:f.WebkitUserSelect};b.setStyles({position:"absolute",top:"-99999px",left:"-99999px",WebkitUserSelect:"none"}).on(a),a.focus(),b.setStyles(i).on(a),d.scrollTo&&d.scrollTo(h,g)}};a.views.Composer.prototype.style=function(){var d,j=this,k=c.querySelector(":focus"),l=this.textarea.element,m=l.hasAttribute("placeholder"),n=m&&l.getAttribute("placeholder"),o=l.style.display,p=l.disabled;this.focusStylesHost=e.cloneNode(!1),this.blurStylesHost=e.cloneNode(!1),this.disabledStylesHost=e.cloneNode(!1),m&&l.removeAttribute("placeholder"),l===k&&l.blur(),l.disabled=!1,l.style.display=d="none",(l.getAttribute("rows")&&"auto"===b.getStyle("height").from(l)||l.getAttribute("cols")&&"auto"===b.getStyle("width").from(l))&&(l.style.display=d=o),b.copyStyles(g).from(l).to(this.editableArea).andTo(this.blurStylesHost),b.copyStyles(f).from(l).to(this.element).andTo(this.blurStylesHost),b.insertCSS(h).into(this.element.ownerDocument),l.disabled=!0,b.copyStyles(g).from(l).to(this.disabledStylesHost),b.copyStyles(f).from(l).to(this.disabledStylesHost),l.disabled=p,l.style.display=o,i(l),l.style.display=d,b.copyStyles(g).from(l).to(this.focusStylesHost),b.copyStyles(f).from(l).to(this.focusStylesHost),l.style.display=o,b.copyStyles(["display"]).from(l).to(this.editableArea);var q=a.lang.array(g).without(["display"]);return k?k.focus():l.blur(),m&&l.setAttribute("placeholder",n),this.parent.on("focus:composer",function(){b.copyStyles(q).from(j.focusStylesHost).to(j.editableArea),b.copyStyles(f).from(j.focusStylesHost).to(j.element)}),this.parent.on("blur:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this.parent.observe("disable:composer",function(){b.copyStyles(q).from(j.disabledStylesHost).to(j.editableArea),b.copyStyles(f).from(j.disabledStylesHost).to(j.element)}),this.parent.observe("enable:composer",function(){b.copyStyles(q).from(j.blurStylesHost).to(j.editableArea),b.copyStyles(f).from(j.blurStylesHost).to(j.element)}),this}}(wysihtml5),function(a){var b=a.dom,c=a.browser,d={66:"bold",73:"italic",85:"underline"},e=function(a,b,c){var d=a.getPreviousNode(b,!0),e=a.getSelectedNode();if(1!==e.nodeType&&e.parentNode!==c&&(e=e.parentNode),d)if(1==e.nodeType){var f=e.firstChild;if(1==d.nodeType)for(;e.firstChild;)d.appendChild(e.firstChild);else for(;e.firstChild;)b.parentNode.insertBefore(e.firstChild,b);e.parentNode&&e.parentNode.removeChild(e),a.setBefore(f)}else 1==d.nodeType?d.appendChild(e):b.parentNode.insertBefore(e,b),a.setBefore(e)},f=function(a,b,c,d){if(b.isCollapsed())if(b.caretIsInTheBeginnig("LI"))a.preventDefault(),d.commands.exec("outdentList");else if(b.caretIsInTheBeginnig())a.preventDefault();else{var f=b.caretIsBeforeUneditable();f&&(a.preventDefault(),e(b,f,c))}else b.containsUneditable()&&(a.preventDefault(),b.deleteContents())},g=function(a){if(a.selection.isCollapsed()){if(a.selection.caretIsInTheBeginnig("LI")&&a.commands.exec("indentList"))return}else a.selection.deleteContents();a.commands.exec("insertHTML"," ")};a.views.Composer.prototype.observe=function(){var e=this,h=this.getValue(),i=this.sandbox.getIframe?this.sandbox.getIframe():this.sandbox.getContentEditable(),j=this.element,k=c.supportsEventsInIframeCorrectly()||this.sandbox.getContentEditable?j:this.sandbox.getWindow(),l=["drop","paste"],m=["drop","paste","mouseup","focus","keyup"];if(b.observe(i,"DOMNodeRemoved",function(){clearInterval(n),e.parent.fire("destroy:composer")}),!c.supportsMutationEvents())var n=setInterval(function(){b.contains(document.documentElement,i)||(clearInterval(n),e.parent.fire("destroy:composer"))},250);b.observe(k,m,function(){setTimeout(function(){e.parent.fire("interaction").fire("interaction:composer")},0)}),this.config.handleTables&&(this.doc.execCommand&&a.browser.supportsCommand(this.doc,"enableObjectResizing")&&a.browser.supportsCommand(this.doc,"enableInlineTableEditing")&&setTimeout(function(){e.doc.execCommand("enableObjectResizing",!1,"false"),e.doc.execCommand("enableInlineTableEditing",!1,"false")},0),this.tableSelection=a.quirks.tableCellsSelection(j,e.parent)),b.observe(k,"focus",function(){e.parent.fire("focus").fire("focus:composer"),setTimeout(function(){h=e.getValue()},0)}),b.observe(k,"blur",function(){h!==e.getValue()&&e.parent.fire("change").fire("change:composer"),e.parent.fire("blur").fire("blur:composer")}),b.observe(j,"dragenter",function(){e.parent.fire("unset_placeholder")}),b.observe(j,l,function(){setTimeout(function(){e.parent.fire("paste").fire("paste:composer")},0)}),b.observe(j,"keyup",function(b){var c=b.keyCode;(c===a.SPACE_KEY||c===a.ENTER_KEY)&&e.parent.fire("newword:composer")}),this.parent.on("paste:composer",function(){setTimeout(function(){e.parent.fire("newword:composer")},0)}),c.canSelectImagesInContentEditable()||b.observe(j,"mousedown",function(b){var c=b.target,d=j.querySelectorAll("img"),f=j.querySelectorAll("."+e.config.uneditableContainerClassname+" img"),g=a.lang.array(d).without(f);"IMG"===c.nodeName&&a.lang.array(g).contains(c)&&e.selection.selectNode(c)}),c.canSelectImagesInContentEditable()||b.observe(j,"drop",function(){setTimeout(function(){e.selection.getSelection().removeAllRanges()},0)}),c.hasHistoryIssue()&&c.supportsSelectionModify()&&b.observe(j,"keydown",function(a){if(a.metaKey||a.ctrlKey){var b=a.keyCode,c=j.ownerDocument.defaultView,d=c.getSelection();(37===b||39===b)&&(37===b&&(d.modify("extend","left","lineboundary"),a.shiftKey||d.collapseToStart()),39===b&&(d.modify("extend","right","lineboundary"),a.shiftKey||d.collapseToEnd()),a.preventDefault())}}),b.observe(j,"keydown",function(a){var b=a.keyCode,c=d[b];(a.ctrlKey||a.metaKey)&&!a.altKey&&c&&(e.commands.exec(c),a.preventDefault()),8===b?f(a,e.selection,j,e):e.config.handleTabKey&&9===b&&(a.preventDefault(),g(e,j))}),b.observe(j,"keydown",function(b){var c,d=e.selection.getSelectedNode(!0),f=b.keyCode;!d||"IMG"!==d.nodeName||f!==a.BACKSPACE_KEY&&f!==a.DELETE_KEY||(c=d.parentNode,c.removeChild(d),"A"!==c.nodeName||c.firstChild||c.parentNode.removeChild(c),setTimeout(function(){a.quirks.redraw(j)},0),b.preventDefault())}),!this.config.contentEditableMode&&c.hasIframeFocusIssue()&&(b.observe(i,"focus",function(){setTimeout(function(){e.doc.querySelector(":focus")!==e.element&&e.focus()},0)}),b.observe(this.element,"blur",function(){setTimeout(function(){e.selection.getSelection().removeAllRanges()},0)}));var o={IMG:"Image: ",A:"Link: "};b.observe(j,"mouseover",function(a){var b,c=a.target,d=c.nodeName;if("A"===d||"IMG"===d){var e=c.hasAttribute("title");e||(b=o[d]+(c.getAttribute("href")||c.getAttribute("src")),c.setAttribute("title",b))}})}}(wysihtml5),function(a){var b=400;a.views.Synchronizer=Base.extend({constructor:function(a,b,c){this.editor=a,this.textarea=b,this.composer=c,this._observe()},fromComposerToTextarea:function(b){this.textarea.setValue(a.lang.string(this.composer.getValue()).trim(),b)},fromTextareaToComposer:function(a){var b=this.textarea.getValue();b?this.composer.setValue(b,a):(this.composer.clear(),this.editor.fire("set_placeholder"))},sync:function(a){"textarea"===this.editor.currentView.name?this.fromTextareaToComposer(a):this.fromComposerToTextarea(a)},_observe:function(){var c,d=this,e=this.textarea.element.form,f=function(){c=setInterval(function(){d.fromComposerToTextarea()},b)},g=function(){clearInterval(c),c=null};f(),e&&(a.dom.observe(e,"submit",function(){d.sync(!0)}),a.dom.observe(e,"reset",function(){setTimeout(function(){d.fromTextareaToComposer()},0)})),this.editor.on("change_view",function(a){"composer"!==a||c?"textarea"===a&&(d.fromComposerToTextarea(!0),g()):(d.fromTextareaToComposer(!0),f())}),this.editor.on("destroy:composer",g)}})}(wysihtml5),wysihtml5.views.Textarea=wysihtml5.views.View.extend({name:"textarea",constructor:function(a,b,c){this.base(a,b,c),this._observe()},clear:function(){this.element.value=""},getValue:function(a){var b=this.isEmpty()?"":this.element.value;return a&&(b=this.parent.parse(b)),b},setValue:function(a,b){b&&(a=this.parent.parse(a)),this.element.value=a},cleanUp:function(){var a=this.parent.parse(this.element.value);this.element.value=a},hasPlaceholderSet:function(){var a=wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),b=this.element.getAttribute("placeholder")||null,c=this.element.value,d=!c;return a&&d||c===b},isEmpty:function(){return!wysihtml5.lang.string(this.element.value).trim()||this.hasPlaceholderSet()},_observe:function(){var a=this.element,b=this.parent,c={focusin:"focus",focusout:"blur"},d=wysihtml5.browser.supportsEvent("focusin")?["focusin","focusout","change"]:["focus","blur","change"];b.on("beforeload",function(){wysihtml5.dom.observe(a,d,function(a){var d=c[a.type]||a.type;b.fire(d).fire(d+":textarea")}),wysihtml5.dom.observe(a,["paste","drop"],function(){setTimeout(function(){b.fire("paste").fire("paste:textarea")},0)})})}}),function(a){var b,c={name:b,style:!0,toolbar:b,showToolbarAfterInit:!0,autoLink:!0,handleTables:!0,handleTabKey:!0,parserRules:{tags:{br:{},span:{},div:{},p:{}},classes:{}},parser:a.dom.parse,composerClassName:"wysihtml5-editor",bodyClassName:"wysihtml5-supported",useLineBreaks:!0,stylesheets:[],placeholderText:b,supportTouchDevices:!0,cleanUp:!0,contentEditableMode:!1,uneditableContainerClassname:"wysihtml5-uneditable-container"};a.Editor=a.lang.Dispatcher.extend({constructor:function(b,d){if(this.editableElement="string"==typeof b?document.getElementById(b):b,this.config=a.lang.object({}).merge(c).merge(d).get(),this._isCompatible=a.browser.supported(),"textarea"!=this.editableElement.nodeName.toLowerCase()&&(this.config.contentEditableMode=!0,this.config.noTextarea=!0),this.config.noTextarea||(this.textarea=new a.views.Textarea(this,this.editableElement,this.config),this.currentView=this.textarea),!this._isCompatible||!this.config.supportTouchDevices&&a.browser.isTouchDevice()){var e=this;return void setTimeout(function(){e.fire("beforeload").fire("load")},0)}a.dom.addClass(document.body,this.config.bodyClassName),this.composer=new a.views.Composer(this,this.editableElement,this.config),this.currentView=this.composer,"function"==typeof this.config.parser&&this._initParser(),this.on("beforeload",this.handleBeforeLoad)},handleBeforeLoad:function(){this.config.noTextarea||(this.synchronizer=new a.views.Synchronizer(this,this.textarea,this.composer)),this.config.toolbar&&(this.toolbar=new a.toolbar.Toolbar(this,this.config.toolbar,this.config.showToolbarAfterInit))
},isCompatible:function(){return this._isCompatible},clear:function(){return this.currentView.clear(),this},getValue:function(a){return this.currentView.getValue(a)},setValue:function(a,b){return this.fire("unset_placeholder"),a?(this.currentView.setValue(a,b),this):this.clear()},cleanUp:function(){this.currentView.cleanUp()},focus:function(a){return this.currentView.focus(a),this},disable:function(){return this.currentView.disable(),this},enable:function(){return this.currentView.enable(),this},isEmpty:function(){return this.currentView.isEmpty()},hasPlaceholderSet:function(){return this.currentView.hasPlaceholderSet()},parse:function(b){var c=this.config.contentEditableMode?document:this.composer.sandbox.getDocument(),d=this.config.parser(b,{rules:this.config.parserRules,cleanUp:this.config.cleanUp,context:c,uneditableClass:this.config.uneditableContainerClassname});return"object"==typeof b&&a.quirks.redraw(b),d},_initParser:function(){this.on("paste:composer",function(){var b=!0,c=this;c.composer.selection.executeAndRestore(function(){a.quirks.cleanPastedHTML(c.composer.element),c.parse(c.composer.element)},b)})}})}(wysihtml5);
//# sourceMappingURL=wysihtml5x.min.map
\ No newline at end of file
diff --git a/dist/wysihtml5x.min.map b/dist/wysihtml5x.min.map
index a3dfafb..f55e2b5 100644
--- a/dist/wysihtml5x.min.map
+++ b/dist/wysihtml5x.min.map
@@ -1 +1 @@
-{"version":3,"file":"wysihtml5x.min.js","sources":["wysihtml5x.js"],"names":["Object","defineProperty","getOwnPropertyDescriptor","Element","prototype","get","innerText","call","this","set","s","Array","isArray","arg","toString","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","DELETE_KEY","global","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","i","length","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","window","console","log","alertOrLog","shouldAlert","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","ex","message","description","String","init","testRange","implementsDomRange","implementsTextRange","document","createRange","domRangeMethods","domRangeProperties","detach","nodeName","toLowerCase","createTextRange","features","module","errorMessage","moduleName","modules","Module","len","initListeners","createMissingNativeApi","win","createMissingNativeApiListeners","name","dependencies","initializer","createModule","isCore","initFunc","newModule","RangePrototype","SelectionPrototype","amdSupported","define","amd","areHostObjects","util","preferTextRange","hasOwnProperty","extend","obj","deep","el","createElement","appendChild","toArray","slice","childNodes","nodeType","arrayLike","e","arr","addListener","eventType","listener","addEventListener","attachEvent","addInitListener","push","addCreateMissingNativeApiListener","requiredModule","requiredModuleNames","Error","deprecationNotice","deprecated","replacement","createError","arguments","createCoreModule","rangePrototype","selectionPrototype","docReady","loadHandler","rangy","isHtmlNamespace","node","ns","namespaceURI","UNDEF","parentElement","parent","parentNode","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","index","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","root","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","DOMException","codeName","code","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","remove","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","join","nodes","RangeIterator","test","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","RangeException","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertNotDetached","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","returnValue","createPrototypeRange","detacher","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","detachRange","BAD_BOUNDARYPOINTS_ERR","INVALID_NODE_TYPE_ERR","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","cloneContents","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","container","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","contains","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","detached","rangeProto","refresh","testTextNode","oppositeName","range2","type","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","replace","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","item","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","add","select","deleteProperties","actOnCachedSelection","action","cached","cachedRangySelections","splice","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","apply","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","detachAll","Selection","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","method","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","match","androidVersion","navigator","testElement","isIE","indexOf","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","querySelectorAll","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","hasHistoryIssue","platform","substr","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","setAttribute","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","getAttribute","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","string","str","trim","interpolate","vars","by","search","split","escapeHTML","c","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","classList","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","parseInt","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","selector","event","target","getAsDom","_innerHTMLShiv","html","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","_isSameNodeName","desiredNodeNames","_isElement","_hasClassName","classRegExp","classNames","_hasStyle","cssStyle","styleRegExp","styles","matchingSet","levels","findByStyle","findByClass","getNextElement","getPreviousElement","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","styleValue","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","all","concat","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","eventNames","handlerWrapper","srcElement","preventDefault","stopPropagation","cancelBubble","removeEventListener","detachEvent","parse","elementOrHtml","currentRules","defaultRules","isString","_convert","cleanUp","getCorrectInnerHTML","oldNode","newChild","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","DEFAULT_NODE_NAME","attributes","_handleElement","rule","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","_handleAttributes","_handleStyles","one_of_type","_testTypes","remove_action","types","definition","type_definitions","_testType","classesLength","a","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","classes","WHITE_SPACE_REG_EXP","sp","attrs","_getAttribute","keep_styles","styleFloat","cssFloat","currentClass","newClass","attributeName","newAttributeValue","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","checkAttributes","check_attributes","allowedClasses","newClasses","oldClasses","attributeCheckMethods","oldAttribute","addClassMethods","addStyleMethods","newStyle","src","width","height","_isLoadedImage","HAS_GET_ATTRIBUTE_BUG","hasAttribute","complete","mozMatchesSelector","readyState","_handleText","INVISIBLE_SPACE_REG_EXP","1","3","REG_EXP","attributeValue","href","alt","numbers","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","textContent","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_isLineBreak","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","previousElementSibling","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineGetter__","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","view","placeholderText","CLASS_NAME","unset","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","queryInList","query","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","r","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","els","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","force","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","cleanPastedHTML","matches","matchesLength","j","txtnodes","a u","ensureProperClearing","clearIfNecessary","composer","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleSelectionMousedown","removeCellSelections","selection_class","moveHandler","handleMouseMove","upHandler","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","d","parseFloat","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setBookmark","setSelection","setBefore","setAfter","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","containsUneditable","uneditables","getOwnUneditables","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","prevNode","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","caretPlaceholder","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","surround","nodeOptions","deblockAndSurround","tempDivElements","tempElements","exec","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","imax","jmax","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","specified","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","selectedText","toggleRange","Commands","support","result","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","fontSize","size","fontSizeStyle","styleStr","st","foreColor","color","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","_addClass","_removeClass","_addStyle","_removeStyle","_isBlankTextNode","_getPreviousSiblingThatIsNotBlank","_getNextSiblingThatIsNotBlank","_addLineBreakBeforeAndAfter","_isLineBreakOrBlockElement","_removeLineBreakBeforeAndAfter","_removeLastChildIfLineBreak","_selectionWrap","options","surroundedNodes","_hasClasses","_hasStyles","BLOCK_ELEMENTS_GROUP","selectedNodes","classRemoveAction","blockRenameFound","styleRemoveAction","blockElements","defaultNodeName","b","hasClasses","hasStyles","blockElement","formatCode","classname","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","identifier","htmlApplier","strong","em","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","otherList","tempClassName","getTime","uneditableContainerClassname","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","STYLE_STR","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","ctrlKey","metaKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","isInUneditable","links","urlRegExp","newTextContent","properties","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","scrollTo","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","deleteAroundEditable","uneditable","curNode","first","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","focusBlurElement","pasteEvents","interactionEvents","clearInterval","domNodeRemovedInterval","setInterval","handleTables","allImages","notMyImages","myImages","handleTabKey","titlePrefixes","IMG","title","hasTitle","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","keepScrollPosition"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"wysihtml5x.min.js","sources":["wysihtml5x.js"],"names":["Object","defineProperty","getOwnPropertyDescriptor","Element","prototype","get","innerText","call","this","set","s","Array","isArray","arg","toString","wysihtml5","version","commands","dom","quirks","toolbar","lang","selection","views","INVISIBLE_SPACE","EMPTY_FUNCTION","ELEMENT_NODE","TEXT_NODE","BACKSPACE_KEY","ENTER_KEY","ESCAPE_KEY","SPACE_KEY","DELETE_KEY","global","isHostMethod","o","p","t","FUNCTION","OBJECT","isHostObject","isHostProperty","UNDEFINED","createMultiplePropertyTest","testFunc","props","i","length","isTextRange","range","areHostMethods","textRangeMethods","areHostProperties","textRangeProperties","getBody","doc","body","getElementsByTagName","consoleLog","msg","window","console","log","alertOrLog","shouldAlert","alert","fail","reason","api","initialized","supported","config","alertOnFail","warn","alertOnWarn","getErrorDesc","ex","message","description","String","init","testRange","implementsDomRange","implementsTextRange","document","createRange","domRangeMethods","domRangeProperties","detach","nodeName","toLowerCase","createTextRange","features","module","errorMessage","moduleName","modules","Module","len","initListeners","createMissingNativeApi","win","createMissingNativeApiListeners","name","dependencies","initializer","createModule","isCore","initFunc","newModule","RangePrototype","SelectionPrototype","amdSupported","define","amd","areHostObjects","util","preferTextRange","hasOwnProperty","extend","obj","deep","el","createElement","appendChild","toArray","slice","childNodes","nodeType","arrayLike","e","arr","addListener","eventType","listener","addEventListener","attachEvent","addInitListener","push","addCreateMissingNativeApiListener","requiredModule","requiredModuleNames","Error","deprecationNotice","deprecated","replacement","createError","arguments","createCoreModule","rangePrototype","selectionPrototype","docReady","loadHandler","rangy","isHtmlNamespace","node","ns","namespaceURI","UNDEF","parentElement","parent","parentNode","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","n","ancestors","arrayContains","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","precedingNode","nextNode","nextSibling","insertBefore","splitDataNode","index","positionsToPreserve","newNode","cloneNode","deleteData","position","offset","getDocument","ownerDocument","getWindow","defaultView","parentWindow","getIframeDocument","iframeEl","contentDocument","contentWindow","getIframeWindow","isWindow","getContentDocument","methodName","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","root","childA","childB","firstChild","isBrokenNode","inspectNode","crashyTextNodes","data","idAttr","id","innerHTML","fragmentFromNodeChildren","child","fragment","createDocumentFragment","NodeIterator","_next","createIterator","DomPosition","DOMException","codeName","code","textNode","createTextNode","val","getComputedStyleProperty","getComputedStyle","propName","documentElement","currentStyle","_current","hasNext","next","equals","pos","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","iterator","partiallySelected","subIterator","frag","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","func","iteratorState","it","stop","subRangeIterator","deleteSubtree","remove","extractSubtree","getNodesInRange","nodeTypes","filter","regex","filterNodeTypes","filterExists","RegExp","join","nodes","RangeIterator","test","sc","ec","getName","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","RangeException","createAncestorFinder","assertNoDocTypeNotationEntityAncestor","allowSelf","getDocTypeNotationEntityAncestor","assertNotDetached","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","getDocumentOrFragmentContainer","assertNodeNotReadOnly","getReadonlyAncestor","assertNode","isOrphan","rootContainerNodeTypes","isValidOffset","isRangeValid","splitRangeBoundaries","startEndSame","setStartAndEnd","copyComparisonConstantsToObject","START_TO_START","s2s","START_TO_END","s2e","END_TO_END","e2e","END_TO_START","e2s","NODE_BEFORE","n_b","NODE_AFTER","n_a","NODE_BEFORE_AND_AFTER","n_b_a","NODE_INSIDE","n_i","copyComparisonConstants","constructor","createRangeContentRemover","remover","boundaryUpdater","boundary","reset","returnValue","createPrototypeRange","detacher","createBeforeAfterNodeSetter","isBefore","isStart","beforeAfterNodeTypes","setRangeStart","setRangeEnd","F","setStart","setEnd","args","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","selectNode","start","end","extractContents","deleteContents","canSurroundContents","boundariesInvalid","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","sibling","appendData","removeChild","mergeBackward","nodeLength","insertData","nodeIndex","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","updateBoundaries","Range","current","subRange","cloneRange","detachRange","BAD_BOUNDARYPOINTS_ERR","INVALID_NODE_TYPE_ERR","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","rangeProperties","compareBoundaryPoints","how","prefixA","prefixB","insertNode","cloneContents","clone","surroundContents","content","hasChildNodes","lastChild","prop","textParts","compareNode","comparePoint","toHtml","container","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","intersectionRange","union","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","pop","contains","collapseBefore","collapseAfter","getBookmark","containerNode","preSelectionRange","moveToBookmark","bookmark","charIndex","nextCharIndex","nodeStack","foundStart","rangesEqual","isValid","r1","r2","DomRange","WrappedRange","WrappedTextRange","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","detached","rangeProto","refresh","testTextNode","oppositeName","range2","type","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","previousNode","boundaryNode","workingComparisonType","childNodeCount","moveToElementText","Math","floor","setEndPoint","tempRange","rangeLength","text","replace","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","globalObj","createRangyRange","createIframeRange","createIframeRangyRange","isDirectionBackward","dir","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","sel","backward","anchorNode","anchorOffset","focusNode","focusOffset","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","nativeSel","nativeSelection","updateEmptySelection","rangeCount","_ranges","getNativeRange","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","item","addRangeToControlSelection","rangeElement","newControlRange","createControlRange","add","select","deleteProperties","actOnCachedSelection","action","cached","cachedRangySelections","splice","createControlSelection","ranges","assertNodeInSameDocument","createStartOrEndSetter","getRangeAt","setSingleRange","isBackward","rangeInspects","anchor","focus","checkSelectionRanges","getNativeSelection","selectionIsCollapsed","BOOLEAN","NUMBER","CONTROL","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","addRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","testEl","contentEditable","removeAllRanges","testControlRange","implementsControlRange","getSelectionRangeAt","docSel","getIframeSelection","selProto","addRangeBackward","direction","previousRangeCount","selectionIsBackward","setRanges","empty","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackwards","rangeTexts","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","element","eachRange","callMethodOnEachRange","params","results","apply","changeEachRange","rangeBookmarks","rangeBookmark","selRanges","detachAll","Selection","gEBI","getElementById","insertRangeBoundaryMarker","atStart","markerEl","markerId","Date","random","boundaryRange","style","lineHeight","display","className","markerTextChar","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","saveRanges","rangeInfos","sort","saveSelection","restored","restoreRanges","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","Base","_instance","_static","_prototyping","proto","base","klass","_constructing","forEach","implement","valueOf","source","value","method","previous","toSource","hidden","key","object","block","context","undefined","browser","iosVersion","userAgent","match","androidVersion","navigator","testElement","isIE","indexOf","isGecko","isWebKit","isChrome","isOpera","USER_AGENT","hasContentEditableSupport","hasEditingApiSupport","execCommand","queryCommandSupported","queryCommandState","hasQuerySelectorSupport","querySelector","querySelectorAll","isIncompatibleMobileBrowser","isIos","isAndroid","isTouchDevice","supportsEvent","supportsSandboxedIframes","throwsMixedContentWarningWhenIframeSrcIsEmpty","displaysCaretInEmptyContentEditableCorrectly","hasCurrentStyleProperty","hasHistoryIssue","platform","substr","insertsLineBreaksOnReturn","supportsPlaceholderAttributeOn","eventName","setAttribute","supportsEventsInIframeCorrectly","supportsHTML5Tags","html5","supportsCommand","buggyCommands","formatBlock","insertUnorderedList","insertOrderedList","insertHTML","command","isBuggy","e1","queryCommandEnabled","e2","doesAutoLinkingInContentEditable","canDisableAutoLinking","clearsContentEditableCorrectly","supportsGetAttributeCorrectly","td","getAttribute","canSelectImagesInContentEditable","autoScrollsToCaret","autoClosesUnclosedTags","clonedTestElement","supportsNativeGetElementsByClassName","getElementsByClassName","supportsSelectionModify","needsSpaceAfterLineBreak","supportsSpeechApiOn","input","chromeVersion","crashesWhenDefineProperty","property","doesAsyncFocus","hasProblemsSettingCaretAfterImg","hasUndoInContextMenu","hasInsertNodeIssue","hasIframeFocusIssue","createsNestedInvalidMarkupAfterPaste","supportsMutationEvents","array","needle","without","arrayToSubstract","newArr","newArray","map","callback","thisArg","A","unique","vals","max","idx","Dispatcher","on","handler","events","off","handlers","newHandlers","fire","payload","observe","stopObserving","merge","otherObj","newObj","WHITE_SPACE_START","WHITE_SPACE_END","ENTITY_REG_EXP","ENTITY_MAP","&","<",">","\"","string","str","trim","interpolate","vars","by","search","split","escapeHTML","c","autoLink","ignoreInClasses","_hasParentThatShouldBeIgnored","_parseNode","_convertUrlsToLinks","URL_REG_EXP","url","punctuation","TRAILING_CHAR_REG_EXP","opening","BRACKETS","realUrl","displayUrl","MAX_DISPLAY_LENGTH","_getTempElement","tempElement","_wysihtml5_tempElement","_wrapMatchesInNode","nodeValue","IGNORE_URLS_IN","childNodesLength",")","]","}","addClass","classList","hasClass","removeClass","elementClassName","compareDocumentPosition","convertToList","_createListItem","list","listItem","_createList","listType","uneditableClass","childNode","lineBreak","isBlockElement","isLineBreak","currentListItem","lineBreaks","lineBreaksLength","getStyle","from","insert","after","replaceChild","copyAttributes","attributesToCopy","elementToCopyFrom","to","elementToCopyTo","attribute","andTo","callee","BOX_SIZING_PROPERTIES","shouldIgnoreBoxSizingBorderBox","hasBoxSizingBorderBox","parseInt","offsetWidth","copyStyles","stylesToCopy","cssText","setStyles","delegate","selector","event","target","getAsDom","_innerHTMLShiv","html","_ensureHTML5Compatibility","_wysihtml5_supportsHTML5Tags","HTML5_ELEMENTS","getParentElement","_isSameNodeName","desiredNodeNames","_isElement","_hasClassName","classRegExp","classNames","_hasStyle","cssStyle","styleRegExp","styles","matchingSet","levels","findByStyle","findByClass","getNextElement","getPreviousElement","camelize","REG_EXP_CAMELIZE","charAt","toUpperCase","stylePropertyMapping","float","camelizedProperty","styleValue","originalOverflow","needsOverflowReset","overflow","getPropertyValue","getTextNodes","all","concat","hasElementWithTagName","_getDocumentIdentifier","_wysihtml5_identifier","DOCUMENT_IDENTIFIER","LIVE_CACHE","cacheEntry","hasElementWithClassName","elementToInsert","before","into","insertCSS","rules","styleElement","styleSheet","link","head","eventNames","handlerWrapper","srcElement","preventDefault","stopPropagation","cancelBubble","removeEventListener","detachEvent","parse","elementOrHtml","currentRules","defaultRules","isString","_convert","cleanUp","getCorrectInnerHTML","oldNode","newChild","oldNodeType","oldChilds","oldChildsLength","NODE_TYPE_MAPPING","DEFAULT_NODE_NAME","attributes","_handleElement","rule","tagRules","tags","scopeName","_wysihtml5","outerHTML","unwrap","rename_tag","_handleAttributes","_handleStyles","one_of_type","_testTypes","remove_action","types","definition","type_definitions","_testType","classesLength","a","attr","styleProp","nodeClasses","nodeStyles","methods","m","typeCeckMethods","classes","WHITE_SPACE_REG_EXP","sp","attrs","_getAttribute","keep_styles","styleFloat","cssFloat","currentClass","newClass","attributeName","newAttributeValue","setClass","set_class","add_class","addStyle","add_style","setAttributes","set_attributes","checkAttributes","check_attributes","allowedClasses","newClasses","oldClasses","attributeCheckMethods","oldAttribute","addClassMethods","addStyleMethods","newStyle","src","width","height","_isLoadedImage","HAS_GET_ATTRIBUTE_BUG","hasAttribute","complete","mozMatchesSelector","readyState","_handleText","INVISIBLE_SPACE_REG_EXP","1","3","REG_EXP","attributeValue","href","alt","numbers","any","align_text","mapping","left","right","center","align_img","justify","clear_br","both","size_font","2","4","5","6","7","-","+","has_visible_contet","txt","visibleElements","textContent","offsetHeight","removeEmptyTextNodes","renameElement","newNodeName","newElement","replaceWithChildNodes","_isBlockElement","_isLineBreak","_appendLineBreak","resolveList","useLineBreaks","isLastChild","shouldAppendLineBreak","paragraph","previousElementSibling","firstElementChild","windowProperties","windowProperties2","documentProperties","Sandbox","readyCallback","editableArea","_createIframe","insertInto","getIframe","_readyError","destroy","iframe","that","security","allowtransparency","frameborder","marginwidth","marginheight","onload","onreadystatechange","_onLoadIframe","iframeWindow","iframeDocument","charset","characterSet","sandboxHtml","_getHtml","stylesheets","open","write","close","onerror","fileName","lineNumber","_unset","loaded","setTimeout","templateVars","setter","__defineGetter__","__defineSetter__","ContentEditableArea","getContentEditable","_bindElement","_createElement","_loadElement","contentExists","simulatePlaceholder","editor","view","placeholderText","CLASS_NAME","unset","hasPlaceholderSet","clear","placeholderSet","isEmpty","setValue","setTextContent","getTextContent","queryInList","query","q","ret","unshift","removeElement","referenceNode","tag","MapCell","cell","isColspan","isRowspan","firstCol","lastCol","firstRow","lastRow","isReal","spanCollection","modified","TableModifyerByCell","table","addSpannedCellToMap","r","cspan","rspan","spanCollect","rmax","cmax","rr","cc","setCellAsModified","smax","setTableMap","ridx","row","cells","cidx","tableRows","getTableRows","getRowCells","inlineTables","inlineCells","allCells","tableCells","inlineRows","allRows","getMapIndex","r_length","c_length","r_idx","c_idx","col","getElementAtIndex","getMapElsTo","to_cell","els","idx_start","idx_end","temp_idx","temp_cidx","maxr","maxc","orderSelectionEnds","secondcell","createCells","nr","correctColIndexForUnreals","corrIdx","getLastNewCellOnRow","rowLimit","removeEmptyTable","splitRowToCells","colspan","cType","newCells","removeAttribute","getRealRowEl","force","injectRowAt","new_cells","n_cidx","canMerge","decreaseCellSpan","span","removeSurplusLines","allRowspan","fillMissingCells","r_max","c_max","prevcell","rectify","unmerge","thisCell","rowspan","collapseCellToNextRow","cellIdx","newRowIdx","newIdx","lastCell","removeRowCell","getRowElementsByCell","modRow","getColumnElementsByCell","removeRow","oldRow","removeColCell","removeColumn","what","addRow","where","newRow","addRowCell","cr","colSpanAttr","addColumn","addColCell","doAdd","handleCellAddWithRowspan","modCell","temp_r_cells","nrow","addRowsNr","crow","getCellsBetween","cell1","cell2","c1","addCells","removeCells","mergeCellsBetween","unmergeCell","findCell","findRowByCell","findColumnByCell","elements","thisOwner","otherOwner","point","parents","location_index","smallest_common_ancestor","this_index","other_index","cleanPastedHTML","matches","matchesLength","j","txtnodes","a u","ensureProperClearing","clearIfNecessary","composer","TILDE_ESCAPED","urlToSearch","elementsWithTilde","redraw","tableCellsSelection","editable","handleSelectionMousedown","removeCellSelections","selection_class","moveHandler","handleMouseMove","upHandler","handleMouseUp","selectedCells","addSelections","oldEnd","curTable","deselect","bindSideclick","sideClickHandler","selectCells","RGBA_REGEX","RGB_REGEX","HEX6_REGEX","HEX3_REGEX","param_REGX","styleParser","parseColor","stylesStr","paramName","colorMatch","paramRegex","radix","shift","d","parseFloat","unparseColor","parseFontSize","_getCumulativeOffsetTop","top","offsetTop","offsetParent","getDepth","expandRangeToSurround","common","start_depth","end_depth","contain","unselectableClass","getRange","setBookmark","setSelection","setBefore","setAfter","avoidInvisibleSpace","isElement","displayStyle","getSelectedNode","getSelectedOwnNodes","getOwnRanges","ownNodes","maxi","findNodesInSelection","curNodes","containsUneditable","uneditables","getOwnUneditables","getPreviousNode","ignoreEmpty","getSelectionParentsByTag","curEl","getRangeToNodeEnd","sNode","lastR","caretIsLastInSelection","endc","endtxt","caretIsFirstInSelection","caretIsInTheBeginnig","ofNode","caretIsBeforeUneditable","prevNode","executeAndRestoreRangy","executeAndRestore","restoreScrollPosition","caretPlaceholder","newCaretPlaceholder","prevSibling","newRange","oldScrollTop","scrollTop","oldScrollLeft","scrollLeft","placeholderHtml","surround","nodeOptions","deblockAndSurround","tempDivElements","tempElements","exec","scrollIntoView","tolerance","hasScrollBars","scrollHeight","_wysihtml5ScrollIntoViewElement","selectLine","_selectLine_W3C","_selectLine_MSIE","modify","rangeBottom","rangeEnd","measureNode","rangeTop","boundingTop","scrollWidth","moveToPoint","getText","fixRangeOverflow","containment","_detectInlineRangeProblems","_endOffsetForNode","dontFix","allUneditables","deepUneditables","tmpRanges","tmpRange","imax","jmax","cssClass","regExp","matchingClassNames","hasStyleAttr","removeStyle","s2","getMatchingStyleRegexp","regexes","sSplit","elStyle","removeOrChangeStyle","exactRegex","hasSameClasses","el1","el2","REG_EXP_WHITE_SPACE","replaceWithOwnChildren","elementsHaveSameNonClassAttributes","attr1","attr2","getNamedItem","specified","isSplitPoint","splitNodeAt","descendantNode","descendantOffset","Merge","firstNode","isElementMerge","firstTextNode","HTMLApplier","tagNames","similarClassRegExp","similarStyleRegExp","defaultTagName","applyToAnyTagName","doMerge","textBits","getLength","getAncestorWithClass","cssClassMatch","getAncestorWithStyle","cssStyleMatch","postApply","currentMerge","precedingTextNode","lastNode","merges","rangeStartNode","rangeEndNode","rangeStartOffset","rangeEndOffset","getAdjacentMergeableTextNode","nextTextNode","forward","adjacentNode","isTextNode","areElementsMergeable","createContainer","applyToTextNode","isRemovable","undoToTextNode","ancestorWithClass","ancestorWithStyle","styleMode","styleChanged","ancestorRange","applyToRange","ri","undoToRange","getTextSelectedByRange","isAppliedToRange","selectedText","toggleRange","Commands","support","result","state","stateValue","bold","formatInline","execWithToggle","_format","anchors","hasElementChild","elementToSetCaretAfter","whiteSpace","tempClass","tempClassRegExp","undef","NODE_NAME","_changeLinks","oldAttrs","oa","createLink","_removeFormat","codeElement","removeLink","fontSize","size","fontSizeStyle","styleStr","st","foreColor","color","foreColorStyle","colString","colorVals","colorStr","bgColorStyle","_addClass","_removeClass","_addStyle","_removeStyle","_isBlankTextNode","_getPreviousSiblingThatIsNotBlank","_getNextSiblingThatIsNotBlank","_addLineBreakBeforeAndAfter","_isLineBreakOrBlockElement","_removeLineBreakBeforeAndAfter","_removeLastChildIfLineBreak","_selectionWrap","options","surroundedNodes","_hasClasses","_hasStyles","BLOCK_ELEMENTS_GROUP","selectedNodes","classRemoveAction","blockRenameFound","styleRemoveAction","blockElements","defaultNodeName","b","hasClasses","hasStyles","blockElement","formatCode","classname","pre","selectedNode","_getTagNames","alias","ALIAS_MAPPING","_getApplier","identifier","htmlApplier","strong","em","dontRestoreSelect","noCleanup","ownRanges","state_element","aliasTagName","insertImage","image","imagesInSelection","LINE_BREAK","insertLineBreak","otherList","tempClassName","getTime","uneditableContainerClassname","italic","justifyCenter","justifyLeft","justifyRight","justifyFull","STYLE_STR","alignRightStyle","alignLeftStyle","alignCenterStyle","redo","undoManager","underline","undo","createTable","cols","rows","tableStyle","mergeTableCells","tableSelection","addTableCells","tableSelect","deleteTableCells","selCell","indentList","listEls","tryToPushLiLevel","liNodes","listTag","prevLi","liNode","prevLiList","found","outdentList","tryToPullLiLevel","listNode","outerListNode","outerLiNode","afterList","getAfterList","newList","Z_KEY","Y_KEY","MAX_HISTORY_ENTRIES","DATA_ATTR_NODE","DATA_ATTR_OFFSET","UndoManager","historyStr","historyDom","transact","_observe","lastKey","sandbox","altKey","ctrlKey","metaKey","keyCode","isUndo","shiftKey","isRedo","previousHtml","currentHtml","getValue","getChildNodeIndex","undoPossible","redoPossible","historyEntry","getChildNodeByIndex","View","textareaElement","noTextarea","_observeViewChange","currentView","show","hide","disable","enable","Composer","CARET_HACK","editableElement","textarea","contentEditableMode","_initContentEditableArea","_initSandbox","_displayStyle","disabled","setToEnd","_create","_createWysiwygFormField","form","hiddenField","composerClassName","placeholder","_initAutoLinking","_initObjectResizing","_initUndoManager","_initLineBreaking","initSync","sync","supportsDisablingOfAutoLinking","supportsAutoLinking","isInUneditable","links","urlRegExp","newTextContent","properties","propertiesLength","adjust","USE_NATIVE_LINE_BREAK_INSIDE_TAGS","LIST_TAGS","HOST_TEMPLATE","TEXT_FORMATTING","BOX_FORMATTING","ADDITIONAL_CSS_RULES","focusWithoutScrolling","setActive","elementStyle","originalScrollTop","originalScrollLeft","originalStyles","WebkitUserSelect","scrollTo","displayValueForCopying","originalActiveElement","hasPlaceholder","originalPlaceholder","originalDisplayValue","originalDisabled","focusStylesHost","blurStylesHost","disabledStylesHost","blur","boxFormattingStyles","shortcuts","66","73","85","deleteAroundEditable","uneditable","curNode","first","handleDeleteKeyPress","beforeUneditable","handleTabKeyDown","focusBlurElement","pasteEvents","interactionEvents","clearInterval","domNodeRemovedInterval","setInterval","handleTables","allImages","notMyImages","myImages","handleTabKey","titlePrefixes","IMG","title","hasTitle","INTERVAL","Synchronizer","fromComposerToTextarea","shouldParseHtml","fromTextareaToComposer","textareaValue","interval","startInterval","stopInterval","Textarea","supportsPlaceholder","eventMapping","focusin","focusout","defaultConfig","showToolbarAfterInit","parserRules","br","div","parser","bodyClassName","supportTouchDevices","Editor","_isCompatible","_initParser","handleBeforeLoad","synchronizer","Toolbar","isCompatible","htmlOrElement","parseContext","keepScrollPosition"],"mappings":"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"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 95a704a..cadf4f3 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wysihtml5x",
- "version": "0.4.6",
+ "version": "0.4.7",
"devDependencies": {
"grunt": "~0.4.4",
"grunt-contrib-jshint": "~0.6.3",